Example usage for org.eclipse.jface.preference FieldEditor FieldEditor

List of usage examples for org.eclipse.jface.preference FieldEditor FieldEditor

Introduction

In this page you can find the example usage for org.eclipse.jface.preference FieldEditor FieldEditor.

Prototype

protected FieldEditor() 

Source Link

Document

Creates a new field editor.

Usage

From source file:org.eclipse.eatop.workspace.ui.preferences.EastADLPreferencePage.java

License:Open Source License

private void addLoadingGroup(Composite parent) {
    fLoadingGroup = new Group(parent, SWT.NONE);
    fLoadingGroup.setText(EastADLPreferenceMessages.EastADLPreferencePage_loadingGroupText);

    GridLayout gridLayout = new GridLayout(2, false);
    gridLayout.verticalSpacing = convertVerticalDLUsToPixels(6);
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
    gridData.horizontalSpan = 2;// w  ww  .j a  va 2s . c  om

    fSchemaValidationField = new BooleanFieldEditorEx(IEastADLPreferenceConstants.PREF_XSD_VALIDATION_ON_LOAD,
            EastADLPreferenceMessages.EastADLPreferencePage_schemaValidationFieldLabel,
            BooleanFieldEditor.DEFAULT, fLoadingGroup);
    addField(fSchemaValidationField);
    fCacheResources = new BooleanFieldEditorEx(IEastADLPreferenceConstants.PREF_USE_BINARY_RESOURCE,
            EastADLPreferenceMessages.EastADLPreferencePage_useBinaryResources, BooleanFieldEditor.DEFAULT,
            fLoadingGroup);
    addField(fCacheResources);
    fClearCache = new FieldEditor() {
        {
            createControl(fLoadingGroup);
        }
        private Button button;

        @Override
        protected void adjustForNumColumns(int numColumns) {
            if (button != null) {
                ((GridData) button.getLayoutData()).horizontalSpan = numColumns;
            }
        }

        @Override
        protected void doFillIntoGrid(Composite parent, int numColumns) {
            button = getChangeControl(parent);
            GridData gd = new GridData();
            gd.horizontalSpan = numColumns;
            button.setLayoutData(gd);
        }

        @Override
        protected void doLoad() {
        }

        @Override
        protected void doLoadDefault() {
        }

        @Override
        protected void doStore() {
        }

        @Override
        public int getNumberOfControls() {
            return 2;
        }

        protected Button getChangeControl(Composite parent) {
            if (button == null) {
                button = new Button(parent, SWT.PUSH | SWT.CENTER);
                button.setText("Clear cache"); //$NON-NLS-1$
                button.setFont(parent.getFont());
                button.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        try {
                            IWorkbench wb = PlatformUI.getWorkbench();
                            IProgressService ps = wb.getProgressService();
                            ps.busyCursorWhile(new IRunnableWithProgress() {
                                @Override
                                public void run(IProgressMonitor monitor) {
                                    EastADLXMLResourceImpl.clearCache(monitor);
                                }
                            });
                        } catch (Exception ex) {
                            PlatformLogUtil.logAsError(Activator.getPlugin(), ex);
                        }
                    }
                });
                button.addDisposeListener(new DisposeListener() {
                    @Override
                    public void widgetDisposed(DisposeEvent event) {
                        button = null;
                    }
                });
            } else {
                checkParent(button, parent);
            }
            return button;
        }

        @Override
        public void setEnabled(boolean enabled, Composite parent) {
            if (button != null) {
                button.setEnabled(enabled);
                button.redraw();
            }
        };
    };
    addField(fClearCache);

    shemaValidationSeverityEditorParent = new Composite(fLoadingGroup, SWT.NULL);

    fShemaValidationSeverityEditor = new RadioGroupFieldEditor(
            IEastADLPreferenceConstants.PREF_XSD_VALIDATION_SEVERITY_LEVEL,
            EastADLPreferenceMessages.EastADLPreferencePage_schemaValidationSeverityLevel, 3,
            new String[][] {
                    { EastADLPreferenceMessages.EastADLPreferencePage_ErrorLabel,
                            Integer.toString(IEastADLPreferenceConstants.SEVERITY_ERROR) },
                    { EastADLPreferenceMessages.EastADLPreferencePage_WarningLabel,
                            Integer.toString(IEastADLPreferenceConstants.SEVERITY_WARNING) },
                    { EastADLPreferenceMessages.EastADLPreferencePage_InfoLabel,
                            Integer.toString(IEastADLPreferenceConstants.SEVERITY_INFO) } },
            shemaValidationSeverityEditorParent);
    addField(fShemaValidationSeverityEditor);

    fProblemIndicationField = new BooleanFieldEditorEx(
            IEastADLPreferenceConstants.PREF_LIMIT_PROBLEM_INDICATION_ON_LOAD,
            EastADLPreferenceMessages.EastADLPreferencePage_problemIndicationFieldLabel,
            BooleanFieldEditor.DEFAULT, fLoadingGroup);
    fProblemIndicationField.getChangeControl(fLoadingGroup).addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            updateMaxProblemEditor();
        }
    });
    addField(fProblemIndicationField);

    fMaxProblemEditor = new IntegerFieldEditor(IEastADLPreferenceConstants.PREF_MAX_PROBLEM_REPORTED_ON_LOAD,
            EastADLPreferenceMessages.EastADLPreferencePage_maxProblemEditorlabel, fLoadingGroup);
    fMaxProblemEditor.setValidRange(0, 1000);
    addField(fMaxProblemEditor);
    fMaxProblemEditor.setEnabled(
            getPreferenceStore().getBoolean(IEastADLPreferenceConstants.PREF_LIMIT_PROBLEM_INDICATION_ON_LOAD),
            fLoadingGroup);

    fLoadingGroup.setLayoutData(gridData);
    fLoadingGroup.setLayout(gridLayout);
    Dialog.applyDialogFont(fLoadingGroup);
}