/** * Creates the file sets area. * * @param fileSetsContainer the container to add the file sets area to */ private Control createFileSetsArea(Composite fileSetsContainer) throws CheckstylePluginException { Control[] controls = fileSetsContainer.getChildren(); for (int i = 0; i < controls.length; i++) { controls[i].dispose(); } if (mProjectConfig.isUseSimpleConfig()) { mFileSetsEditor = new SimpleFileSetsEditor(this); } else { mFileSetsEditor = new ComplexFileSetsEditor(this); } mFileSetsEditor.setFileSets(mProjectConfig.getFileSets()); Control editor = mFileSetsEditor.createContents(mFileSetsContainer); fileSetsContainer.setLayout(new FormLayout()); FormData fd = new FormData(); fd.left = new FormAttachment(0); fd.top = new FormAttachment(0); fd.right = new FormAttachment(100); fd.bottom = new FormAttachment(100); editor.setLayoutData(fd); return fileSetsContainer; }
/** {@inheritDoc} */ public boolean isValid() { if (mProjectConfig != null) { // check if all check configurations resolve List<FileSet> fileSets = mProjectConfig.getFileSets(); for (FileSet fileset : fileSets) { ICheckConfiguration checkConfig = fileset.getCheckConfig(); if (checkConfig != null) { try { checkConfig.getCheckstyleConfiguration(); } catch (CheckstylePluginException e) { setErrorMessage( NLS.bind( Messages.errorCannotResolveCheckLocation, checkConfig.getLocation(), checkConfig.getName())); return false; } } } } setErrorMessage(null); return true; }
private Control createLocalConfigArea(Composite parent) { Composite noteAndEditor = new Composite(parent, SWT.NULL); noteAndEditor.setLayout(new GridLayout(1, false)); noteAndEditor.setLayoutData(new GridData(GridData.FILL_BOTH)); Label lblHint = new Label(noteAndEditor, SWT.WRAP); lblHint.setText(Messages.CheckstylePropertyPage_msgLocalConfigs); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.widthHint = 200; lblHint.setLayoutData(gd); mWorkingSetEditor = new CheckConfigurationWorkingSetEditor( mProjectConfig.getLocalCheckConfigWorkingSet(), false); Control editorControl = mWorkingSetEditor.createContents(noteAndEditor); editorControl.setLayoutData(new GridData(GridData.FILL_BOTH)); return noteAndEditor; }
/** * @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; }
/** * Creates the filter area. * * @param container the container to add the filter area */ private Control createFilterArea(Composite container) { FormData fd = new FormData(); // group composite containing the filter settings Group filterArea = new Group(container, SWT.NULL); filterArea.setText(Messages.CheckstylePropertyPage_titleFilterGroup); filterArea.setLayout(new FormLayout()); this.mFilterList = CheckboxTableViewer.newCheckList(filterArea, SWT.BORDER); this.mBtnEditFilter = new Button(filterArea, SWT.PUSH); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(0, 3); fd.right = new FormAttachment(this.mBtnEditFilter, -3, SWT.LEFT); fd.bottom = new FormAttachment(60, -3); this.mFilterList.getTable().setLayoutData(fd); this.mFilterList.setLabelProvider( new LabelProvider() { public String getText(Object element) { StringBuffer buf = new StringBuffer(); if (element instanceof IFilter) { IFilter filter = (IFilter) element; buf.append(filter.getName()); if (filter.getPresentableFilterData() != null) { buf.append(": ").append(filter.getPresentableFilterData()); // $NON-NLS-1$ } } else { buf.append(super.getText(element)); } return buf.toString(); } }); this.mFilterList.setContentProvider(new ArrayContentProvider()); this.mFilterList.addSelectionChangedListener(this.mPageController); this.mFilterList.addDoubleClickListener(this.mPageController); this.mFilterList.addCheckStateListener(this.mPageController); this.mBtnEditFilter.setText(Messages.CheckstylePropertyPage_btnChangeFilter); this.mBtnEditFilter.addSelectionListener(this.mPageController); fd = new FormData(); fd.top = new FormAttachment(0, 3); fd.right = new FormAttachment(100, -3); this.mBtnEditFilter.setLayoutData(fd); // Description Label lblDesc = new Label(filterArea, SWT.LEFT); lblDesc.setText(Messages.CheckstylePropertyPage_lblDescription); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(this.mFilterList.getTable(), 3, SWT.BOTTOM); fd.right = new FormAttachment(100, -3); lblDesc.setLayoutData(fd); this.mTxtFilterDescription = new Text( filterArea, SWT.LEFT | SWT.WRAP | SWT.MULTI | SWT.READ_ONLY | SWT.BORDER | SWT.VERTICAL); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(lblDesc, 3, SWT.BOTTOM); fd.right = new FormAttachment(100, -3); fd.bottom = new FormAttachment(100, -3); this.mTxtFilterDescription.setLayoutData(fd); // intialize filter list List<IFilter> filterDefs = mProjectConfig.getFilters(); this.mFilterList.setInput(filterDefs); // set the checked state for (int i = 0; i < filterDefs.size(); i++) { IFilter filter = filterDefs.get(i); this.mFilterList.setChecked(filter, filter.isEnabled()); } // set the readonly state for (int i = 0; i < filterDefs.size(); i++) { IFilter filter = filterDefs.get(i); this.mFilterList.setGrayed(filter, filter.isReadonly()); } this.mBtnEditFilter.setEnabled(false); return filterArea; }
/** {@inheritDoc} */ public Control createContents(Composite parent) { Composite container = null; try { this.mPageController = new PageController(); // suppress default- & apply-buttons noDefaultAndApplyButton(); mMainTab = new TabFolder(parent, SWT.TOP); mMainTab.setLayoutData(new GridData(GridData.FILL_BOTH)); mMainTab.addSelectionListener(mPageController); // create the main container container = new Composite(mMainTab, SWT.NULL); container.setLayout(new FormLayout()); container.setLayoutData(new GridData(GridData.FILL_BOTH)); // create the checkbox to enable/diable the simple configuration this.mChkSimpleConfig = new Button(container, SWT.CHECK); this.mChkSimpleConfig.setText(Messages.CheckstylePropertyPage_btnUseSimpleConfig); this.mChkSimpleConfig.addSelectionListener(this.mPageController); this.mChkSimpleConfig.setSelection(mProjectConfig.isUseSimpleConfig()); FormData fd = new FormData(); // fd.left = new FormAttachment(this.mChkEnable, 0, SWT.RIGHT); fd.top = new FormAttachment(0, 3); fd.right = new FormAttachment(100, -3); this.mChkSimpleConfig.setLayoutData(fd); // create the checkbox to enabel/disable checkstyle this.mChkEnable = new Button(container, SWT.CHECK); this.mChkEnable.setText(Messages.CheckstylePropertyPage_btnActivateCheckstyle); this.mChkEnable.addSelectionListener(this.mPageController); this.mChkEnable.setSelection(mCheckstyleInitiallyActivated); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(0, 3); fd.right = new FormAttachment(this.mChkSimpleConfig, 3, SWT.LEFT); this.mChkEnable.setLayoutData(fd); // create the checkbox for formatter synching this.mChkSyncFormatter = new Button(container, SWT.CHECK); this.mChkSyncFormatter.setText(Messages.CheckstylePropertyPage_btnSyncFormatter); this.mChkSyncFormatter.addSelectionListener(this.mPageController); this.mChkSyncFormatter.setSelection(mProjectConfig.isSyncFormatter()); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(this.mChkEnable, 3, SWT.BOTTOM); this.mChkSyncFormatter.setLayoutData(fd); // create the configuration area mFileSetsContainer = new Composite(container, SWT.NULL); Control configArea = createFileSetsArea(mFileSetsContainer); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(this.mChkSyncFormatter, 6, SWT.BOTTOM); fd.right = new FormAttachment(100, -3); fd.bottom = new FormAttachment(45); configArea.setLayoutData(fd); // create the filter area Control filterArea = createFilterArea(container); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(configArea, 3, SWT.BOTTOM); fd.right = new FormAttachment(100, -3); fd.bottom = new FormAttachment(100, -3); fd.width = 500; filterArea.setLayoutData(fd); // create the local configurations area Control localConfigArea = createLocalConfigArea(mMainTab); TabItem mainItem = new TabItem(mMainTab, SWT.NULL); mainItem.setControl(container); mainItem.setText(Messages.CheckstylePropertyPage_tabMain); TabItem localItem = new TabItem(mMainTab, SWT.NULL); localItem.setControl(localConfigArea); localItem.setText(Messages.CheckstylePropertyPage_tabCheckConfigs); } catch (CheckstylePluginException e) { CheckstyleUIPlugin.errorDialog(getShell(), Messages.errorOpeningPropertiesPage, e, true); } return container; }