@Override public void propertyChange(PropertyChangeEvent event) { super.propertyChange(event); if (event.getSource() != versionsEditor) { checkState(); return; } shouldUseGradleHome = event.getNewValue().equals(GradlePluginConstants.USE_GRADLE_HOME_VERSION_VALUE); gradleHomeField.setEmptyStringAllowed(!shouldUseGradleHome); checkState(); }
@Override protected void createFieldEditors() { versionsEditor = new ComboFieldEditor( GRADLE_VERSION_ID, "Gradle Version", AVAILABLE_VERSIONS, getFieldEditorParent()); gradleHomeField = new DirectoryFieldEditor(GRADLE_HOME_ID, "Home", getFieldEditorParent()); gradleHomeField.setErrorMessage("Yoy must specify a valid gradle installation"); gradleHomeField.setEmptyStringAllowed(!shouldUseGradleHome); addField(versionsEditor); addField(gradleHomeField); addField( new StringFieldEditor(GRADLE_PLUGIN_VERSION_ID, "Plugin Version", getFieldEditorParent())); addField( new ComboFieldEditor(GRADLE_LOG_LEVEL_ID, "Log level", LOG_LEVELS, getFieldEditorParent())); addField( new BooleanFieldEditor( GRADLE_PRINT_STACKTRACES_ID, "Print stacktraces", getFieldEditorParent())); }
@Override protected void createFieldEditors() { Composite main = getFieldEditorParent(); GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(main); Group cloningGroup = new Group(main, SWT.SHADOW_ETCHED_IN); cloningGroup.setText(UIText.GitPreferenceRoot_CloningRepoGroupHeader); GridDataFactory.fillDefaults().grab(true, false).span(GROUP_SPAN, 1).applyTo(cloningGroup); DirectoryFieldEditor editor = new DirectoryFieldEditor( UIPreferences.DEFAULT_REPO_DIR, UIText.GitPreferenceRoot_DefaultRepoFolderLabel, cloningGroup) { /** The own control is the variableButton */ private static final int NUMBER_OF_OWN_CONTROLS = 1; @Override protected boolean doCheckState() { String fileName = getTextControl().getText(); fileName = fileName.trim(); if (fileName.length() == 0 && isEmptyStringAllowed()) return true; IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); String substitutedFileName; try { substitutedFileName = manager.performStringSubstitution(fileName); } catch (CoreException e) { // It's apparently invalid return false; } File file = new File(substitutedFileName); // other than the super implementation, we don't // require the file to exist return !file.exists() || file.isDirectory(); } @Override public int getNumberOfControls() { return super.getNumberOfControls() + NUMBER_OF_OWN_CONTROLS; } @Override protected void doFillIntoGrid(Composite parent, int numColumns) { super.doFillIntoGrid(parent, numColumns - NUMBER_OF_OWN_CONTROLS); } @Override protected void adjustForNumColumns(int numColumns) { super.adjustForNumColumns(numColumns - NUMBER_OF_OWN_CONTROLS); } @Override protected void createControl(Composite parent) { // setting validate strategy using the setter method is too late super.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE); super.createControl(parent); if (HAS_DEBUG_UI) addVariablesButton(parent); } private void addVariablesButton(Composite parent) { Button variableButton = new Button(parent, SWT.PUSH); variableButton.setText(UIText.GitPreferenceRoot_DefaultRepoFolderVariableButton); variableButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { org.eclipse.debug.ui.StringVariableSelectionDialog dialog = new org.eclipse.debug.ui.StringVariableSelectionDialog(getShell()); int returnCode = dialog.open(); if (returnCode == Window.OK) setStringValue(dialog.getVariableExpression()); } }); } }; updateMargins(cloningGroup); editor.setEmptyStringAllowed(false); editor .getLabelControl(cloningGroup) .setToolTipText(UIText.GitPreferenceRoot_DefaultRepoFolderTooltip); addField(editor); Group remoteConnectionsGroup = new Group(main, SWT.SHADOW_ETCHED_IN); GridDataFactory.fillDefaults() .grab(true, false) .span(GROUP_SPAN, 1) .applyTo(remoteConnectionsGroup); remoteConnectionsGroup.setText(UIText.GitPreferenceRoot_RemoteConnectionsGroupHeader); IntegerFieldEditor timeoutEditor = new IntegerFieldEditor( UIPreferences.REMOTE_CONNECTION_TIMEOUT, UIText.RemoteConnectionPreferencePage_TimeoutLabel, remoteConnectionsGroup); timeoutEditor .getLabelControl(remoteConnectionsGroup) .setToolTipText(UIText.RemoteConnectionPreferencePage_ZeroValueTooltip); addField(timeoutEditor); updateMargins(remoteConnectionsGroup); Group repoChangeScannerGroup = new Group(main, SWT.SHADOW_ETCHED_IN); GridDataFactory.fillDefaults() .grab(true, false) .span(GROUP_SPAN, 1) .applyTo(repoChangeScannerGroup); repoChangeScannerGroup.setText(UIText.GitPreferenceRoot_RepoChangeScannerGroupHeader); addField( new BooleanFieldEditor( UIPreferences.REFESH_ON_INDEX_CHANGE, UIText.RefreshPreferencesPage_RefreshWhenIndexChange, repoChangeScannerGroup)); addField( new BooleanFieldEditor( UIPreferences.REFESH_ONLY_WHEN_ACTIVE, UIText.RefreshPreferencesPage_RefreshOnlyWhenActive, repoChangeScannerGroup)); updateMargins(repoChangeScannerGroup); Group mergeGroup = new Group(main, SWT.SHADOW_ETCHED_IN); GridDataFactory.fillDefaults().grab(true, false).span(GROUP_SPAN, 1).applyTo(mergeGroup); mergeGroup.setText(UIText.GitPreferenceRoot_MergeGroupHeader); ComboFieldEditor mergeMode = new ComboFieldEditor( UIPreferences.MERGE_MODE, UIText.GitPreferenceRoot_MergeModeLabel, MERGE_MODE_NAMES_AND_VALUES, mergeGroup); mergeMode.getLabelControl(mergeGroup).setToolTipText(UIText.GitPreferenceRoot_MergeModeTooltip); addField(mergeMode); updateMargins(mergeGroup); Group blameGroup = new Group(main, SWT.SHADOW_ETCHED_IN); GridDataFactory.fillDefaults().grab(true, false).span(GROUP_SPAN, 1).applyTo(blameGroup); blameGroup.setText(UIText.GitPreferenceRoot_BlameGroupHeader); addField( new BooleanFieldEditor( UIPreferences.BLAME_IGNORE_WHITESPACE, UIText.GitPreferenceRoot_BlameIgnoreWhitespaceLabel, blameGroup)); updateMargins(blameGroup); Group secureGroup = new Group(main, SWT.SHADOW_ETCHED_IN); GridDataFactory.fillDefaults().grab(true, false).span(GROUP_SPAN, 1).applyTo(secureGroup); secureGroup.setText(UIText.GitPreferenceRoot_SecureStoreGroupLabel); addField( new BooleanFieldEditor( UIPreferences.CLONE_WIZARD_STORE_SECURESTORE, UIText.GitPreferenceRoot_SecureStoreUseByDefault, secureGroup)); updateMargins(secureGroup); }