NEW_VARIABLE
or
- * EXISTING_VARIABLE
.
- */
- private int type;
-
- /**
- * The type of variable that can be edited in this dialog.
- * IResource.FILE
or IResource.FOLDER
- */
- private int variableType;
-
- /**
- * The name of the variable being edited.
- */
- private String variableName;
-
- /**
- * The value of the variable being edited.
- */
- private String variableValue;
-
- /**
- * The original name of the variable being edited. It is used when testing
- * if the current variable's name is already in use.
- */
- private String originalName;
-
- /**
- * Used to select the proper message depending on the current mode
- * (new/existing variable).
- */
- private boolean newVariable;
-
- /**
- * Set of variable names currently in use. Used when warning the user that
- * the currently selected name is already in use by another variable.
- */
- private SetIMessageProvider.NONE
(default);IMessageProvider.WARNING
;IMessageProvider.ERROR
;validate
method.
- */
- private String validationMessage;
-
- /**
- * Whether a variable name has been entered.
- */
- private boolean nameEntered = false;
-
- /**
- * Whether a variable location has been entered.
- */
- private boolean locationEntered = false;
-
- /**
- * The standard message to be shown when there are no problems being
- * reported.
- */
- final private String standardMessage;
-
- /**
- * Constant for defining this dialog as intended to create a new variable
- * (value = 1).
- */
- public final static int NEW_VARIABLE = 1;
-
- /**
- * Constant for defining this dialog as intended to edit an existing
- * variable (value = 2).
- */
- public final static int EXISTING_VARIABLE = 2;
-
- /**
- * Constructs a dialog for editing a new/existing path variable.
- *
- * @param parentShell the parent shell
- * @param type the dialog type: NEW_VARIABLE
or
- * EXISTING_VARIABLE
- * @param variableType the type of variable that can be edited in
- * this dialog. IResource.FILE
or IResource.FOLDER
- * @param namesInUse a set of variable names currently in use
- */
- public PathEntryVariableDialog(Shell parentShell, int type, int variableType, SetFormData
on the specified button to be one that is
- * spaced for the current dialog page units. The method
- * initializeDialogUnits
must be called once before calling this
- * method for the first time.
- *
- * @param button the button to set the FormData
- * @return the FormData
set on the specified button
- */
- private FormData setButtonFormLayoutData(Button button) {
- FormData data = new FormData();
- int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- data.width = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
- SWT.DEFAULT, true).x);
- button.setLayoutData(data);
- return data;
- }
-
- /**
- * Fires validations (variable name first) and updates enabled state for the
- * "Ok" button accordingly.
- */
- protected void variableNameModified() {
- // updates and validates the variable name
- variableName = variableNameField.getText().trim();
- validationStatus = IMessageProvider.NONE;
- okButton.setEnabled(validateVariableName() && validateVariableValue());
- nameEntered = true;
- }
-
- /**
- * Fires validations (variable value first) and updates enabled state for the
- * "Ok" button accordingly.
- */
- protected void variableValueModified() {
- // updates and validates the variable value
- variableValue = variableValueField.getText().trim();
- validationStatus = IMessageProvider.NONE;
- okButton.setEnabled(validateVariableValue() && validateVariableName());
- locationEntered = true;
- }
-
- /**
- * Opens a dialog where the user can select a folder path.
- */
- protected void selectFolder() {
- DirectoryDialog dialog = new DirectoryDialog(getShell());
- dialog.setText(PreferencesMessages.PathEntryVariableDialog_selectFolderTitle);
- dialog.setMessage(PreferencesMessages.PathEntryVariableDialog_selectFolderMessage);
- dialog.setFilterPath(variableValue);
- String res = dialog.open();
- if (res != null) {
- variableValue = new Path(res).makeAbsolute().toOSString();
- variableValueField.setText(variableValue);
- }
- }
-
- /**
- * Opens a dialog where the user can select a file path.
- */
- protected void selectFile() {
- FileDialog dialog = new FileDialog(getShell());
- dialog.setText(PreferencesMessages.PathEntryVariableDialog_selectFileTitle);
- dialog.setFilterPath(variableValue);
- String res = dialog.open();
- if (res != null) {
- variableValue = new Path(res).makeAbsolute().toOSString();
- variableValueField.setText(variableValue);
- }
- }
-
- /**
- * Adds buttons to this dialog's button bar.
- *
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- okButton = createButton(parent, IDialogConstants.OK_ID,
- IDialogConstants.OK_LABEL, true);
- okButton.setEnabled(type == EXISTING_VARIABLE);
-
- createButton(parent, IDialogConstants.CANCEL_ID,
- IDialogConstants.CANCEL_LABEL, false);
- }
-
- /**
- * Validates the current variable name, and updates this dialog's message.
- *
- * @return true if the name is valid, false otherwise
- */
- private boolean validateVariableName() {
- boolean allowFinish = false;
-
- // if the current validationStatus is ERROR, no additional validation applies
- if (validationStatus == IMessageProvider.ERROR)
- return false;
-
- // assumes everything will be ok
- String message = standardMessage;
- int newValidationStatus = IMessageProvider.NONE;
-
- if (variableName.length() == 0) {
- // the variable name is empty
- if (nameEntered) {
- // a name was entered before and is now empty
- newValidationStatus = IMessageProvider.ERROR;
- message = PreferencesMessages.PathEntryVariableDialog_variableNameEmptyMessage;
- }
- } else {
- if (namesInUse.contains(variableName)
- && !variableName.equals(originalName)) {
- // the variable name is already in use
- message = PreferencesMessages.PathEntryVariableDialog_variableAlreadyExistsMessage;
- newValidationStatus = IMessageProvider.ERROR;
- } else {
- allowFinish = true;
- }
- }
-
- // overwrite the current validation status / message only if everything is ok (clearing them)
- // or if we have a more serious problem than the current one
- if (validationStatus == IMessageProvider.NONE
- || newValidationStatus == IMessageProvider.ERROR) {
- validationStatus = newValidationStatus;
- validationMessage = message;
- }
- // only set the message here if it is not going to be set in
- // validateVariableValue to avoid flashing.
- if (allowFinish == false)
- setMessage(validationMessage, validationStatus);
- return allowFinish;
- }
-
- /**
- * Validates the current variable value, and updates this dialog's message.
- *
- * @return true if the value is valid, false otherwise
- */
- private boolean validateVariableValue() {
- boolean allowFinish = false;
-
- // if the current validationStatus is ERROR, no additional validation applies
- if (validationStatus == IMessageProvider.ERROR)
- return false;
-
- // assumes everything will be ok
- String message = standardMessage;
- int newValidationStatus = IMessageProvider.NONE;
-
- if (variableValue.length() == 0) {
- // the variable value is empty
- if (locationEntered) {
- // a location value was entered before and is now empty
- newValidationStatus = IMessageProvider.ERROR;
- message = PreferencesMessages.PathEntryVariableDialog_variableValueEmptyMessage;
- }
- } else if (!Path.EMPTY.isValidPath(variableValue)) {
- // the variable value is an invalid path
- message = PreferencesMessages.PathEntryVariableDialog_variableValueInvalidMessage;
- newValidationStatus = IMessageProvider.ERROR;
- } else if (!new Path(variableValue).isAbsolute()) {
- // the variable value is a relative path
- message = PreferencesMessages.PathEntryVariableDialog_pathIsRelativeMessage;
- newValidationStatus = IMessageProvider.ERROR;
- } else if (!new File(variableValue).exists()) {
- // the path does not exist (warning)
- message = PreferencesMessages.PathEntryVariableDialog_pathDoesNotExistMessage;
- newValidationStatus = IMessageProvider.WARNING;
- allowFinish = true;
- } else {
- allowFinish = true;
- }
-
- // overwrite the current validation status / message only if everything is ok (clearing them)
- // or if we have a more serious problem than the current one
- if (validationStatus == IMessageProvider.NONE
- || newValidationStatus > validationStatus) {
- validationStatus = newValidationStatus;
- validationMessage = message;
- }
- setMessage(validationMessage, validationStatus);
- return allowFinish;
- }
-
- /**
- * Returns the variable name.
- *
- * @return the variable name
- */
- public String getVariableName() {
- return variableName;
- }
-
- /**
- * Returns the variable value.
- *
- * @return the variable value
- */
- public String getVariableValue() {
- return variableValue;
- }
-
- /**
- * Sets the variable name.
- *
- * @param variableName the new variable name
- */
- public void setVariableName(String variableName) {
- this.variableName = variableName.trim();
- this.originalName = this.variableName;
- }
-
- /**
- * Sets the variable value.
- *
- * @param variableValue the new variable value
- */
- public void setVariableValue(String variableValue) {
- this.variableValue = variableValue;
- }
-
-
-}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PathEntryVariablePreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PathEntryVariablePreferencePage.java
deleted file mode 100644
index 2298e730e32..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PathEntryVariablePreferencePage.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 QNX Software Systems 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:
- * QNX Software Systems - Initial API and implementation
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.ui.preferences;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-
-import org.eclipse.cdt.internal.ui.ICHelpContextIds;
-
-/**
- * @deprecated in CDT 8.0. This class appears to be never used.
- */
-@Deprecated
-public class PathEntryVariablePreferencePage extends PreferencePage
-implements IWorkbenchPreferencePage {
-
- private Label topLabel;
-
- private PathEntryVariablesGroup pathEntryVariablesGroup;
-
- /**
- * Constructs a preference page of path variables.
- * Omits "Restore Defaults"/"Apply Changes" buttons.
- */
- public PathEntryVariablePreferencePage() {
- pathEntryVariablesGroup = new PathEntryVariablesGroup(true, IResource.FILE | IResource.FOLDER);
- this.noDefaultAndApplyButton();
- }
-
- /**
- * Resets this page's internal state and creates its UI contents.
- *
- * @see PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Control createContents(Composite parent) {
- Font font = parent.getFont();
-
- PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, ICHelpContextIds.PATHENTRY_VARIABLES_PREFERENCE_PAGE);
-
- // define container & its gridding
- Composite pageComponent = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- pageComponent.setLayout(layout);
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- pageComponent.setLayoutData(data);
- pageComponent.setFont(font);
-
-
- topLabel = new Label(pageComponent, SWT.NONE);
- topLabel.setText(PreferencesMessages.PathEntryVariablePreference_explanation);
- data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- topLabel.setLayoutData(data);
- topLabel.setFont(font);
-
- pathEntryVariablesGroup.createContents(pageComponent);
-
- return pageComponent;
- }
-
- /**
- * Creates a tab of one horizontal spans.
- *
- * @param parent the parent in which the tab should be created
- */
- protected static void createSpace(Composite parent) {
- Label vfiller = new Label(parent, SWT.LEFT);
- GridData gridData = new GridData();
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.BEGINNING;
- gridData.grabExcessHorizontalSpace = false;
- gridData.verticalAlignment = GridData.CENTER;
- gridData.grabExcessVerticalSpace = false;
- vfiller.setLayoutData(gridData);
- }
-
- /**
- * Disposes the path variables group.
- * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
- */
- @Override
- public void dispose() {
- pathEntryVariablesGroup.dispose();
- super.dispose();
- }
-
- /**
- * Empty implementation. This page does not use the workbench.
- *
- * @see IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /**
- * Commits the temporary state to the path variable manager in response to user
- * confirmation.
- *
- * @see PreferencePage#performOk()
- */
- @Override
- public boolean performOk() {
- return pathEntryVariablesGroup.performOk();
- }
-
-}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PathEntryVariablesGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PathEntryVariablesGroup.java
deleted file mode 100644
index 9d25dcd2df5..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PathEntryVariablesGroup.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2008 QNX Software Systems 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:
- * QNX Software Systems - Initial API and implementation
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.ui.preferences;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.Map.Entry;
-
-import org.eclipse.core.resources.IPathVariableManager;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.resources.IPathEntryVariableManager;
-
-import org.eclipse.cdt.internal.ui.CPluginImages;
-
-/**
- * @deprecated in CDT 8.0. This class appears to be never used.
- */
-@Deprecated
-public class PathEntryVariablesGroup {
-
- /**
- * Simple data structure that holds a path variable name/value pair.
- */
- public static class PathEntryVariableElement {
- public String name;
-
- public IPath path;
- }
-
- // sizing constants
- private static final int SIZING_SELECTION_PANE_WIDTH = 400;
-
- // parent shell
- private Shell shell;
-
- private Label variableLabel;
-
- private Table variableTable;
-
- private Button addButton;
-
- private Button editButton;
-
- private Button removeButton;
-
- // used to compute layout sizes
- private FontMetrics fontMetrics;
-
- // create a multi select table
- private boolean multiSelect;
-
- // IResource.FILE and/or IResource.FOLDER
- private int variableType;
-
- // External listener called when the table selection changes
- protected Listener selectionListener;
-
- // temporary collection for keeping currently defined variables
- private SortedMapIResource.FILE
and/or IResource.FOLDER
- * logically ORed together.
- */
- public PathEntryVariablesGroup(boolean multiSelect, int variableType) {
- this.multiSelect = multiSelect;
- this.variableType = variableType;
- pathEntryVariableManager = CCorePlugin.getDefault().getPathEntryVariableManager();
- removedVariableNames = new HashSetIResource.FILE
and/or IResource.FOLDER
- * logically ORed together.
- * @param selectionListener listener notified when the selection changes
- * in the variables list.
- */
- public PathEntryVariablesGroup(boolean multiSelect, int variableType,
- Listener selectionListener) {
- this(multiSelect, variableType);
- this.selectionListener = selectionListener;
- }
-
- /**
- * Opens a dialog for creating a new variable.
- */
- protected void addNewVariable() {
- // constructs a dialog for editing the new variable's current name and value
- PathEntryVariableDialog dialog = new PathEntryVariableDialog(shell,
- PathEntryVariableDialog.NEW_VARIABLE, variableType, tempPathVariables.keySet());
-
- // opens the dialog - just returns if the user cancels it
- if (dialog.open() == Window.CANCEL)
- return;
-
- // otherwise, adds the new variable (or updates an existing one) in the
- // temporary collection of currently defined variables
- String newVariableName = dialog.getVariableName();
- IPath newVariableValue = new Path(dialog.getVariableValue());
- tempPathVariables.put(newVariableName, newVariableValue);
-
- // the UI must be updated
- updateWidgetState(newVariableName);
- }
-
- /**
- * Creates the widget group.
- * Callers must call dispose
when the group is no
- * longer needed.
- *
- * @param parent the widget parent
- * @return container of the widgets
- */
- public Control createContents(Composite parent) {
- Font font = parent.getFont();
-
- if (imageUnkown == null) {
- ImageDescriptor descriptor = CPluginImages.DESC_OVR_WARNING;
- imageUnkown = descriptor.createImage();
- }
- initializeDialogUnits(parent);
- shell = parent.getShell();
-
- // define container & its layout
- Composite pageComponent = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- pageComponent.setLayout(layout);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.widthHint = SIZING_SELECTION_PANE_WIDTH;
- pageComponent.setLayoutData(data);
- pageComponent.setFont(font);
-
- // layout the table & its buttons
- variableLabel = new Label(pageComponent, SWT.LEFT);
- variableLabel.setText(PreferencesMessages.PathEntryVariablesBlock_variablesLabel);
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.horizontalSpan = 2;
- variableLabel.setLayoutData(data);
- variableLabel.setFont(font);
-
- int tableStyle = SWT.BORDER | SWT.FULL_SELECTION;
- if (multiSelect) {
- tableStyle |= SWT.MULTI;
- }
- variableTable = new Table(pageComponent, tableStyle);
- variableTable.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateEnabledState();
- if (selectionListener != null)
- selectionListener.handleEvent(new Event());
- }
- });
- data = new GridData(GridData.FILL_BOTH);
- data.heightHint = variableTable.getItemHeight() * 7;
- variableTable.setLayoutData(data);
- variableTable.setFont(font);
-
- createButtonGroup(pageComponent);
- // populate table with current internal state and set buttons' initial state
- updateWidgetState(null);
-
- return pageComponent;
- }
-
- /**
- * Disposes the group's resources.
- */
- public void dispose() {
- if (imageUnkown != null) {
- imageUnkown.dispose();
- imageUnkown = null;
- }
- }
-
- /**
- * Opens a dialog for editing an existing variable.
- *
- * @see PathEntryVariableDialog
- */
- protected void editSelectedVariable() {
- // retrieves the name and value for the currently selected variable
- TableItem item = variableTable.getItem(variableTable
- .getSelectionIndex());
- String variableName = (String) item.getData();
- IPath variableValue = tempPathVariables.get(variableName);
-
- // constructs a dialog for editing the variable's current name and value
- PathEntryVariableDialog dialog = new PathEntryVariableDialog(shell,
- PathEntryVariableDialog.EXISTING_VARIABLE, variableType, tempPathVariables.keySet());
- dialog.setVariableName(variableName);
- dialog.setVariableValue(variableValue.toOSString());
-
- // opens the dialog - just returns if the user cancels it
- if (dialog.open() == Window.CANCEL)
- return;
-
- // the name can be changed, so we remove the current variable definition...
- removedVariableNames.add(variableName);
- tempPathVariables.remove(variableName);
-
- String newVariableName = dialog.getVariableName();
- IPath newVariableValue = new Path(dialog.getVariableValue());
-
- // and add it again (maybe with a different name)
- tempPathVariables.put(newVariableName, newVariableValue);
-
- // now we must refresh the UI state
- updateWidgetState(newVariableName);
-
- }
-
- /**
- * Returns the enabled state of the group's widgets.
- * Returns true
if called prior to calling
- * createContents
.
- *
- * @return boolean the enabled state of the group's widgets.
- * true
if called prior to calling createContents
.
- */
- public boolean getEnabled() {
- if (variableTable != null && !variableTable.isDisposed()) {
- return variableTable.getEnabled();
- }
- return true;
- }
-
- /**
- * Returns the selected variables.
- *
- * @return the selected variables. Returns an empty array if
- * the widget group has not been created yet by calling
- * createContents
- */
- public PathEntryVariableElement[] getSelection() {
- if (variableTable == null) {
- return new PathEntryVariableElement[0];
- }
- TableItem[] items = variableTable.getSelection();
- PathEntryVariableElement[] selection = new PathEntryVariableElement[items.length];
-
- for (int i = 0; i < items.length; i++) {
- String name = (String) items[i].getData();
- selection[i] = new PathEntryVariableElement();
- selection[i].name = name;
- selection[i].path = tempPathVariables.get(name);
- }
- return selection;
- }
-
- /**
- * Creates the add/edit/remove buttons
- *
- * @param parent the widget parent
- */
- private void createButtonGroup(Composite parent) {
- Font font = parent.getFont();
- Composite groupComponent = new Composite(parent, SWT.NULL);
- GridLayout groupLayout = new GridLayout();
- groupLayout.marginWidth = 0;
- groupLayout.marginHeight = 0;
- groupComponent.setLayout(groupLayout);
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- groupComponent.setLayoutData(data);
- groupComponent.setFont(font);
-
- addButton = new Button(groupComponent, SWT.PUSH);
- addButton.setText(PreferencesMessages.PathEntryVariablesBlock_addVariableButton);
- addButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- addNewVariable();
- }
- });
- addButton.setFont(font);
- setButtonLayoutData(addButton);
-
- editButton = new Button(groupComponent, SWT.PUSH);
- editButton.setText(PreferencesMessages.PathEntryVariablesBlock_editVariableButton);
- editButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- editSelectedVariable();
- }
- });
- editButton.setFont(font);
- setButtonLayoutData(editButton);
-
- removeButton = new Button(groupComponent, SWT.PUSH);
- removeButton.setText(PreferencesMessages.PathEntryVariablesBlock_removeVariableButton);
- removeButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- removeSelectedVariables();
- }
- });
- removeButton.setFont(font);
- setButtonLayoutData(removeButton);
- }
-
- /**
- * Initializes the computation of horizontal and vertical dialog units
- * based on the size of current font.
- *
- * This method must be called before setButtonLayoutData
- * is called.
- *
null
, the
- * first item (if any) will be selected.
- *
- * @param selectedVarName the name for the variable to be selected (may be
- * null
)
- * @see IPathVariableManager#getPathVariableNames()
- * @see IPathVariableManager#getValue(String)
- */
- private void updateVariableTable(String selectedVarName) {
- variableTable.removeAll();
- int selectedVarIndex = 0;
- for (String varName : tempPathVariables.keySet()) {
- TableItem item = new TableItem(variableTable, SWT.NONE);
- IPath value = tempPathVariables.get(varName);
- File file = value.toFile();
-
- item.setText(varName + " - " + value.toOSString()); //$NON-NLS-1$
- // the corresponding variable name is stored in each table widget item
- item.setData(varName);
- item.setImage(file.exists() ? (file.isFile() ? FILE_IMG
- : FOLDER_IMG) : imageUnkown);
- if (varName.equals(selectedVarName))
- selectedVarIndex = variableTable.getItemCount() - 1;
- }
- if (variableTable.getItemCount() > selectedVarIndex) {
- variableTable.setSelection(selectedVarIndex);
- if (selectionListener != null)
- selectionListener.handleEvent(new Event());
- } else if (variableTable.getItemCount() == 0
- && selectionListener != null)
- selectionListener.handleEvent(new Event());
- }
-
- /**
- * Commits the temporary state to the path variable manager in response to user
- * confirmation.
- *
- * @see IPathEntryVariableManager#setValue(String, IPath)
- */
- public boolean performOk() {
- try {
- // first process removed variables
- for (String removedVariableName : removedVariableNames) {
- // only removes variables that have not been added again
- if (!tempPathVariables.containsKey(removedVariableName))
- pathEntryVariableManager.setValue(removedVariableName, null);
- }
-
- // then process the current collection of variables, adding/updating them
- for (EntryGridData
on the specified button to
- * be one that is spaced for the current dialog page units. The
- * method initializeDialogUnits
must be called once
- * before calling this method for the first time.
- *
- * @param button the button to set the GridData
- * @return the GridData
set on the specified button
- */
- private GridData setButtonLayoutData(Button button) {
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
- IDialogConstants.BUTTON_WIDTH);
- data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
- SWT.DEFAULT, true).x);
- button.setLayoutData(data);
- return data;
- }
-
- /**
- * Sets the enabled state of the group's widgets.
- * Does nothing if called prior to calling createContents
.
- *
- * @param enabled the new enabled state of the group's widgets
- */
- public void setEnabled(boolean enabled) {
- if (variableTable != null && !variableTable.isDisposed()) {
- variableLabel.setEnabled(enabled);
- variableTable.setEnabled(enabled);
- addButton.setEnabled(enabled);
- if (enabled)
- updateEnabledState();
- else {
- editButton.setEnabled(enabled);
- removeButton.setEnabled(enabled);
- }
- }
- }
-
- /**
- * Updates the widget's current state: refreshes the table with the current
- * defined variables, selects the item corresponding to the given variable
- * (selects the first item if null
is provided) and updates
- * the enabled state for the Add/Remove/Edit buttons.
- *
- * @param selectedVarName the name of the variable to be selected (may be null)
- */
- private void updateWidgetState(String selectedVarName) {
- updateVariableTable(selectedVarName);
- updateEnabledState();
- }
-
-}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java
index 1e251f79c75..584cd1f279b 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java
@@ -156,30 +156,6 @@ public final class PreferencesMessages extends NLS {
public static String FoldingConfigurationBlock_combo_caption;
public static String FoldingConfigurationBlock_info_no_preferences;
public static String FoldingConfigurationBlock_error_not_exist;
- public static String PathEntryVariablePreference_explanation;
- public static String PathEntryVariableDialog_shellTitle_newVariable;
- public static String PathEntryVariableDialog_shellTitle_existingVariable;
- public static String PathEntryVariableDialog_dialogTitle_newVariable;
- public static String PathEntryVariableDialog_dialogTitle_existingVariable;
- public static String PathEntryVariableDialog_message_newVariable;
- public static String PathEntryVariableDialog_message_existingVariable;
- public static String PathEntryVariableDialog_variableName;
- public static String PathEntryVariableDialog_variableValue;
- public static String PathEntryVariableDialog_variableNameEmptyMessage;
- public static String PathEntryVariableDialog_variableValueEmptyMessage;
- public static String PathEntryVariableDialog_variableValueInvalidMessage;
- public static String PathEntryVariableDialog_file;
- public static String PathEntryVariableDialog_folder;
- public static String PathEntryVariableDialog_selectFileTitle;
- public static String PathEntryVariableDialog_selectFolderTitle;
- public static String PathEntryVariableDialog_selectFolderMessage;
- public static String PathEntryVariableDialog_variableAlreadyExistsMessage;
- public static String PathEntryVariableDialog_pathIsRelativeMessage;
- public static String PathEntryVariableDialog_pathDoesNotExistMessage;
- public static String PathEntryVariablesBlock_variablesLabel;
- public static String PathEntryVariablesBlock_addVariableButton;
- public static String PathEntryVariablesBlock_editVariableButton;
- public static String PathEntryVariablesBlock_removeVariableButton;
public static String ProposalFilterPreferencesUtil_defaultFilterName;
public static String CEditorPreferencePage_typing_tabTitle;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties
index 2d58dc54ac6..b3357307250 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties
@@ -257,37 +257,6 @@ TodoTaskInputDialog_error_comma=Name cannot contain a comma.
TodoTaskInputDialog_error_entryExists=An entry with the same name already exists.
TodoTaskInputDialog_error_noSpace=Name cannot begin or end with a whitespace.
-# --- Linked Resources ---
-PathEntryVariablePreference_explanation = PathEntry variables.
-
-# The following six keys are marked as unused by the NLS search, but they are indirectly used
-# and should be removed.
-PathEntryVariableDialog_shellTitle_newVariable = New PathEntry Variable
-PathEntryVariableDialog_shellTitle_existingVariable = Edit PathEntry Variable
-PathEntryVariableDialog_dialogTitle_newVariable = Define a New PathEntry Variable
-PathEntryVariableDialog_dialogTitle_existingVariable = Edit an Existing PathEntry Variable
-PathEntryVariableDialog_message_newVariable = Enter a new PathEntry variable name and its associated location.
-PathEntryVariableDialog_message_existingVariable = Edit PathEntry variable's name and path value.
-
-PathEntryVariableDialog_variableName = &Name:
-PathEntryVariableDialog_variableValue = &Location:
-PathEntryVariableDialog_variableNameEmptyMessage = You must provide a variable name.
-PathEntryVariableDialog_variableValueEmptyMessage = You must provide a file or folder path as variable value.
-PathEntryVariableDialog_variableValueInvalidMessage = The provided value is not a valid path.
-PathEntryVariableDialog_file = &File...
-PathEntryVariableDialog_folder = F&older...
-PathEntryVariableDialog_selectFileTitle = File selection
-PathEntryVariableDialog_selectFolderTitle = Folder selection
-PathEntryVariableDialog_selectFolderMessage = Specify the folder to be represented by the variable.
-PathEntryVariableDialog_variableAlreadyExistsMessage = This variable name is already in use.
-PathEntryVariableDialog_pathIsRelativeMessage = Path must be absolute.
-PathEntryVariableDialog_pathDoesNotExistMessage = Path does not exist.
-
-PathEntryVariablesBlock_variablesLabel = &Defined PathEntry variables:
-PathEntryVariablesBlock_addVariableButton = &New...
-PathEntryVariablesBlock_editVariableButton = Edi&t...
-PathEntryVariablesBlock_removeVariableButton = &Remove
-
# Spelling
SpellingPreferencePage_empty_threshold= A positive integer must be specified.
SpellingPreferencePage_invalid_threshold=''{0}'' is not a valid positive integer.
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreviewSourceViewer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreviewSourceViewer.java
deleted file mode 100644
index 33fc625dcd5..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreviewSourceViewer.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 QnX Software Systems 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:
- * Qnx Software Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.ui.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-/**
- * @deprecated Use {@link org.eclipse.cdt.internal.ui.editor.CSourceViewer} instead.
- */
-@Deprecated
-class PreviewSourceViewer extends SourceViewer implements IPropertyChangeListener {
- /**
- * This viewer's foreground color.
- *
- * @since 3.0
- */
- private Color fForegroundColor;
-
- /**
- * The viewer's background color.
- *
- * @since 3.0
- */
- private Color fBackgroundColor;
-
- /**
- * This viewer's selection foreground color.
- *
- * @since 3.0
- */
- private Color fSelectionForegroundColor;
-
- /**
- * The viewer's selection background color.
- *
- * @since 3.0
- */
- private Color fSelectionBackgroundColor;
-
- /**
- * The preference store.
- *
- * @since 3.0
- */
- private IPreferenceStore fPreferenceStore;
-
- /**
- * Is this source viewer configured?
- *
- * @since 3.0
- */
- private boolean fIsConfigured;
-
- public PreviewSourceViewer(Composite parent, int styles) {
- super(parent, null, styles);
- }
-
- protected void initializeViewerColors() {
- if (fPreferenceStore != null) {
-
- StyledText styledText = getTextWidget();
-
- // ----------- foreground color --------------------
- Color color = fPreferenceStore
- .getBoolean(AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT) ? null
- : createColor(fPreferenceStore,
- AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND,
- styledText.getDisplay());
- styledText.setForeground(color);
-
- if (fForegroundColor != null)
- fForegroundColor.dispose();
-
- fForegroundColor = color;
-
- // ---------- background color ----------------------
- color = fPreferenceStore
- .getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT) ? null
- : createColor(fPreferenceStore,
- AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND,
- styledText.getDisplay());
- styledText.setBackground(color);
-
- if (fBackgroundColor != null)
- fBackgroundColor.dispose();
-
- fBackgroundColor = color;
-
- // ----------- selection foreground color --------------------
- color = fPreferenceStore
- .getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_DEFAULT_COLOR) ? null
- : createColor(
- fPreferenceStore,
- AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_COLOR,
- styledText.getDisplay());
- styledText.setSelectionForeground(color);
-
- if (fSelectionForegroundColor != null)
- fSelectionForegroundColor.dispose();
-
- fSelectionForegroundColor = color;
-
- // ---------- selection background color ----------------------
- color = fPreferenceStore
- .getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_DEFAULT_COLOR) ? null
- : createColor(
- fPreferenceStore,
- AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_COLOR,
- styledText.getDisplay());
- styledText.setSelectionBackground(color);
-
- if (fSelectionBackgroundColor != null)
- fSelectionBackgroundColor.dispose();
-
- fSelectionBackgroundColor = color;
- }
- }
-
- /*
- * @see ISourceViewer#configure(SourceViewerConfiguration)
- */
- @Override
- public void configure(SourceViewerConfiguration configuration) {
-
- /*
- * Prevent access to colors disposed in unconfigure(), see:
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=53641
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86177
- */
- StyledText textWidget = getTextWidget();
- if (textWidget != null && !textWidget.isDisposed()) {
- Color foregroundColor = textWidget.getForeground();
- if (foregroundColor != null && foregroundColor.isDisposed())
- textWidget.setForeground(null);
- Color backgroundColor = textWidget.getBackground();
- if (backgroundColor != null && backgroundColor.isDisposed())
- textWidget.setBackground(null);
- }
-
- super.configure(configuration);
-
- if (fPreferenceStore != null) {
- fPreferenceStore.addPropertyChangeListener(this);
- initializeViewerColors();
- }
-
- fIsConfigured = true;
- }
-
- /*
- * @see org.eclipse.jface.text.source.ISourceViewerExtension2#unconfigure()
- * @since 3.0
- */
- @Override
- public void unconfigure() {
- if (fForegroundColor != null) {
- fForegroundColor.dispose();
- fForegroundColor = null;
- }
- if (fBackgroundColor != null) {
- fBackgroundColor.dispose();
- fBackgroundColor = null;
- }
-
- if (fPreferenceStore != null) {
- fPreferenceStore.removePropertyChangeListener(this);
- }
-
- super.unconfigure();
-
- fIsConfigured = false;
- }
-
- /**
- * Creates a color from the information stored in the given preference
- * store. Returns null
if there is no such information
- * available.
- *
- * @param store
- * the store to read from
- * @param key
- * the key used for the lookup in the preference store
- * @param display
- * the display used create the color
- * @return the created color according to the specification in the
- * preference store
- * @since 3.0
- */
- private Color createColor(IPreferenceStore store, String key,
- Display display) {
-
- RGB rgb = null;
-
- if (store.contains(key)) {
-
- if (store.isDefault(key))
- rgb = PreferenceConverter.getDefaultColor(store, key);
- else
- rgb = PreferenceConverter.getColor(store, key);
-
- if (rgb != null)
- return new Color(display, rgb);
- }
-
- return null;
- }
-
- /**
- * Sets the preference store on this viewer.
- *
- * @param store
- * the preference store
- *
- * @since 3.0
- */
- public void setPreferenceStore(IPreferenceStore store) {
- if (fIsConfigured && fPreferenceStore != null) {
- fPreferenceStore.removePropertyChangeListener(this);
- }
-
- fPreferenceStore = store;
-
- if (fIsConfigured && fPreferenceStore != null) {
- fPreferenceStore.addPropertyChangeListener(this);
- initializeViewerColors();
- }
- }
-
- /*
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- @Override
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- if (AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND.equals(property)
- || AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT
- .equals(property)
- || AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND
- .equals(property)
- || AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT
- .equals(property)
- || AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_COLOR
- .equals(property)
- || AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_DEFAULT_COLOR
- .equals(property)
- || AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_COLOR
- .equals(property)
- || AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_DEFAULT_COLOR
- .equals(property)) {
- initializeViewerColors();
- }
- }
-
-}