/** * @see * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ public void widgetSelected(SelectionEvent e) { Object source = e.getSource(); // edit filter if (source == mBtnEditFilter) { ISelection selection = mFilterList.getSelection(); openFilterEditor(selection); getContainer().updateButtons(); } if (source == mMainTab) { mFileSetsEditor.refresh(); getContainer().updateButtons(); } else if (source == mChkSyncFormatter) { mProjectConfig.setSyncFormatter(mChkSyncFormatter.getSelection()); } else if (source == mChkSimpleConfig) { try { mProjectConfig.setUseSimpleConfig(mChkSimpleConfig.getSelection()); boolean showWarning = CheckstyleUIPluginPrefs.getBoolean(CheckstyleUIPluginPrefs.PREF_FILESET_WARNING); if (mProjectConfig.isUseSimpleConfig() && showWarning) { MessageDialogWithToggle dialog = new MessageDialogWithToggle( getShell(), Messages.CheckstylePropertyPage_titleWarnFilesets, null, Messages.CheckstylePropertyPage_msgWarnFilesets, MessageDialogWithToggle.WARNING, new String[] {IDialogConstants.OK_LABEL}, 0, Messages.CheckstylePropertyPage_mgsWarnFileSetNagOption, showWarning) { /** * Overwritten because we don't want to store which button the user pressed but * the state of the toggle. * * @see MessageDialogWithToggle#buttonPressed(int) */ protected void buttonPressed(int buttonId) { getPrefStore().setValue(getPrefKey(), getToggleState()); setReturnCode(buttonId); close(); } }; dialog.setPrefStore(CheckstyleUIPlugin.getDefault().getPreferenceStore()); dialog.setPrefKey(CheckstyleUIPluginPrefs.PREF_FILESET_WARNING); dialog.open(); } createFileSetsArea(mFileSetsContainer); mFileSetsContainer.redraw(); mFileSetsContainer.update(); mFileSetsContainer.layout(); } catch (CheckstylePluginException ex) { CheckstyleUIPlugin.errorDialog(getShell(), Messages.errorChangingFilesetEditor, ex, true); } } }
/** * @return the result of the ok action * @see org.eclipse.jface.preference.IPreferencePage#performOk() */ public boolean performOk() { try { IProject project = mProjectConfig.getProject(); // save the edited project configuration if (mProjectConfig.isDirty()) { mProjectConfig.store(); } boolean checkstyleEnabled = mChkEnable.getSelection(); boolean needRebuild = mProjectConfig.isRebuildNeeded(); // check if checkstyle nature has to be configured/deconfigured if (checkstyleEnabled != mCheckstyleInitiallyActivated) { ConfigureDeconfigureNatureJob configOperation = new ConfigureDeconfigureNatureJob(project, CheckstyleNature.NATURE_ID); configOperation.setRule(ResourcesPlugin.getWorkspace().getRoot()); configOperation.schedule(); needRebuild = needRebuild || !mCheckstyleInitiallyActivated; } if (checkstyleEnabled && mProjectConfig.isSyncFormatter()) { TransformCheckstyleRulesJob transFormJob = new TransformCheckstyleRulesJob(project); transFormJob.schedule(); } // if a rebuild is advised, check/prompt if the rebuild should // really be done. if (checkstyleEnabled && needRebuild) { String promptRebuildPref = CheckstyleUIPluginPrefs.getString(CheckstyleUIPluginPrefs.PREF_ASK_BEFORE_REBUILD); boolean doRebuild = MessageDialogWithToggle.ALWAYS.equals(promptRebuildPref) && needRebuild; // // Prompt for rebuild // if (MessageDialogWithToggle.PROMPT.equals(promptRebuildPref) && needRebuild) { MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion( getShell(), Messages.CheckstylePropertyPage_titleRebuild, Messages.CheckstylePropertyPage_msgRebuild, Messages.CheckstylePropertyPage_nagRebuild, false, CheckstyleUIPlugin.getDefault().getPreferenceStore(), CheckstyleUIPluginPrefs.PREF_ASK_BEFORE_REBUILD); doRebuild = dialog.getReturnCode() == IDialogConstants.YES_ID; } // check if a rebuild is necessary if (checkstyleEnabled && doRebuild) { BuildProjectJob rebuildOperation = new BuildProjectJob(project, IncrementalProjectBuilder.FULL_BUILD); rebuildOperation.setRule(ResourcesPlugin.getWorkspace().getRoot()); rebuildOperation.schedule(); } } } catch (CheckstylePluginException e) { CheckstyleUIPlugin.errorDialog(getShell(), e, true); } return true; }