@Override protected void checkState() { super.checkState(); File gradleHome = new File(gradleHomeField.getStringValue()); // should I perform validations here? if (!GradlePluginUtils.isFileValidGradleInstallation(gradleHome) && shouldUseGradleHome) { setValid(false); setErrorMessage(gradleHomeField.getErrorMessage()); return; } setErrorMessage(null); setValid(true); }
@Override public void performApply() { try { fMDInstallRootDirEditor.store(); IPath mdInstallRoot = new Path(fMDInstallRootDirEditor.getStringValue()); JavaCore.setClasspathVariable( MDVariableInitializer.MD_CLASSPATH_VARIABLE, mdInstallRoot, new NullProgressMonitor()); IPreferenceStore store = this.getPreferenceStore(); ((IPersistentPreferenceStore) store).save(); hasApplied = true; } catch (IOException e) { Activator.log(IStatus.ERROR, "MDPreferencePage (save)", e); } catch (JavaModelException e) { Activator.log(IStatus.ERROR, "MDPreferencePage (save)", e); } }
/** {@inheritDoc} */ @Override public boolean performOk() { if (isDirty) { // Activator.setSystemVariables(); boolean isAutoDelete = false; String downloadPath = null; boolean isAutoDownload = fieldEnableAutoDownload.getBooleanValue(); if (isAutoDownload) { isAutoDelete = fieldEnableAutoDelete.getBooleanValue(); downloadPath = fieldDownloadPath.getStringValue(); } if (isAutoDownload && ((downloadPath == null) || (downloadPath.length() == 0))) { String message = "'Download Path' is empty. This will set the download path to default path " + new Path(System.getProperty("user.home") + "/" + DEFAULT_DOWNLOAD_DIRECTORY) .toOSString(); boolean response = MessageDialog.openConfirm( getFieldEditorParent().getShell(), "Confirm default path", message); // Return if (!response) { return false; } downloadPath = new Path(System.getProperty("user.home") + "/" + DEFAULT_DOWNLOAD_DIRECTORY) .toOSString(); fieldDownloadPath.setStringValue(downloadPath); // Check if download directory exists. If not, create it. File directory = new File(downloadPath); if (!directory.exists()) { directory.mkdirs(); } } updateBackendService(fieldEnableAutoDownload.getBooleanValue(), isAutoDelete, downloadPath); } // We need to do this check, when some property change, to refresh the valid state fieldDownloadPath.isValid(); boolean perform = super.performOk(); return perform; }
/** {@inheritDoc} */ @Override public void propertyChange(PropertyChangeEvent event) { super.propertyChange(event); isDirty = true; setAutoDownloadEnabled(fieldEnableAutoDownload.getBooleanValue()); // We need to do this check, when some property change, to refresh the valid state fieldDownloadPath.isValid(); }
@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 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 public void setValidateStrategy(int value) { super.setValidateStrategy(VALIDATE_ON_KEY_STROKE); }
@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); }
private void setAutoDownloadEnabled(boolean enabled) { Composite parent = getFieldEditorParent(); fieldEnableAutoDelete.setEnabled(enabled, parent); fieldDownloadPath.setEnabled(enabled, parent); }