diff options
author | Oleg Krasilnikov | 2007-11-07 07:39:07 +0000 |
---|---|---|
committer | Oleg Krasilnikov | 2007-11-07 07:39:07 +0000 |
commit | 34a23ed0e5b110ec59a50ba2a2cc6e72fb582c83 (patch) | |
tree | 0c0d7f510eba823c35f59cf5d3a3e71cee131873 | |
parent | 9df71b337e9a3c1b20e70ead6214f24e91b3ff6c (diff) | |
download | org.eclipse.cdt-34a23ed0e5b110ec59a50ba2a2cc6e72fb582c83.tar.gz org.eclipse.cdt-34a23ed0e5b110ec59a50ba2a2cc6e72fb582c83.tar.xz org.eclipse.cdt-34a23ed0e5b110ec59a50ba2a2cc6e72fb582c83.zip |
Bug # 207315 : contextId was ignored by IOption
6 files changed, 89 insertions, 9 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java index a4a8e588042..1ca857c9824 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java @@ -58,6 +58,7 @@ public interface IOption extends IBuildObject { public static final String COMMAND = "command"; //$NON-NLS-1$ public static final String COMMAND_FALSE = "commandFalse"; //$NON-NLS-1$ public static final String TOOL_TIP = "tip"; //$NON-NLS-1$ + public static final String CONTEXT_ID = "contextId"; //$NON-NLS-1$ public static final String DEFAULT_VALUE = "defaultValue"; //$NON-NLS-1$ public static final String ENUM_VALUE = "enumeratedOptionValue"; //$NON-NLS-1$ public static final String IS_DEFAULT = "isDefault"; //$NON-NLS-1$ @@ -242,6 +243,21 @@ public interface IOption extends IBuildObject { public void setToolTip(String tooltip); /** + * Answers a <code>String</code> containing the contextId + * associated with the option + * @return String + */ + public String getContextId(); + + /** + * Sets a <code>String</code> containing the contextId + * associated with the option + * + * @param String + */ + public void setContextId(String id); + + /** * Answers the user-defined preprocessor symbols. * * @return String[] diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java index 52697c51d01..f4f817e2824 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java @@ -61,6 +61,7 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest private String command; private String commandFalse; private String tip; + private String contextId; private List enumList; private Map enumCommands; private Map enumNames; @@ -188,6 +189,9 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest if (option.tip != null) { tip = new String(option.tip); } + if (option.contextId != null) { + contextId = new String(option.contextId); + } if (option.categoryId != null) { categoryId = new String(option.categoryId); } @@ -322,6 +326,9 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest // Get the tooltip for the option tip = element.getAttribute(TOOL_TIP); + // Get the contextID for the option + contextId = element.getAttribute(CONTEXT_ID); + // Options hold different types of values String valueTypeStr = element.getAttribute(VALUE_TYPE); if (valueTypeStr != null) { @@ -442,6 +449,11 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest tip = element.getAttribute(TOOL_TIP); } + // Get the contextID for the option + if (element.getAttribute(CONTEXT_ID) != null) { + contextId = element.getAttribute(CONTEXT_ID); + } + // Options hold different types of values if (element.getAttribute(VALUE_TYPE) != null) { String valueTypeStr = element.getAttribute(VALUE_TYPE); @@ -689,6 +701,9 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest element.setAttribute(TOOL_TIP, tip); } + if (contextId != null) { + element.setAttribute(CONTEXT_ID, contextId); + } /* * Note: We store value & value-type as a pair, so we know what type of value we are * dealing with when we read it back in. @@ -1107,6 +1122,19 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest return tip; } /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.core.IOption#getContextId() + */ + public String getContextId() { + if (contextId == null) { + if (superClass != null) { + return superClass.getContextId(); + } else { + return EMPTY_STRING; + } + } + return contextId; + } + /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.core.IOption#getDefinedSymbols() */ public String[] getDefinedSymbols() throws BuildException { @@ -1589,7 +1617,7 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest } } } - + /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.core.IOption#setToolTip(String) */ @@ -1605,6 +1633,20 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest } /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.core.IOption#setContextId(String) + */ + public void setContextId(String id) { + if (id == null && contextId == null) return; + if (id == null || contextId == null || !id.equals(contextId)) { + contextId = id; + if(!isExtensionElement()){ + isDirty = true; + rebuildState = true; + } + } + } + + /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.core.IOption#setResourceFilter(int) */ public void setResourceFilter(int filter) { @@ -1863,6 +1905,7 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest command == null && commandFalse == null && tip == null && + contextId == null && enumList == null && enumCommands == null && enumNames == null && diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java index 618253e3e68..84a0da761d2 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java @@ -334,6 +334,13 @@ public class OptionReference implements IOption { } /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getContextID() + */ + public String getContextId() { + return option.getContextId(); + } + + /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getDefinedSymbols() */ public String[] getDefinedSymbols() throws BuildException { @@ -805,7 +812,13 @@ public class OptionReference implements IOption { */ public void setToolTip(String tooltip) { } - + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#setContextId(String) + */ + public void setContextId(String contextId) { + } + public PluginVersionIdentifier getVersion() { return option.getVersion(); } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionComboFieldEditor.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionComboFieldEditor.java index c81300a20be..2b67feb10d0 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionComboFieldEditor.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionComboFieldEditor.java @@ -20,6 +20,7 @@ import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.PlatformUI; public class BuildOptionComboFieldEditor extends FieldEditor { @@ -46,13 +47,15 @@ public class BuildOptionComboFieldEditor extends FieldEditor { * @param name * @param label * @param tooltip + * @param contextId * @param opts * @param sel * @param parent */ - public BuildOptionComboFieldEditor(String name, String label, String tooltip, String [] opts, String sel, Composite parent) { + public BuildOptionComboFieldEditor(String name, String label, String tooltip, String contextId, String [] opts, String sel, Composite parent) { this(name, label, opts, sel, parent); setToolTip(tooltip); + if (!contextId.equals("")) PlatformUI.getWorkbench().getHelpSystem().setHelp(optionSelector, contextId); //$NON-NLS-1$ } /** diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java index aae4ae768a8..b34b3548f75 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java @@ -28,6 +28,7 @@ import org.eclipse.cdt.managedbuilder.core.IOptionApplicability; import org.eclipse.cdt.managedbuilder.core.IOptionCategory; import org.eclipse.cdt.managedbuilder.core.IResourceInfo; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; +import org.eclipse.cdt.ui.newui.AbstractPage; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditor; @@ -38,6 +39,7 @@ import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.PlatformUI; public class BuildOptionSettingsUI extends AbstractToolSettingUI { private Map fieldsMap = new HashMap(); @@ -122,19 +124,20 @@ public class BuildOptionSettingsUI extends AbstractToolSettingUI { stringField.getTextControl(fieldEditorParent).setToolTipText(opt.getToolTip()); stringField.getLabelControl(fieldEditorParent).setToolTipText(opt.getToolTip()); - + PlatformUI.getWorkbench().getHelpSystem().setHelp(stringField.getTextControl(fieldEditorParent), opt.getContextId()); fieldEditor = stringField; } break; case IOption.BOOLEAN: { class TooltipBooleanFieldEditor extends BooleanFieldEditor { - public TooltipBooleanFieldEditor(String name, String labelText, String tooltip, Composite parent) { + public TooltipBooleanFieldEditor(String name, String labelText, String tooltip, Composite parent, String contextId) { super(name, labelText, parent); getChangeControl(parent).setToolTipText(tooltip); + if (!contextId.equals(AbstractPage.EMPTY_STR)) PlatformUI.getWorkbench().getHelpSystem().setHelp(getChangeControl(parent), contextId); } } - fieldEditor = new TooltipBooleanFieldEditor(optId, opt.getName(), opt.getToolTip(), fieldEditorParent); + fieldEditor = new TooltipBooleanFieldEditor(optId, opt.getName(), opt.getToolTip(), fieldEditorParent, opt.getContextId()); } break; case IOption.ENUMERATED: { @@ -156,7 +159,7 @@ public class BuildOptionSettingsUI extends AbstractToolSettingUI { String[] enumValidNames = new String[enumValidList.size()]; enumValidList.copyInto(enumValidNames); - fieldEditor = new BuildOptionComboFieldEditor(optId, opt.getName(), opt.getToolTip(), enumValidNames, sel, fieldEditorParent); + fieldEditor = new BuildOptionComboFieldEditor(optId, opt.getName(), opt.getToolTip(), opt.getContextId(), enumValidNames, sel, fieldEditorParent); } break; case IOption.INCLUDE_PATH: @@ -174,7 +177,7 @@ public class BuildOptionSettingsUI extends AbstractToolSettingUI { case IOption.UNDEF_LIBRARY_PATHS: case IOption.UNDEF_LIBRARY_FILES: case IOption.UNDEF_MACRO_FILES: { - fieldEditor = new FileListControlFieldEditor(optId, opt.getName(), opt.getToolTip(), fieldEditorParent, opt.getBrowseType()); + fieldEditor = new FileListControlFieldEditor(optId, opt.getName(), opt.getToolTip(), opt.getContextId(), fieldEditorParent, opt.getBrowseType()); } break; default: diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/FileListControlFieldEditor.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/FileListControlFieldEditor.java index 44fc4f7927a..5428e1850ca 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/FileListControlFieldEditor.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/FileListControlFieldEditor.java @@ -32,7 +32,7 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; - +import org.eclipse.ui.PlatformUI; /** * Field editor that uses FileListControl for user input. @@ -79,11 +79,13 @@ public class FileListControlFieldEditor extends FieldEditor { String name, String labelText, String tooltip, + String contextId, Composite parent, int type) { this(name, labelText, parent, type); // can't use setToolTip(tooltip) as label not created yet getLabelControl(parent).setToolTipText(tooltip); + if (!contextId.equals("")) PlatformUI.getWorkbench().getHelpSystem().setHelp(list.getListControl(), contextId); //$NON-NLS-1$ } /** |