Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java')
-rw-r--r--plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java1158
1 files changed, 0 insertions, 1158 deletions
diff --git a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java
deleted file mode 100644
index dc8865fd2..000000000
--- a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java
+++ /dev/null
@@ -1,1158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.validation.internal.ui;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-
-import javax.swing.event.HyperlinkEvent;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jem.util.logger.LogEntry;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
-import org.eclipse.wst.validation.internal.ConfigurationManager;
-import org.eclipse.wst.validation.internal.GlobalConfiguration;
-import org.eclipse.wst.validation.internal.ProjectConfiguration;
-import org.eclipse.wst.validation.internal.ValidatorMetaData;
-import org.eclipse.wst.validation.internal.operations.ValidatorManager;
-import org.eclipse.wst.validation.internal.ui.plugin.ValidationUIPlugin;
-
-/**
- * This class and its inner classes are not intended to be subclassed outside of the validation
- * framework.
- *
- * This page implements the PropertyPage for validators; viewed when the user right-clicks on the
- * IProject, selects "Properties", and then "Validation."
- *
- * There exist three possible page layouts: if there is an eclipse internal error, and the page is
- * brought up on a non-IProject type; if there are no validators configured on that type of
- * IProject, and a page which lists all validators configured on that type of IProject. These three
- * pages are implemented as inner classes, so that it's clear which method is needed for which
- * input. When all of the methods, and behaviour, were implemented in this one class, much more
- * error-checking had to be done, to ensure that the method wasn't being called incorrectly by one
- * of the pages.
- */
-public class ValidationPropertiesPage extends PropertyPage {
- static final String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$
- static final String TAB = "\t"; //$NON-NLS-1$
- static final String NEWLINE_AND_TAB = NEWLINE + TAB;
- private IValidationPage _pageImpl = null;
-
- /**
- * Initially, this interface was created as an abstract class, and getControl() was implemented.
- * (getProject() could also have been implemented in the abstract class.) However, at runtime, a
- * NullPointerException was thrown; the inner class had lost its pointer to its enclosing class.
- * After some experimentation, I discovered that if I changed the parent to an interface, the
- * enclosing class could be found. (Merely moving the AValidationPage into its own file was
- * insufficient.)
- */
- public interface IValidationPage {
- public abstract Composite createPage(Composite parent) throws InvocationTargetException;
-
- public abstract boolean performOk() throws InvocationTargetException;
-
- public boolean performDefaults() throws InvocationTargetException;
-
- public Composite getControl();
-
- public abstract void dispose();
- }
-
- public class InvalidPage implements IValidationPage {
- private Composite page = null;
-
- private Composite composite = null;
- private GridLayout layout = null;
- private Label messageLabel = null;
-
- public InvalidPage(Composite parent) {
- page = createPage(parent);
- }
-
- /**
- * This page is added to the Properties guide if some internal problem occurred; for
- * example, the highlighted item in the workbench is not an IProject (according to this
- * page's plugin.xml, this page is only valid when an IProject is selected).
- */
- public Composite createPage(Composite parent) {
- // Don't create the default and apply buttons.
- noDefaultAndApplyButton();
-
- final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
- sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
- composite = new Composite(sc1, SWT.NONE);
- sc1.setContent(composite);
- layout = new GridLayout();
- composite.setLayout(layout);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, ContextIds.VALIDATION_PROPERTIES_PAGE);
-
- messageLabel = new Label(composite, SWT.NONE);
- messageLabel.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INVALID_REGISTER));
-
- composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
- return composite;
- }
-
- public boolean performDefaults() {
- return true;
- }
-
- /**
- * Since this page occurs under invalid circumstances, there is nothing to save.
- */
- public boolean performOk() {
- return true;
- }
-
- public Composite getControl() {
- return page;
- }
-
- public void dispose() {
- messageLabel.dispose();
- // layout.dispose();
- composite.dispose();
- }
- }
-
- public class NoValidatorsPage implements IValidationPage {
- private Composite page = null;
-
- private Composite composite = null;
- private GridLayout layout = null;
- private GridData data = null;
- private Label messageLabel = null;
-
- public NoValidatorsPage(Composite parent) {
- page = createPage(parent);
- }
-
- /**
- * This page is created if an IProject is selected, but that project has no validators
- * configured (i.e., the page is valid, but an empty list.)
- */
- public Composite createPage(Composite parent) {
- // Don't create the default and apply buttons.
- noDefaultAndApplyButton();
-
- // top level group
- final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
- sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
- composite = new Composite(sc1, SWT.NONE);
- sc1.setContent(composite);
- layout = new GridLayout();
- composite.setLayout(layout);
- data = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
- composite.setLayoutData(data);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, ContextIds.VALIDATION_PROPERTIES_PAGE);
-
- messageLabel = new Label(composite, SWT.NONE);
- String[] msgParm = {getProject().getName()};
- messageLabel.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_UI_LBL_NOVALIDATORS_DESC, msgParm));
- composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- return composite;
- }
-
- public boolean performDefaults() {
- return true;
- }
-
- /**
- * Since there are no validators, there is nothing to save.
- */
- public boolean performOk() {
- return true;
- }
-
- public Composite getControl() {
- return page;
- }
-
- public void dispose() {
- messageLabel.dispose();
- // layout.dispose();
- // data.dispose();
- composite.dispose();
- }
- }
-
- public class ValidatorListPage implements IValidationPage {
- Composite page = null;
- GridLayout layout = null;
- GridData data = null;
- Label messageLabel = null;
- TableViewer validatorList = null;
- Button overrideGlobalButton = null;
- Button disableAllValidation = null;
- private Button enableAllButton = null;
- private Button disableAllButton = null;
- Label emptyRowPlaceholder = null;
- private String[] columnProperties;
- private CellEditor[] columnEditors;
- private String[] COMBO_VALUES = new String[] {"Enabled","Disabled"};
- private static final String ENABLED = "Enabled";
- private static final String DISABLED = "Disabled";
- private static final int ENABLED_INT = 0;
- private static final int DISABLED_INT = 1;
- private Table validatorsTable;
- private static final String VALIDATORS = "validators"; //$NON-NLS-1$
- private static final String MANUAL_CHECK = "manualCheck";//$NON-NLS-2$
- private static final String BUILD_CHECK = "buildCheck";//$NON-NLS-2$
- private static final int VALUE_NOT_FOUND = -1;
- private static final int MANUAL_COL = 1;
- private static final int BUILD_COL = 2;
- private Label globalPrefLink = null;
- ProjectConfiguration pagePreferences = null;
- private boolean canOverride = false;
-
- private ValidatorMetaData[] oldVmd = null; // Cache the enabled validators so that, if there
-
- // is no change to this list, the expensive task
- // list update can be avoided
-
- /**
- * This class is provided for the CheckboxTableViewer in the
- * ValidationPropertiesPage$ValidatorListPage class.
- */
- public class ValidationContentProvider implements IStructuredContentProvider {
- /**
- * Disposes of this content provider. This is called by the viewer when it is disposed.
- */
- public void dispose() {
- //dispose
- }
-
- /**
- * Returns the elements to display in the viewer when its input is set to the given
- * element. These elements can be presented as rows in a table, items in a list, etc.
- * The result is not modified by the viewer.
- *
- * @param inputElement
- * the input element
- * @return the array of elements to display in the viewer
- */
- public java.lang.Object[] getElements(Object inputElement) {
- if (inputElement instanceof ValidatorMetaData[]) {
- // The ValidatorMetaData[] is the array which is returned by ValidatorManager's
- // getConfiguredValidatorMetaData(IProject) call.
- // This array is set to be the input of the CheckboxTableViewer in
- // ValidationPropertiesPage$ValidatorListPage's createPage(Composite)
- // method.
- return (ValidatorMetaData[]) inputElement;
- }
- return new Object[0];
- }
-
- /**
- * Notifies this content provider that the given viewer's input has been switched to a
- * different element.
- * <p>
- * A typical use for this method is registering the content provider as a listener to
- * changes on the new input (using model-specific means), and deregistering the viewer
- * from the old input. In response to these change notifications, the content provider
- * propagates the changes to the viewer.
- * </p>
- *
- * @param viewer
- * the viewer
- * @param oldInput
- * the old input element, or <code>null</code> if the viewer did not
- * previously have an input
- * @param newInput
- * the new input element, or <code>null</code> if the viewer does not have
- * an input
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- //do nothing
- }
-
-
-
- }
-
- /**
- * This class is provided for ValidationPropertiesPage$ValidatorListPage's
- * checkboxTableViewer element.
- */
- public class ValidationLabelProvider extends LabelProvider implements ITableLabelProvider {
- /**
- * Override the LabelProvider's text, by customizing the text for a ValidatorMetaData
- * element.
- */
- public String getText(Object element) {
- if (element == null) {
- return ""; //$NON-NLS-1$
- } else if (element instanceof ValidatorMetaData) {
- return ((ValidatorMetaData) element).getValidatorDisplayName();
- } else {
- return super.getText(element);
- }
- }
-
- public String getColumnText(Object element, int columnIndex) {
- if(columnIndex == 0) {
- return ((ValidatorMetaData) element).getValidatorDisplayName();
- }
- /*if(columnIndex == 1) {
- if(((ValidatorMetaData)element).isManualValidation())
- return ENABLED;
- return DISABLED;
- } else if(columnIndex == 2) {
- if(((ValidatorMetaData)element).isBuildValidation())
- return ENABLED;
- return DISABLED;
- }*/
- return null;
- }
-
- public Image getColumnImage(Object element, int columnIndex) {
- if(columnIndex == 1) {
- if(((ValidatorMetaData)element).isManualValidation())
- return ValidationUIPlugin.getPlugin().getImage("OK");
- return ValidationUIPlugin.getPlugin().getImage("FAIL");
- } else if(columnIndex == 2) {
- if(((ValidatorMetaData)element).isBuildValidation())
- return ValidationUIPlugin.getPlugin().getImage("OK");;
- return ValidationUIPlugin.getPlugin().getImage("FAIL");
- }
- return null;
-
- }
- }
-
- /**
- * This class is used to sort the CheckboxTableViewer elements.
- */
- public class ValidationViewerSorter extends ViewerSorter {
- /**
- * Returns a negative, zero, or positive number depending on whether the first element
- * is less than, equal to, or greater than the second element.
- * <p>
- * The default implementation of this method is based on comparing the elements'
- * categories as computed by the <code>category</code> framework method. Elements
- * within the same category are further subjected to a case insensitive compare of their
- * label strings, either as computed by the content viewer's label provider, or their
- * <code>toString</code> values in other cases. Subclasses may override.
- * </p>
- *
- * @param viewer
- * the viewer
- * @param e1
- * the first element
- * @param e2
- * the second element
- * @return a negative number if the first element is less than the second element; the
- * value <code>0</code> if the first element is equal to the second element;
- * and a positive number if the first element is greater than the second element
- */
- public int compare(Viewer viewer, Object e1, Object e2) {
- // Can't instantiate ViewerSorter because it's abstract, so use this
- // inner class to represent it.
- return super.compare(viewer, e1, e2);
- }
- }
-
- public ValidatorListPage(Composite parent) throws InvocationTargetException {
- ConfigurationManager prefMgr = ConfigurationManager.getManager();
- ValidatorManager vMgr = ValidatorManager.getManager();
-
- pagePreferences = prefMgr.getProjectConfiguration(getProject()); // This
- // represents the values on the page that haven't been persisted yet.
- // Start with the last values that were persisted into the current
- // page's starting values.
-
- // store the default values for the widgets
- canOverride = prefMgr.getGlobalConfiguration().canProjectsOverride();
- //isAutoBuildEnabled = vMgr.isGlobalAutoBuildEnabled();
- //isBuilderConfigured = ValidatorManager.doesProjectSupportBuildValidation(getProject());
- oldVmd = pagePreferences.getEnabledValidators(); // Cache the enabled validators so
- // that, if there is no change to this
- // list, the expensive task list update
- // can be avoided
-
- createPage(parent);
- }
-
- private void setupTableColumns(Table table, TableViewer viewer) {
- TableColumn validatorColumn = new TableColumn(table, SWT.NONE);
- validatorColumn.setText("Validator");
- validatorColumn.setResizable(false);
- validatorColumn.setWidth(240);
- TableColumn manualColumn = new TableColumn(table, SWT.NONE);
- manualColumn.setText("Manual");
- manualColumn.setResizable(false);
- manualColumn.setWidth(80);
- TableColumn buildColumn = new TableColumn(table, SWT.NONE);
- buildColumn.setText("Build");
- buildColumn.setResizable(false);
- buildColumn.setWidth(80);
- setupCellModifiers(table, viewer);
- }
- private void setupCellModifiers(Table table, TableViewer viewer) {
- columnProperties = new String[3];
- columnProperties[0] = VALIDATORS; //$NON-NLS-1$
- columnProperties[1] = MANUAL_CHECK;//$NON-NLS-2$
- columnProperties[2] = BUILD_CHECK;//$NON-NLS-2$
- viewer.setColumnProperties(columnProperties);
- columnEditors = new CellEditor[table.getColumnCount()];
- columnEditors[1] = new ComboBoxCellEditor(table,COMBO_VALUES, SWT.READ_ONLY);
- columnEditors[2] = new ComboBoxCellEditor(table,COMBO_VALUES, SWT.READ_ONLY);
- viewer.setCellEditors(columnEditors);
- }
-
- /**
- * This page is created if the current project has at least one validator configured on it.
- */
- public Composite createPage(Composite parent) throws InvocationTargetException {
- // top level group
- final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
- sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
- page = new Composite(sc1, SWT.NONE);
- sc1.setContent(page);
- page.setLayout(new GridLayout()); // use the layout's default preferences
-
- Composite validatorGroup = new Composite(page, SWT.NONE);
- GridLayout validatorGroupLayout = new GridLayout();
- validatorGroupLayout.numColumns = 2;
- validatorGroup.setLayout(validatorGroupLayout);
-
- Hyperlink link = new Hyperlink(validatorGroup,SWT.None);
- GridData layout = new GridData(GridData.HORIZONTAL_ALIGN_END);
- layout.horizontalSpan = 2;
- link.setLayoutData(layout);
- link.setUnderlined(true);
- Color color = new Color(validatorGroup.getDisplay(),new RGB(0,0,255) );
- link.setForeground(color);
- link.setText("Gloabl Preferences...");
- link.addHyperlinkListener(new IHyperlinkListener() {
- public static final String DATA_NO_LINK = "PropertyAndPreferencePage.nolink"; //$NON-NLS-1$
-
- public void hyperlinkUpdate(HyperlinkEvent e) {
- }
-
- public void linkEntered(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- }
-
- public void linkExited(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- }
-
- public void linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- String id = getPreferencePageID();
- PreferencesUtil.createPreferenceDialogOn(getShell(), id, new String[]{id}, DATA_NO_LINK).open();
- try {
- updateWidgets();
- } catch (InvocationTargetException ie) {
-
- }
- }
-
- private String getPreferencePageID() {
- return "ValidationPreferencePage";
- }
- });
-
- GridData overrideData = new GridData(GridData.GRAB_HORIZONTAL);
- overrideData.horizontalSpan = 2;
- overrideGlobalButton = new Button(validatorGroup, SWT.CHECK);
- overrideGlobalButton.setLayoutData(overrideData);
- overrideGlobalButton.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.PROP_BUTTON_OVERRIDE, new String[]{getProject().getName()}));
- overrideGlobalButton.setFocus(); // must focus on something for F1 to have a topic to lanuch
- overrideGlobalButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- pagePreferences.setDoesProjectOverride(overrideGlobalButton.getSelection());
- try {
- updateWidgets();
- } catch (InvocationTargetException exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- }
- }
- });
-
- emptyRowPlaceholder = new Label(validatorGroup, SWT.NONE);
- emptyRowPlaceholder.setLayoutData(new GridData());
-
- GridData disableValidationData = new GridData(GridData.FILL_HORIZONTAL);
- disableValidationData.horizontalSpan = 2;
- disableAllValidation = new Button(validatorGroup, SWT.CHECK);
- disableAllValidation.setLayoutData(disableValidationData);
- disableAllValidation.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.DISABLE_VALIDATION));
- disableAllValidation.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- pagePreferences.setDisableAllValidation(disableAllValidation.getSelection());
- disableAllValidation.setFocus();
- validatorsTable.setEnabled(!disableAllValidation.getSelection());
- enableAllButton.setEnabled(!disableAllValidation.getSelection());
- disableAllButton.setEnabled(!disableAllValidation.getSelection());
- }
- });
-
- emptyRowPlaceholder = new Label(validatorGroup, SWT.NONE);
- emptyRowPlaceholder.setLayoutData(new GridData());
-
-
-
- GridData listLabelData = new GridData(GridData.FILL_HORIZONTAL);
- listLabelData.horizontalSpan = 2;
- messageLabel = new Label(validatorGroup, SWT.NONE);
- messageLabel.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_UI_LBL_DESC, new String[]{getProject().getName()}));
- messageLabel.setLayoutData(listLabelData);
-
- validatorsTable = new Table(validatorGroup,SWT.BORDER);
- TableLayout tableLayout = new TableLayout();
- tableLayout.addColumnData(new ColumnWeightData(160, true));
- tableLayout.addColumnData(new ColumnWeightData(80, true));
- tableLayout.addColumnData(new ColumnWeightData(80, true));
- validatorsTable.setHeaderVisible(true);
- validatorsTable.setLinesVisible(true);
- validatorsTable.setLayout(tableLayout);
-
- validatorList = new TableViewer(validatorsTable);
- GridData validatorListData = new GridData(GridData.FILL_HORIZONTAL);
- validatorListData.horizontalSpan = 2;
- validatorsTable.setLayoutData(validatorListData);
- validatorList.getTable().setLayoutData(validatorListData);
- validatorList.setLabelProvider(new ValidationLabelProvider());
- validatorList.setContentProvider(new ValidationContentProvider());
- validatorList.setSorter(new ValidationViewerSorter());
- setupTableColumns(validatorsTable,validatorList);
-
- validatorList.setCellModifier(new ICellModifier() {
-
- public boolean canModify(Object element, String property) {
- ComboBoxCellEditor cellEditor = getComboBoxCellEditor(property);
- if (cellEditor == null)
- return false;
- return true;
- }
-
- protected ComboBoxCellEditor getComboBoxCellEditor(String property) {
- CellEditor cellEditor = getCellEditor(property);
- if (cellEditor instanceof ComboBoxCellEditor)
- return (ComboBoxCellEditor) cellEditor;
- return null;
-
- }
-
- protected int getPropertyIntValue(String property) {
- if (columnProperties != null) {
- for (int i = 0; i < columnProperties.length; i++) {
- if (columnProperties[i].equals(property))
- return i;
- }
- }
- return VALUE_NOT_FOUND;
- }
-
- protected CellEditor getCellEditor(String property) {
- int comboCellEditorIndex = getPropertyIntValue(property);
- if (comboCellEditorIndex == VALUE_NOT_FOUND)
- return null;
- return columnEditors[comboCellEditorIndex];
- }
-
- public Object getValue(Object element, String property) {
- ValidatorMetaData data = (ValidatorMetaData) element;
- if (property == MANUAL_CHECK) {
- if (data.isManualValidation())
- return new Integer(ENABLED_INT);
- else
- return new Integer(DISABLED_INT);
-
- } else if (property == BUILD_CHECK) {
- if (data.isBuildValidation())
- return new Integer(ENABLED_INT);
- else
- return new Integer(DISABLED_INT);
- }
- return new Integer(VALUE_NOT_FOUND);
- }
-
- public void modify(Object element, String property, Object value) {
- ValidatorMetaData data = (ValidatorMetaData) ((TableItem) element).getData();
- int intValue = ((Integer) value).intValue();
- if (property.equals(MANUAL_CHECK)) {
- if (intValue == ENABLED_INT) {
- data.setManualValidation(true);
- } else if (intValue == DISABLED_INT) {
- data.setManualValidation(false);
- }
- } else if (property.equals(BUILD_CHECK)) {
- if (intValue == ENABLED_INT) {
- data.setBuildValidation(true);
- } else if (intValue == DISABLED_INT) {
- data.setBuildValidation(false);
- }
- }
- validatorList.refresh();
- }
- });
-
- validatorList.setInput(pagePreferences.getValidators());
-
- enableAllButton = new Button(validatorGroup, SWT.PUSH);
- GridData selectData = new GridData();
- enableAllButton.setLayoutData(selectData);
- enableAllButton.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.PREF_BUTTON_ENABLEALL));
- enableAllButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- try {
- performEnableAll();
- } catch (InvocationTargetException exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- }
- }
- });
- PlatformUI.getWorkbench().getHelpSystem().setHelp(enableAllButton, ContextIds.VALIDATION_PROPERTIES_PAGE);
-
-
- GridData deselectData = new GridData();
- disableAllButton = new Button(validatorGroup, SWT.PUSH);
- disableAllButton.setLayoutData(deselectData);
- disableAllButton.setText(ResourceHandler.getExternalizedMessage(ResourceConstants.PREF_BUTTON_DISABLEALL));
- disableAllButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- try {
- performDisableAll();
- } catch (InvocationTargetException exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- }
- }
- });
- PlatformUI.getWorkbench().getHelpSystem().setHelp(disableAllButton, ContextIds.VALIDATION_PROPERTIES_PAGE);
-
- Composite maxGroup = new Composite(page, SWT.NONE);
- GridLayout maxGroupLayout = new GridLayout();
- maxGroupLayout.numColumns = 2;
- maxGroup.setLayout(maxGroupLayout);
- GridData maxGroupData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- maxGroup.setLayoutData(maxGroupData);
-
- // Have to set the tab order or only the first checkbox in a Composite can
- // be tab-ed to. (Seems to apply only to checkboxes. Have to use the arrow
- // key to navigate the checkboxes.)
- validatorGroup.setTabList(new Control[]{overrideGlobalButton, validatorList.getTable(), enableAllButton, disableAllButton});
-
- updateWidgets();
-
- page.setSize(page.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
- return page;
- }
-
- protected void updateTable() throws InvocationTargetException {
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- ValidatorMetaData vmd = (ValidatorMetaData) item.getData();
-
- // Should the validator be enabled? Read the user's preferences from last time,
- // if they exist, and set from that. If they don't exist, use the Validator class'
- if (pagePreferences.isManualEnabled(vmd))
- vmd.setManualValidation(true);
- else
- vmd.setManualValidation(false);
-
- if (pagePreferences.isBuildEnabled(vmd))
- vmd.setBuildValidation(true);
- else
- vmd.setBuildValidation(false);
- }
- validatorList.refresh();
- }
-
- protected void enableManualAndBuildValues() {
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- ValidatorMetaData vmd = (ValidatorMetaData) item.getData();
- vmd.setManualValidation(true);
- vmd.setBuildValidation(true);
- }
- validatorList.refresh();
- }
-
- protected void disableManualAndBuildValues() {
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- ValidatorMetaData vmd = (ValidatorMetaData) item.getData();
- vmd.setManualValidation(false);
- vmd.setBuildValidation(false);
- }
- validatorList.refresh();
- }
-
- public boolean performDefaults() throws InvocationTargetException {
- pagePreferences.resetToDefault();
- updateWidgets();
- getDefaultsButton().setFocus();
- return true;
- }
-
- public boolean performEnableAll() throws InvocationTargetException {
- setAllValidators(true);
- pagePreferences.setEnabledValidators(getEnabledValidators());
- enableManualAndBuildValues();
- enableAllButton.setFocus();
- return true;
- }
-
- public boolean performDisableAll() throws InvocationTargetException {
- setAllValidators(false);
- pagePreferences.setEnabledValidators(getEnabledValidators());
- disableManualAndBuildValues();
- disableAllButton.setFocus();
- return true;
- }
-
- public ValidatorMetaData[] getEnabledValidators() {
- List enabledValidators = new ArrayList();
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- ValidatorMetaData validatorMetaData = (ValidatorMetaData) items[i].getData();
- if(validatorMetaData.isManualValidation() || validatorMetaData.isBuildValidation())
- enabledValidators.add(validatorMetaData);
- }
- return (ValidatorMetaData[])enabledValidators.toArray(new ValidatorMetaData[enabledValidators.size()]);
- }
-
- public ValidatorMetaData[] getManualEnabledValidators() {
- List enabledValidators = new ArrayList();
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- ValidatorMetaData validatorMetaData = (ValidatorMetaData) items[i].getData();
- if(validatorMetaData.isManualValidation())
- enabledValidators.add(validatorMetaData);
- }
- return (ValidatorMetaData[])enabledValidators.toArray(new ValidatorMetaData[enabledValidators.size()]);
- }
-
- public ValidatorMetaData[] getBuildEnabledValidators() {
- List enabledValidators = new ArrayList();
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- ValidatorMetaData validatorMetaData = (ValidatorMetaData) items[i].getData();
- if(validatorMetaData.isBuildValidation())
- enabledValidators.add(validatorMetaData);
- }
- return (ValidatorMetaData[])enabledValidators.toArray(new ValidatorMetaData[enabledValidators.size()]);
- }
-
-
- /**
- *
- */
- private void setAllValidators(boolean bool) {
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- ValidatorMetaData validatorMetaData = (ValidatorMetaData) items[i].getData();
- validatorMetaData.setManualValidation(bool);
- validatorMetaData.setBuildValidation(bool);
- }
- }
-
- void updateWidgets() throws InvocationTargetException {
- // Since the setting of the "override" button enables/disables the other widgets on the
- // page, update the enabled state of the other widgets from the "override" button.
- updateTable();
- updateAllWidgets();
-
- }
-
- protected void updateWidgetsForDefaults() throws InvocationTargetException {
- updateTableForDefaults();
- updateAllWidgets();
- }
-
- private void updateAllWidgets() throws InvocationTargetException {
- // Since the setting of the "override" button enables/disables the other widgets on the
- // page, update the enabled state of the other widgets from the "override" button.
- ConfigurationManager prefMgr = ConfigurationManager.getManager();
- canOverride = prefMgr.getGlobalConfiguration().canProjectsOverride();
- boolean overridePreferences = canOverride && pagePreferences.doesProjectOverride();
- overrideGlobalButton.setEnabled(canOverride);
- overrideGlobalButton.setSelection(overridePreferences);
- disableAllValidation.setEnabled(overridePreferences);
- disableAllValidation.setSelection(pagePreferences.isDisableAllValidation());
- if (overridePreferences)
- enableDependentControls(!pagePreferences.isDisableAllValidation());
- else
- enableDependentControls(overridePreferences);
- updateHelp();
- }
-
- private void updateTableForDefaults() throws InvocationTargetException {
- TableItem[] items = validatorsTable.getItems();
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- ValidatorMetaData vmd = (ValidatorMetaData) item.getData();
-
- // Should the validator be enabled? Read the user's preferences from last time,
- // if they exist, and set from that. If they don't exist, use the Validator class'
- if(pagePreferences.isEnabled(vmd)) {
- vmd.setManualValidation(true);
- vmd.setBuildValidation(true);
- } else {
- vmd.setManualValidation(false);
- vmd.setBuildValidation(false);
- }
- }
- validatorList.refresh();
- }
-
- /**
- * @param overridePreferences
- */
- private void enableDependentControls(boolean overridePreferences) {
- validatorsTable.setEnabled(overridePreferences);
- enableAllButton.setEnabled(overridePreferences); // since help messsage isn't
- disableAllButton.setEnabled(overridePreferences);
- }
-
- protected void updateHelp() throws InvocationTargetException {
- // Whenever a widget is disabled, it cannot get focus.
- // Since it can't have focus, its context-sensitive F1 help can't come up.
- // From experimentation, I know that the composite parent of the widget
- // can't have focus either. So, fudge the focus by making the table the widget
- // surrogate so that the F1 help can be shown, with its instructions on how to
- // enable the disabled widget. The table never has F1 help associated with it other
- // than the page F1, so this fudge doesn't remove any context-sensitive help
- // from the table widget.
-
- /*if (autoButton.getEnabled()) {
- // set the table's help back to what it was
- PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorList.getTable(), ContextIds.VALIDATION_PROPERTIES_PAGE);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(autoButton, ContextIds.VALIDATION_PROPERTIES_PAGE_AUTO_ENABLED);
- } else {
- // The order of the following if statement is important!
- // If the user cannot enable automatic validation on the project, then the user
- // should not be told, for example, to turn auto-build on. Let the user know that
- // no matter what they do they cannot run auto-validate on the project. IF the
- // project
- // supports auto-validate, THEN check for the items which the user can change.
- validatorList.getTable().setFocus();
- if (pagePreferences.numberOfIncrementalValidators() == 0) {
- PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorList.getTable(), ContextIds.VALIDATION_PROPERTIES_PAGE_DISABLED_AUTO_NOINCVALCONFIG);
- } else if (!ValidatorManager.getManager().isGlobalAutoBuildEnabled()) {
- PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorList.getTable(), ContextIds.VALIDATION_PROPERTIES_PAGE_DISABLED_AUTO_AUTOBUILD);
- } else {
- // Incremental validators configured but not selected
- PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorList.getTable(), ContextIds.VALIDATION_PROPERTIES_PAGE_DISABLED_AUTO_NOINCVALSELECTED);
- }
- }
-
- // if autoButton AND build button are disabled, show the build button's "to enable" text
- if (valWhenBuildButton.getEnabled()) {
- // Do NOT set the table's help back to what it was.
- // Only if auto-validate is enabled should the page go back.
- PlatformUI.getWorkbench().getHelpSystem().setHelp(valWhenBuildButton, ContextIds.VALIDATION_PROPERTIES_PAGE_REBUILD_ENABLED);
- } else {
- // page.getParent().setFocus();
- validatorList.getTable().setFocus();
- PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorList.getTable(), ContextIds.VALIDATION_PROPERTIES_PAGE_DISABLED_BUILD_NOVALSELECTED);
- }
-*/
- // if the override button is disabled, show its "to enable" text.
- if (overrideGlobalButton.getEnabled()) {
- // Do NOT set the table's help back to what it was.
- // Only if auto-validate is enabled should the page go back.
- boolean doesProjectSupportBuildValidation = ValidatorManager.doesProjectSupportBuildValidation(getProject());
- GlobalConfiguration gp = ConfigurationManager.getManager().getGlobalConfiguration();
- //boolean isPrefAuto = gp.isAutoValidate();
- //boolean isPrefManual = gp.isBuildValidate();
- if (doesProjectSupportBuildValidation) {
- // Project supports build validation, so it doesn't matter what the preferences
- // are
- PlatformUI.getWorkbench().getHelpSystem().setHelp(overrideGlobalButton, ContextIds.VALIDATION_PROPERTIES_PAGE_OVERRIDE_ENABLED);
- } /*else if (!doesProjectSupportBuildValidation && (isPrefAuto && isPrefManual)) {
- // Project doesn't support build validation, and the user prefers both auto and
- // manual build validation
- PlatformUI.getWorkbench().getHelpSystem().setHelp(overrideGlobalButton, ContextIds.VALIDATION_PROPERTIES_PAGE_OVERRIDE_ENABLED_CANNOT_HONOUR_BOTH);
- } else if (!doesProjectSupportBuildValidation && isPrefAuto) {
- // Project doesn't support build validation, and the user prefers auto build
- // validation
- PlatformUI.getWorkbench().getHelpSystem().setHelp(overrideGlobalButton, ContextIds.VALIDATION_PROPERTIES_PAGE_OVERRIDE_ENABLED_CANNOT_HONOUR_AUTO);
- } else if (!doesProjectSupportBuildValidation && isPrefManual) {
- // Project doesn't support build validation, and the user prefers manual build
- // validation
- PlatformUI.getWorkbench().getHelpSystem().setHelp(overrideGlobalButton, ContextIds.VALIDATION_PROPERTIES_PAGE_OVERRIDE_ENABLED_CANNOT_HONOUR_MANUAL);
- } else if (!doesProjectSupportBuildValidation && !isPrefAuto && !isPrefManual) {
- // Project doesn't support build validation, but that doesn't matter because the
- // user prefers no build validation.
- PlatformUI.getWorkbench().getHelpSystem().setHelp(overrideGlobalButton, ContextIds.VALIDATION_PROPERTIES_PAGE_OVERRIDE_ENABLED);
- }*/
- } else {
- validatorList.getTable().setFocus();
- // Preference page doesn't allow projects to override
- PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorList.getTable(), ContextIds.VALIDATION_PROPERTIES_PAGE_DISABLED_OVERRIDE);
- }
- }
-
- /*
- * Store the current values of the controls into the preference store.
- */
- private void storeValues() throws InvocationTargetException {
- pagePreferences.setDoesProjectOverride(overrideGlobalButton.getSelection());
-
- if (pagePreferences.doesProjectOverride()) {
- pagePreferences.setEnabledManualValidators(getManualEnabledValidators());
- pagePreferences.setEnabledBuildValidators(getBuildEnabledValidators());
- } else {
- pagePreferences.resetToDefault(); // If the project can't or doesn't override,
- // update its values to match the global
- // preference values.
- }
- pagePreferences.store();
- }
-
- /**
- * Reads the list of validators, enables the validators which are selected, disables the
- * validators which are not selected, and if the auto-validate checkbox is chosen, performs
- * a full validation.
- */
- public boolean performOk() throws InvocationTargetException {
- // addBuilder MUST be called before storeValues
- // addBuilder adds a builder to the project, and that changes the project description.
- // Changing a project's description triggers the validation framework's "natureChange"
- // migration, and a nature change requires that the list of validators be recalculated.
- // If the builder is added after the values are stored, the stored values are
- // overwritten.
- addBuilder();
-
- // If this method is being called because an APPLY was hit instead of an OK,
- // recalculate the "can build be enabled" status because the builder may have
- // been added in the addBuilder() call above.
- // Also recalculate the values that depend on the isBuilderConfigured value.
- //isBuilderConfigured = ValidatorManager.doesProjectSupportBuildValidation(getProject());
-
- // Persist the values.
- storeValues();
-
- if (pagePreferences.hasEnabledValidatorsChanged(oldVmd, false)) {
- // false means that the preference "allow" value hasn't changed
- ValidatorManager.getManager().updateTaskList(getProject());
- }
-
- return true;
- }
-
- /**
- * If the current project doesn't have the validation builder configured on it, add the
- * builder. Otherwise return without doing anything.
- */
- private void addBuilder() {
- if (overrideGlobalButton.getSelection()) { // do not add the builder unless the user
- // overrides the preferences
- /*if (autoButton.getSelection() || valWhenBuildButton.getSelection()) {
- ValidatorManager.addProjectBuildValidationSupport(getProject());
- }*/
- }
- }
-
- public Composite getControl() {
- return page;
- }
-
- public void dispose() {
- enableAllButton.dispose();
- disableAllButton.dispose();
- validatorList.getTable().dispose();
- messageLabel.dispose();
- // layout.dispose();
- // data.dispose();
- emptyRowPlaceholder.dispose();
- overrideGlobalButton.dispose();
- page.dispose();
- }
- }
-
- /**
- * ValidationPreferencePage constructor comment.
- */
- public ValidationPropertiesPage() {
- // Some of the initialization is done in the "initialize" method, which is
- // called by the "getPageType" method, because the current project must
- // be known in order to initialize those fields.
- }
-
- /**
- * Given a parent (the Properties guide), create the Validators page to be added to it.
- */
- protected Control createContents(Composite parent) {
- IProject project = getProject();
-
- if ((project == null) || !project.isOpen()) {
- _pageImpl = new InvalidPage(parent);
- } else {
- try {
- if (ConfigurationManager.getManager().getProjectConfiguration(project).numberOfValidators() == 0) {
- _pageImpl = new NoValidatorsPage(parent);
- } else {
- _pageImpl = new ValidatorListPage(parent);
- }
- } catch (InvocationTargetException exc) {
- _pageImpl = new InvalidPage(parent);
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- } catch (Throwable exc) {
- _pageImpl = new InvalidPage(parent);
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- }
- }
-
- return _pageImpl.getControl();
- }
-
- /**
- * Since the pages are inner classes of a child PreferencePage, not a PreferencePage itself,
- * DialogPage's automatic disposal of its children's widgets cannot be used. Instead, dispose of
- * each inner class' widgets explicitly.
- */
- public void dispose() {
- super.dispose();
- try {
- _pageImpl.dispose();
- } catch (Throwable exc) {
- logError(exc);
- }
- }
-
- /**
- * Returns the highlighted item in the workbench.
- */
- public IProject getProject() {
- Object element = getElement();
-
- if (element == null) {
- return null;
- }
-
- if (element instanceof IProject) {
- return (IProject) element;
- }
-
- return null;
- }
-
- protected void noDefaultAndApplyButton() {
- super.noDefaultAndApplyButton();
- }
-
- /**
- * Performs special processing when this page's Defaults button has been pressed.
- * <p>
- * This is a framework hook method for sublcasses to do special things when the Defaults button
- * has been pressed. Subclasses may override, but should call <code>super.performDefaults</code>.
- * </p>
- */
- protected void performDefaults() {
- super.performDefaults();
- try {
- _pageImpl.performDefaults();
- } catch (InvocationTargetException exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- } catch (Throwable exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- }
- }
-
- /**
- * When the user presses the "OK" or "Apply" button on the Properties Guide/Properties Page,
- * respectively, some processing is performed by this PropertyPage. If the page is found, and
- * completes successfully, true is returned. Otherwise, false is returned, and the guide doesn't
- * finish.
- */
- public boolean performOk() {
- try {
- return _pageImpl.performOk();
- } catch (InvocationTargetException exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- return false;
- } catch (Throwable exc) {
- displayAndLogError(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_TITLE), ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_INTERNAL_PAGE), exc);
- return false;
- }
- }
-
- void logError(Throwable exc) {
- Logger logger = WTPUIPlugin.getLogger();
- if (logger.isLoggingLevel(Level.SEVERE)) {
- LogEntry entry = ValidationUIPlugin.getLogEntry();
- entry.setSourceIdentifier("ValidationPropertiesPage.displayAndLogError"); //$NON-NLS-1$
- entry.setMessageTypeIdentifier(ResourceConstants.VBF_EXC_INTERNAL_PAGE);
- entry.setTargetException(exc);
- logger.write(Level.SEVERE, entry);
-
- if (exc instanceof InvocationTargetException) {
- if (((InvocationTargetException) exc).getTargetException() != null) {
- entry.setTargetException(((InvocationTargetException) exc).getTargetException());
- logger.write(Level.SEVERE, entry);
- }
- }
- }
- }
-
- void displayAndLogError(String title, String message, Throwable exc) {
- logError(exc);
- displayMessage(title, message, org.eclipse.swt.SWT.ICON_ERROR);
- }
-
- private void displayMessage(String title, String message, int iIconType) {
- MessageBox messageBox = new MessageBox(getShell(), org.eclipse.swt.SWT.OK | iIconType | org.eclipse.swt.SWT.APPLICATION_MODAL);
- messageBox.setMessage(message);
- messageBox.setText(title);
- messageBox.open();
- }
-
- /**
- * @see org.eclipse.jface.preference.PreferencePage#getDefaultsButton()
- */
- protected Button getDefaultsButton() {
- return super.getDefaultsButton();
- }
-} \ No newline at end of file

Back to the top