⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractpydevprefs.java

📁 Python Development Environment (Python IDE plugin for Eclipse). Features editor, code completion, re
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, DECORATOR_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, KEYWORD_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, SELF_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, STRING_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, COMMENT_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, BACKQUOTES_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, CLASS_NAME_STYLE));
        overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, FUNC_NAME_STYLE));
        
        OverlayPreferenceStore.OverlayKey[] keys= new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
        overlayKeys.toArray(keys);
        return new OverlayPreferenceStore(getPreferenceStore(), keys);
    }
    /*
     * @see IWorkbenchPreferencePage#init()
     */ 
    public void init(IWorkbench workbench) {
    }


    protected Button addStyleCheckBox(Composite parent, String text) {
        Button result= new Button(parent, SWT.CHECK);
        result.setText(text);
        GridData gd= new GridData();
        gd.horizontalSpan= 2;
        result.setLayoutData(gd);
        result.addSelectionListener(fStyleCheckBoxListener);
        return result;
    }
    
    /*
     * @see PreferencePage#createContents(Composite)
     */
    protected Control createContents(Composite parent) {
        
        initializeDefaultColors();

        fOverlayStore.load();
        fOverlayStore.start();
        
        Control control= createAppearancePage(parent);

        initialize();
        Dialog.applyDialogFont(control);
        return control;
    }
    
    protected abstract Control createAppearancePage(Composite parent) ;
    
    protected void initialize() {
        
        initializeFields();
        if(fAppearanceColorList != null){
            for (int i= 0; i < fAppearanceColorListModel.length; i++){
                fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
            }
            
            fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
                public void run() {
                    if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) {
                        fAppearanceColorList.select(0);
                        handleAppearanceColorListSelection();
                    }
                }
            });
        }
    }
    
    protected void initializeFields() {
        
        Iterator e= fCheckBoxes.keySet().iterator();
        while (e.hasNext()) {
            Button b= (Button) e.next();
            String key= (String) fCheckBoxes.get(b);
            b.setSelection(fOverlayStore.getBoolean(key));
        }
        
        e= fTextFields.keySet().iterator();
        while (e.hasNext()) {
            Text t= (Text) e.next();
            String key= (String) fTextFields.get(t);
            t.setText(fOverlayStore.getString(key));
        }
        
        fFieldsInitialized= true;
        updateStatus(validatePositiveNumber("0")); 
        
        // Update slaves
        Iterator iter= fMasterSlaveListeners.iterator();
        while (iter.hasNext()) {
            SelectionListener listener= (SelectionListener)iter.next();
            listener.widgetSelected(null);
        }
    }
    
    protected void initializeDefaultColors() {  
        if (!getPreferenceStore().contains(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_COLOR)) {
            RGB rgb= getControl().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION).getRGB();
            PreferenceConverter.setDefault(fOverlayStore, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_COLOR, rgb);
            PreferenceConverter.setDefault(getPreferenceStore(), AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_COLOR, rgb);
        }
        if (!getPreferenceStore().contains(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_COLOR)) {
            RGB rgb= getControl().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT).getRGB();
            PreferenceConverter.setDefault(fOverlayStore, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_COLOR, rgb);
            PreferenceConverter.setDefault(getPreferenceStore(), AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_COLOR, rgb);
        }
    }
    
    /*
     * @see PreferencePage#performOk()
     */
    public boolean performOk() {
        fOverlayStore.propagate();
        PydevPlugin.getDefault().savePluginPreferences();
        return true;
    }
    
    /*
     * @see PreferencePage#performDefaults()
     */
    protected void performDefaults() {

        fOverlayStore.loadDefaults();
        
        initializeFields();

        handleAppearanceColorListSelection();

        super.performDefaults();
    }
    
    /*
     * @see DialogPage#dispose()
     */
    public void dispose() {
        
        if (fOverlayStore != null) {
            fOverlayStore.stop();
            fOverlayStore= null;
        }
        
        super.dispose();
    }
    
    protected Button addCheckBox(Composite parent, String label, String key, int indentation) {     
        Button checkBox= new Button(parent, SWT.CHECK);
        checkBox.setText(label);
        
        GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
        gd.horizontalIndent= indentation;
        gd.horizontalSpan= 2;
        checkBox.setLayoutData(gd);
        checkBox.addSelectionListener(fCheckBoxListener);
        
        fCheckBoxes.put(checkBox, key);
        
        return checkBox;
    }
    
    protected Control addTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) {
        
        Label labelControl= new Label(composite, SWT.NONE);
        labelControl.setText(label);
        GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
        gd.horizontalIndent= indentation;
        labelControl.setLayoutData(gd);
        
        Text textControl= new Text(composite, SWT.BORDER | SWT.SINGLE);     
        gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
        gd.widthHint= convertWidthInCharsToPixels(textLimit + 1);
        textControl.setLayoutData(gd);
        textControl.setTextLimit(textLimit);
        fTextFields.put(textControl, key);
        if (isNumber) {
            fNumberFields.add(textControl);
            textControl.addModifyListener(fNumberFieldListener);
        } else {
            textControl.addModifyListener(fTextFieldListener);
        }
            
        return textControl;
    }
    
    protected void createDependency(final Button master, String masterKey, final Control slave) {
        indent(slave);
        
        boolean masterState= fOverlayStore.getBoolean(masterKey);
        slave.setEnabled(masterState);
        
        SelectionListener listener= new SelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                slave.setEnabled(master.getSelection());
            }

            public void widgetDefaultSelected(SelectionEvent e) {}
        };
        master.addSelectionListener(listener);
        fMasterSlaveListeners.add(listener);
    }
    
    protected static void indent(Control control) {
        GridData gridData= new GridData();
        gridData.horizontalIndent= 20;
        control.setLayoutData(gridData);        
    }
    
    protected void numberFieldChanged(Text textControl) {
        String number= textControl.getText();
        IStatus status= validatePositiveNumber(number);
        if (!status.matches(IStatus.ERROR))
            fOverlayStore.setValue((String) fTextFields.get(textControl), number);
        updateStatus(status);
    }
    
    protected IStatus validatePositiveNumber(String number) {
        StatusInfo status= new StatusInfo();
        if (number.length() == 0) {
            status.setError("empty_input??"); 
        } else {
            try {
                int value= Integer.parseInt(number);
                if (value < 0)
                    status.setError("invalid_input??"); 
            } catch (NumberFormatException e) {
                status.setError("invalid_input??"); 
            }
        }
        return status;
    }
    
    void updateStatus(IStatus status) {
        if (!fFieldsInitialized)
            return;
        
        if (!status.matches(IStatus.ERROR)) {
            for (int i= 0; i < fNumberFields.size(); i++) {
                Text text= (Text) fNumberFields.get(i);
                IStatus s= validatePositiveNumber(text.getText());
                status= s.getSeverity() > status.getSeverity() ? s : status;
            }
        }   
        setValid(!status.matches(IStatus.ERROR));
        applyToStatusLine(this, status);
    }

    /**
     * Applies the status to the status line of a dialog page.
     * 
     * @param page the dialog page
     * @param status the status
     */
    public void applyToStatusLine(DialogPage page, IStatus status) {
        String message= status.getMessage();
        switch (status.getSeverity()) {
            case IStatus.OK:
                page.setMessage(message, IMessageProvider.NONE);
                page.setErrorMessage(null);
                break;
            case IStatus.WARNING:
                page.setMessage(message, IMessageProvider.WARNING);
                page.setErrorMessage(null);
                break;              
            case IStatus.INFO:
                page.setMessage(message, IMessageProvider.INFORMATION);
                page.setErrorMessage(null);
                break;          
            default:
                if (message.length() == 0) {
                    message= null;
                }
                page.setMessage(null);
                page.setErrorMessage(message);
                break;      
        }
    }
    
    /**
     * @return the place where this plugin preferences are stored.
     */
    public static Preferences getPreferences() {
        return  PydevPlugin.getDefault().getPluginPreferences();
    }
    
    /**
     * @return an array of strings with the available interpreters.
     */
    public static String[] getInterpreters() {
        return PydevPlugin.getPythonInterpreterManager().getInterpreters();
    }
    protected void handleAppearanceColorListSelection() {   
        int i= fAppearanceColorList.getSelectionIndex();
        String key= fAppearanceColorListModel[i][1];
        RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
        fAppearanceColorEditor.setColorValue(rgb);
        String styleKey= fAppearanceFontListModel[i][1];
        int styleValue= fOverlayStore.getInt(styleKey);
        if ((styleValue & SWT.BOLD) == 0) {
            fFontBoldCheckBox.setSelection(false);
        } else {
            fFontBoldCheckBox.setSelection(true);
        }
        if ((styleValue & SWT.ITALIC) == 0) {
            fFontItalicCheckBox.setSelection(false);
        } else {
            fFontItalicCheckBox.setSelection(true);
        }
        updateAppearanceColorWidgets(fAppearanceColorListModel[i][2]);
    }

    protected void updateAppearanceColorWidgets(String systemDefaultKey) {
        if (systemDefaultKey == null) {
            fAppearanceColorDefault.setSelection(false);
            fAppearanceColorDefault.setVisible(false);
            fAppearanceColorEditor.getButton().setEnabled(true);
        } else {
            boolean systemDefault= fOverlayStore.getBoolean(systemDefaultKey);
            fAppearanceColorDefault.setSelection(systemDefault);
            fAppearanceColorDefault.setVisible(true);
            fAppearanceColorEditor.getButton().setEnabled(!systemDefault);
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -