| /******************************************************************************* |
| * Copyright (c) 2000, 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.texteditor; |
| |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| import org.osgi.framework.Bundle; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IConfigurationElement; |
| import org.eclipse.core.runtime.Platform; |
| |
| import org.eclipse.swt.graphics.RGB; |
| |
| import org.eclipse.jface.resource.ImageDescriptor; |
| |
| import org.eclipse.ui.internal.texteditor.TextEditorPlugin; |
| |
| |
| /** |
| * An annotation preference provides all the information required for handing |
| * the preferences for the presentation of annotations of a specified type. The |
| * type can be changed and retrieved using the <code>getAnnotationType</code> |
| * and <code>setAnnotationType</code> methods. For each preference, getter and |
| * setter methods are provided. |
| * <p> |
| * Preferences that may be changed by the user also have a corresponding key |
| * that can be used to obtain the currently set value from an |
| * <code>IPreferenceStore</code>. |
| * </p> |
| * <h3>The following annotation preferences are covered:</h4> |
| * <h4>Display Preferences controlling how and where annotations are shown</h4> |
| * <ul> |
| * <li>as text background highlighting (and respective preference key),</li> |
| * <li>as text decorations (and respective preference key),</li> |
| * <li>on the overview ruler (and respective preference key),</li> |
| * <li>on the overview ruler header,</li> |
| * <li>on the vertical ruler (and respective preference key),</li> |
| * </li> |
| * </ul> |
| * <h4>Additional Display Preferences</h4> |
| * <ul> |
| * <li>the base color for annotations of this type (and respective preference key), |
| * <li>the style of text decorations that are drawn (and respective preference |
| * key),</li> |
| * <li>the annotation image provider,</li> |
| * <li>the image descriptor,</li> |
| * <li>the symbolic image name,</li> |
| * <li>the presentation layer.</li> |
| * </ul> |
| * <h4>Navigation Preferences</h4> |
| * <ul> |
| * <li>whether included in the "Go to Next Annotation" navigation action (and |
| * respective preference key),</li> |
| * <li>whether included in the "Go to Previous Annotation" navigation action |
| * (and respective preference key),</li> |
| * <li>whether to be shown in the "Go to Next/Previous Annotation" navigation |
| * toolbar dropdown (and respective preference key).</li> |
| * </ul> |
| * <h4>Preference Page Preferences</h4> |
| * <ul> |
| * <li>whether the annotation type should be included on the generic annotation |
| * preference page,</li> |
| * <li>preference label.</li> |
| * </ul> |
| * |
| * @since 2.1 |
| */ |
| public class AnnotationPreference { |
| |
| /* String constants for style enumeration */ |
| |
| /** |
| * Constant defining no decoration for the show in text style preference. |
| * @since 3.0 |
| */ |
| public static final String STYLE_NONE= "NONE"; //$NON-NLS-1$ |
| /** |
| * Constant defining squiggly decoration for the show in text style preference. |
| * @since 3.0 |
| */ |
| public static final String STYLE_SQUIGGLES= "SQUIGGLES"; //$NON-NLS-1$ |
| /** |
| * Constant defining box decoration for the show in text style preference. |
| * @since 3.0 |
| */ |
| public static final String STYLE_BOX= "BOX"; //$NON-NLS-1$ |
| /** |
| * Constant defining underline decoration for the show in text style preference. |
| * @since 3.0 |
| */ |
| public static final String STYLE_UNDERLINE= "UNDERLINE"; //$NON-NLS-1$ |
| /** |
| * Constant defining i-beam decoration for the show in text style preference. |
| * @since 3.0 |
| */ |
| public static final String STYLE_IBEAM= "IBEAM"; //$NON-NLS-1$ |
| |
| /* IDs for presentation preference attributes */ |
| |
| /** |
| * The image to be used for drawing in the vertical ruler. |
| * @since 3.0 |
| */ |
| protected final static Object IMAGE_DESCRIPTOR= new Object(); |
| /** |
| * The preference label. |
| * @since 3.0 |
| */ |
| protected final static Object PREFERENCE_LABEL= new Object(); |
| /** |
| * The presentation layer. |
| * @since 3.0 |
| */ |
| protected final static Object PRESENTATION_LAYER= new Object(); |
| /** |
| * The symbolic name of the image to be drawn in the vertical ruler. |
| * @since 3.0 |
| */ |
| protected final static Object SYMBOLIC_IMAGE_NAME= new Object(); |
| /** |
| * Indicates whether the annotation type contributed to the overview ruler's header. |
| * @since 3.0 |
| */ |
| protected final static Object HEADER_VALUE= new Object(); |
| /** |
| * The annotation image provider. |
| * @since 3.0 |
| */ |
| protected final static Object IMAGE_PROVIDER= new Object(); |
| /** |
| * The value for the includeOnPreferencePage property. |
| * @since 3.0 |
| */ |
| protected final static Object INCLUDE_ON_PREFERENCE_PAGE= new Object(); |
| |
| /* IDs for preference store access and initialization */ |
| |
| /** |
| * The preference key for the visibility inside text. |
| * @since 3.0 |
| */ |
| protected final static Object TEXT_PREFERENCE_KEY= new Object(); |
| /** |
| * The visibility inside text. |
| * @since 3.0 |
| */ |
| protected final static Object TEXT_PREFERENCE_VALUE= new Object(); |
| /** |
| * The preference key for the presentation color. |
| * @since 3.0 |
| */ |
| protected final static Object COLOR_PREFERENCE_KEY= new Object(); |
| /** The presentation color. |
| * @since 3.0 |
| */ |
| protected final static Object COLOR_PREFERENCE_VALUE= new Object(); |
| /** |
| * The preference key for highlighting inside text. |
| * @since 3.0 |
| */ |
| protected final static Object HIGHLIGHT_PREFERENCE_KEY= new Object(); |
| /** |
| * The value for highlighting inside text. |
| * @since 3.0 |
| */ |
| protected final static Object HIGHLIGHT_PREFERENCE_VALUE= new Object(); |
| /** |
| * The preference key for go to next navigation enablement. |
| * @since 3.0 |
| */ |
| protected final static Object IS_GO_TO_NEXT_TARGET_KEY= new Object(); |
| /** |
| * The value for go to next navigation enablement. |
| * @since 3.0 |
| */ |
| protected final static Object IS_GO_TO_NEXT_TARGET_VALUE= new Object(); |
| /** |
| * The preference key for go to previous navigation enablement. |
| * @since 3.0 |
| */ |
| protected final static Object IS_GO_TO_PREVIOUS_TARGET_KEY= new Object(); |
| /** |
| * The value for go to previous navigation enablement. |
| * @since 3.0 |
| */ |
| protected final static Object IS_GO_TO_PREVIOUS_TARGET_VALUE= new Object(); |
| /** |
| * The preference key for the visibility in the vertical ruler. |
| * @since 3.0 |
| */ |
| protected final static Object VERTICAL_RULER_PREFERENCE_KEY= new Object(); |
| /** |
| * The visibility in the vertical ruler. |
| * @since 3.0 |
| */ |
| protected final static Object VERTICAL_RULER_PREFERENCE_VALUE= new Object(); |
| /** |
| * The preference key for the visibility in the overview ruler. |
| * @since 3.0 |
| */ |
| protected final static Object OVERVIEW_RULER_PREFERENCE_KEY= new Object(); |
| /** |
| * The visibility in the overview ruler. |
| * @since 3.0 |
| */ |
| protected final static Object OVERVIEW_RULER_PREFERENCE_VALUE= new Object(); |
| /** |
| * The preference key for the visibility in the next/previous drop down toolbar action. |
| * @since 3.0 |
| */ |
| protected final static Object SHOW_IN_NAVIGATION_DROPDOWN_KEY= new Object(); |
| /** |
| * The value for the visibility in the next/previous drop down toolbar action. |
| * @since 3.0 |
| */ |
| protected final static Object SHOW_IN_NAVIGATION_DROPDOWN_VALUE= new Object(); |
| /** |
| * The preference key for the decoration style. |
| * @since 3.0 |
| */ |
| protected final static Object TEXT_STYLE_PREFERENCE_KEY= new Object(); |
| /** |
| * The value for the text decoration style. |
| * @since 3.0 |
| */ |
| protected final static Object TEXT_STYLE_PREFERENCE_VALUE= new Object(); |
| |
| /** |
| * Array of all supported attributes. |
| * @since 3.0 |
| */ |
| protected final static Object[] ATTRIBUTES= new Object[] { |
| IMAGE_DESCRIPTOR, |
| PREFERENCE_LABEL, |
| PRESENTATION_LAYER, |
| SYMBOLIC_IMAGE_NAME, |
| HEADER_VALUE, |
| IMAGE_PROVIDER, |
| TEXT_PREFERENCE_KEY, |
| TEXT_PREFERENCE_VALUE, |
| COLOR_PREFERENCE_KEY, |
| COLOR_PREFERENCE_VALUE, |
| HIGHLIGHT_PREFERENCE_KEY, |
| HIGHLIGHT_PREFERENCE_VALUE, |
| IS_GO_TO_NEXT_TARGET_KEY, |
| IS_GO_TO_NEXT_TARGET_VALUE, |
| IS_GO_TO_PREVIOUS_TARGET_KEY, |
| IS_GO_TO_PREVIOUS_TARGET_VALUE, |
| VERTICAL_RULER_PREFERENCE_KEY, |
| VERTICAL_RULER_PREFERENCE_VALUE, |
| OVERVIEW_RULER_PREFERENCE_KEY, |
| OVERVIEW_RULER_PREFERENCE_VALUE, |
| SHOW_IN_NAVIGATION_DROPDOWN_KEY, |
| SHOW_IN_NAVIGATION_DROPDOWN_VALUE, |
| TEXT_STYLE_PREFERENCE_KEY, |
| TEXT_STYLE_PREFERENCE_VALUE, |
| INCLUDE_ON_PREFERENCE_PAGE |
| }; |
| |
| /** The annotation type */ |
| private Object fAnnotationType; |
| /** The marker type */ |
| private String fMarkerType; |
| /** The marker severity */ |
| private int fSeverity; |
| /** |
| * The annotation image provider. |
| * @since 3.0 |
| */ |
| public IAnnotationImageProvider fAnnotationImageProvider; |
| /** |
| * The configuration element from which to create the annotation image provider. |
| * @since 3.0 |
| */ |
| public IConfigurationElement fConfigurationElement; |
| /** |
| * The name of the attribute used to load the annotation image provider |
| * from the configuration element. |
| * @since 3.0 |
| */ |
| public String fAnnotationImageProviderAttribute; |
| /** |
| * The map of attributes. |
| * @since 3.0 |
| */ |
| private Map fAttributes= new HashMap(); |
| |
| |
| |
| /** |
| * Creates a new uninitialized annotation preference. Note that instances |
| * with a <code>null</code> annotation type are invalid and should not be |
| * used. |
| */ |
| public AnnotationPreference() { |
| } |
| |
| /** |
| * Creates a new annotation preference for the given annotation type. |
| * |
| * @param annotationType the annotation type |
| * @param colorKey the preference key for the presentation color |
| * @param textKey the preference key for the visibility inside text |
| * @param overviewRulerKey the preference key for the visibility in the |
| * overview ruler |
| * @param presentationLayer the presentation layer |
| */ |
| public AnnotationPreference(Object annotationType, String colorKey, String textKey, String overviewRulerKey, int presentationLayer) { |
| fAnnotationType= annotationType; |
| setValue(COLOR_PREFERENCE_KEY, colorKey); |
| setValue(TEXT_PREFERENCE_KEY, textKey); |
| setValue(OVERVIEW_RULER_PREFERENCE_KEY, overviewRulerKey); |
| setValue(PRESENTATION_LAYER, presentationLayer); |
| } |
| |
| /** |
| * Sets the given value for the given attribute. |
| * |
| * @param attribute the attribute |
| * @param value the attribute value |
| * @since 3.0 |
| */ |
| protected void setValue(Object attribute, Object value) { |
| fAttributes.put(attribute, value); |
| } |
| |
| /** |
| * Sets the given value for the given attribute. |
| * |
| * @param attribute the attribute |
| * @param value the attribute value |
| * @since 3.0 |
| */ |
| protected void setValue(Object attribute, int value) { |
| fAttributes.put(attribute, new Integer(value)); |
| } |
| |
| /** |
| * Sets the given value for the given attribute. |
| * |
| * @param attribute the attribute |
| * @param value the attribute value |
| * @since 3.0 |
| */ |
| protected void setValue(Object attribute, boolean value) { |
| fAttributes.put(attribute, value ? Boolean.TRUE : Boolean.FALSE); |
| } |
| |
| /** |
| * Returns the value of the given attribute as string. |
| * |
| * @param attribute the attribute |
| * @return the attribute value |
| * @since 3.0 |
| */ |
| protected String getStringValue(Object attribute) { |
| Object value= fAttributes.get(attribute); |
| if (value instanceof String) |
| return (String) value; |
| return null; |
| } |
| |
| /** |
| * Returns the value of the given attribute as boolean. |
| * |
| * @param attribute the attribute |
| * @return the attribute value |
| * @since 3.0 |
| */ |
| protected boolean getBooleanValue(Object attribute) { |
| Object value= fAttributes.get(attribute); |
| if (value instanceof Boolean) |
| return ((Boolean) value).booleanValue(); |
| return false; |
| } |
| |
| /** |
| * Returns the value of the given attribute as integer. |
| * |
| * @param attribute the attribute |
| * @return the attribute value |
| * @since 3.0 |
| */ |
| protected int getIntegerValue(Object attribute) { |
| Object value= fAttributes.get(attribute); |
| if (value instanceof Integer) |
| return ((Integer) value).intValue(); |
| return 0; |
| } |
| |
| /** |
| * Returns the value of the given attribute. |
| * |
| * @param attribute the attribute |
| * @return the attribute value |
| * @since 3.0 |
| */ |
| public Object getValue(Object attribute) { |
| return fAttributes.get(attribute); |
| } |
| |
| /** |
| * Returns whether the given attribute is defined. |
| * |
| * @param attribute the attribute |
| * @return <code>true</code> if the attribute has a value <code>false</code> otherwise |
| * @since 3.0 |
| */ |
| public boolean hasValue(Object attribute) { |
| return fAttributes.get(attribute) != null; |
| } |
| |
| /** |
| * Returns whether the given string is a preference key. |
| * |
| * @param key the string to test |
| * @return <code>true</code> if the string is a preference key |
| */ |
| public boolean isPreferenceKey(String key) { |
| if (key == null) |
| return false; |
| |
| return key.equals(getStringValue(COLOR_PREFERENCE_KEY)) || |
| key.equals(getStringValue(OVERVIEW_RULER_PREFERENCE_KEY)) || |
| key.equals(getStringValue(TEXT_PREFERENCE_KEY)) || |
| key.equals(getStringValue(HIGHLIGHT_PREFERENCE_KEY)) || |
| key.equals(getStringValue(TEXT_STYLE_PREFERENCE_KEY)) || |
| key.equals(getStringValue(VERTICAL_RULER_PREFERENCE_KEY)); |
| } |
| |
| /** |
| * Returns the annotation type. Should not be null in a completely set up |
| * instance. |
| * |
| * @return the annotation type, <code>null</code> if the receiver has not |
| * been initialized yet |
| */ |
| public Object getAnnotationType() { |
| return fAnnotationType; |
| } |
| |
| /** |
| * Returns the marker type. |
| * |
| * @return the marker type, or <code>null</code> if none is set |
| * @deprecated since 3.0 |
| */ |
| public String getMarkerType() { |
| return fMarkerType; |
| } |
| |
| /** |
| * Returns the marker severity. |
| * |
| * @return the marker severity |
| * @deprecated since 3.0 |
| */ |
| public int getSeverity() { |
| return fSeverity; |
| } |
| |
| /** |
| * Sets the annotation type. Note that instances with a <code>null</code> |
| * annotation type are considered invalid and should not be used with the |
| * framework. |
| * |
| * @param annotationType the annotation type |
| */ |
| public void setAnnotationType(Object annotationType) { |
| fAnnotationType= annotationType; |
| } |
| |
| /** |
| * Sets the marker type. |
| * |
| * @param markerType the marker type |
| */ |
| public void setMarkerType(String markerType) { |
| fMarkerType= markerType; |
| } |
| |
| /** |
| * Sets the marker severity. |
| * |
| * @param severity the marker severity |
| */ |
| public void setSeverity(int severity) { |
| fSeverity= severity; |
| } |
| |
| /** |
| * Returns the preference key for the presentation color. |
| * |
| * @return the preference key for the presentation color or <code>null</code> |
| * if none is set |
| */ |
| public String getColorPreferenceKey() { |
| return getStringValue(COLOR_PREFERENCE_KEY); |
| } |
| |
| /** |
| * Returns the default presentation color. |
| * |
| * @return the default presentation color or <code>null</code> if none is |
| * set |
| */ |
| public RGB getColorPreferenceValue() { |
| return (RGB) getValue(COLOR_PREFERENCE_VALUE); |
| } |
| |
| /** |
| * Returns the presentation string for this annotation type. |
| * |
| * @return the presentation string for this annotation type or <code>null</code> |
| * if none is set |
| */ |
| public String getPreferenceLabel() { |
| return getStringValue(PREFERENCE_LABEL); |
| } |
| |
| /** |
| * Returns the preference key for the visibility in the overview ruler. |
| * |
| * @return the preference key for the visibility in the overview ruler or |
| * <code>null</code> if none is set |
| */ |
| public String getOverviewRulerPreferenceKey() { |
| return getStringValue(OVERVIEW_RULER_PREFERENCE_KEY); |
| } |
| |
| /** |
| * Returns the default visibility in the overview ruler. |
| * |
| * @return the default visibility in the overview ruler |
| */ |
| public boolean getOverviewRulerPreferenceValue() { |
| return getBooleanValue(OVERVIEW_RULER_PREFERENCE_VALUE); |
| } |
| |
| /** |
| * Returns the preference key for the visibility in the vertical ruler. |
| * |
| * @return the preference key for the visibility in the vertical ruler or |
| * <code>null</code> if none is set |
| * @since 3.0 |
| */ |
| public String getVerticalRulerPreferenceKey() { |
| return getStringValue(VERTICAL_RULER_PREFERENCE_KEY); |
| } |
| |
| /** |
| * Returns the default visibility in the vertical ruler. |
| * |
| * @return the default visibility in the vertical ruler |
| * @since 3.0 |
| */ |
| public boolean getVerticalRulerPreferenceValue() { |
| return getBooleanValue(VERTICAL_RULER_PREFERENCE_VALUE); |
| } |
| |
| /** |
| * Returns the presentation layer. |
| * |
| * @return the presentation layer |
| */ |
| public int getPresentationLayer() { |
| return getIntegerValue(PRESENTATION_LAYER); |
| } |
| |
| /** |
| * Returns the preference key for the visibility inside text. |
| * |
| * @return the preference key for the visibility inside text or <code>null</code> |
| * if none is set |
| */ |
| public String getTextPreferenceKey() { |
| return getStringValue(TEXT_PREFERENCE_KEY); |
| } |
| |
| /** |
| * Returns the default visibility inside text. |
| * |
| * @return the default visibility inside text |
| */ |
| public boolean getTextPreferenceValue() { |
| return getBooleanValue(TEXT_PREFERENCE_VALUE); |
| } |
| |
| /** |
| * Returns the preference key for highlighting inside text. |
| * |
| * @return the preference key for highlighting inside text or <code>null</code> |
| * if none is set |
| * @since 3.0 |
| */ |
| public String getHighlightPreferenceKey() { |
| return getStringValue(HIGHLIGHT_PREFERENCE_KEY); |
| } |
| |
| /** |
| * Returns the default value for highlighting inside text. |
| * |
| * @return the default value for highlighting inside text |
| * @since 3.0 |
| */ |
| public boolean getHighlightPreferenceValue() { |
| return getBooleanValue(HIGHLIGHT_PREFERENCE_VALUE); |
| } |
| |
| /** |
| * Returns whether the annotation type contributes to the header of the overview ruler. |
| * |
| * @return <code>true</code> if the annotation type contributes to the header of the overview ruler |
| */ |
| public boolean contributesToHeader() { |
| return getBooleanValue(HEADER_VALUE); |
| } |
| |
| /** |
| * Sets the preference key for the presentation color. |
| * |
| * @param colorKey the preference key |
| */ |
| public void setColorPreferenceKey(String colorKey) { |
| setValue(COLOR_PREFERENCE_KEY, colorKey); |
| } |
| |
| /** |
| * Sets the default presentation color. |
| * |
| * @param colorValue the default color |
| */ |
| public void setColorPreferenceValue(RGB colorValue) { |
| setValue(COLOR_PREFERENCE_VALUE, colorValue); |
| } |
| |
| /** |
| * Sets the presentation label of this annotation type. |
| * |
| * @param label the presentation label |
| */ |
| public void setPreferenceLabel(String label) { |
| setValue(PREFERENCE_LABEL, label); |
| } |
| |
| /** |
| * Sets the preference key for the visibility in the overview ruler. |
| * |
| * @param overviewRulerKey the preference key |
| */ |
| public void setOverviewRulerPreferenceKey(String overviewRulerKey) { |
| setValue(OVERVIEW_RULER_PREFERENCE_KEY, overviewRulerKey); |
| } |
| |
| /** |
| * Sets the default visibility in the overview ruler. |
| * |
| * @param overviewRulerValue <code>true</code> if visible by default, <code>false</code> otherwise |
| */ |
| public void setOverviewRulerPreferenceValue(boolean overviewRulerValue) { |
| setValue(OVERVIEW_RULER_PREFERENCE_VALUE, overviewRulerValue); |
| } |
| |
| /** |
| * Sets the preference key for the visibility in the vertical ruler. |
| * |
| * @param verticalRulerKey the preference key |
| * @since 3.0 |
| */ |
| public void setVerticalRulerPreferenceKey(String verticalRulerKey) { |
| setValue(VERTICAL_RULER_PREFERENCE_KEY, verticalRulerKey); |
| } |
| |
| /** |
| * Sets the default visibility in the vertical ruler. |
| * |
| * @param verticalRulerValue <code>true</code> if visible by default, <code>false</code> otherwise |
| * @since 3.0 |
| */ |
| public void setVerticalRulerPreferenceValue(boolean verticalRulerValue) { |
| setValue(VERTICAL_RULER_PREFERENCE_VALUE, verticalRulerValue); |
| } |
| |
| /** |
| * Sets the presentation layer. |
| * |
| * @param presentationLayer the presentation layer |
| */ |
| public void setPresentationLayer(int presentationLayer) { |
| setValue(PRESENTATION_LAYER, presentationLayer); |
| } |
| |
| /** |
| * Sets the preference key for the visibility of squiggles inside text. |
| * |
| * @param textKey the preference key |
| */ |
| public void setTextPreferenceKey(String textKey) { |
| setValue(TEXT_PREFERENCE_KEY, textKey); |
| } |
| |
| /** |
| * Sets the default visibility inside text. |
| * |
| * @param textValue <code>true</code> if visible by default, <code>false</code> otherwise |
| */ |
| public void setTextPreferenceValue(boolean textValue) { |
| setValue(TEXT_PREFERENCE_VALUE, textValue); |
| } |
| |
| /** |
| * Sets the preference key for highlighting inside text. |
| * |
| * @param highlightKey the preference key |
| * @since 3.0 |
| */ |
| public void setHighlightPreferenceKey(String highlightKey) { |
| setValue(HIGHLIGHT_PREFERENCE_KEY, highlightKey); |
| } |
| |
| /** |
| * Sets the default value for highlighting inside text. |
| * |
| * @param highlightValue <code>true</code> if highlighted in text by default, <code>false</code> otherwise |
| * @since 3.0 |
| */ |
| public void setHighlightPreferenceValue(boolean highlightValue) { |
| setValue(HIGHLIGHT_PREFERENCE_VALUE, highlightValue); |
| } |
| |
| /** |
| * Sets whether the annotation type contributes to the overview ruler's header. |
| * |
| * @param contributesToHeader <code>true</code> if in header, <code>false</code> otherwise |
| */ |
| public void setContributesToHeader(boolean contributesToHeader) { |
| setValue(HEADER_VALUE, contributesToHeader); |
| } |
| |
| /** |
| * Returns the default value for go to next navigation enablement. |
| * |
| * @return <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public boolean isGoToNextNavigationTarget() { |
| return getBooleanValue(IS_GO_TO_NEXT_TARGET_VALUE); |
| } |
| |
| /** |
| * Sets the default value for go to next navigation enablement. |
| * |
| * @param isGoToNextNavigationTarget <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public void setIsGoToNextNavigationTarget(boolean isGoToNextNavigationTarget) { |
| setValue(IS_GO_TO_NEXT_TARGET_VALUE, isGoToNextNavigationTarget); |
| } |
| |
| /** |
| * Returns the preference key for go to next navigation enablement. |
| * |
| * @return the preference key or <code>null</code> if the key is undefined |
| * @since 3.0 |
| */ |
| public String getIsGoToNextNavigationTargetKey() { |
| return getStringValue(IS_GO_TO_NEXT_TARGET_KEY); |
| } |
| |
| /** |
| * Sets the preference key for go to next navigation enablement. |
| * |
| * @param isGoToNextNavigationTargetKey <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public void setIsGoToNextNavigationTargetKey(String isGoToNextNavigationTargetKey) { |
| setValue(IS_GO_TO_NEXT_TARGET_KEY, isGoToNextNavigationTargetKey); |
| } |
| |
| /** |
| * Returns the default value for go to previous navigation enablement. |
| * |
| * @return <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public boolean isGoToPreviousNavigationTarget() { |
| return getBooleanValue(IS_GO_TO_PREVIOUS_TARGET_VALUE); |
| } |
| |
| /** |
| * Sets the default value for go to previous navigation enablement. |
| * |
| * @param isGoToPreviousNavigationTarget <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public void setIsGoToPreviousNavigationTarget(boolean isGoToPreviousNavigationTarget) { |
| setValue(IS_GO_TO_PREVIOUS_TARGET_VALUE, isGoToPreviousNavigationTarget); |
| } |
| |
| /** |
| * Returns the preference key for go to previous navigation enablement. |
| * |
| * @return the preference key or <code>null</code> if the key is undefined |
| * @since 3.0 |
| */ |
| public String getIsGoToPreviousNavigationTargetKey() { |
| return getStringValue(IS_GO_TO_PREVIOUS_TARGET_KEY); |
| } |
| |
| /** |
| * Sets the preference key for go to previous navigation enablement. |
| * |
| * @param isGoToPreviousNavigationTargetKey the preference key |
| * @since 3.0 |
| */ |
| public void setIsGoToPreviousNavigationTargetKey(String isGoToPreviousNavigationTargetKey) { |
| setValue(IS_GO_TO_PREVIOUS_TARGET_KEY, isGoToPreviousNavigationTargetKey); |
| } |
| |
| /** |
| * Returns the preference key for the visibility in the next/previous drop down toolbar action. |
| * |
| * @return the preference key or <code>null</code> if the key is undefined |
| * @since 3.0 |
| */ |
| public String getShowInNextPrevDropdownToolbarActionKey() { |
| return getStringValue(SHOW_IN_NAVIGATION_DROPDOWN_KEY); |
| } |
| |
| /** |
| * Sets the preference key for the visibility in the next/previous drop down toolbar action. |
| * |
| * @param showInNextPrevDropdownToolbarActionKey the preference key |
| * @since 3.0 |
| */ |
| public void setShowInNextPrevDropdownToolbarActionKey(String showInNextPrevDropdownToolbarActionKey) { |
| setValue(SHOW_IN_NAVIGATION_DROPDOWN_KEY, showInNextPrevDropdownToolbarActionKey); |
| } |
| |
| /** |
| * Returns the default value for the visibility in the next/previous drop down toolbar action. |
| * |
| * @return <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public boolean isShowInNextPrevDropdownToolbarAction() { |
| return getBooleanValue(SHOW_IN_NAVIGATION_DROPDOWN_VALUE); |
| } |
| |
| /** |
| * Sets the default value for the visibility in the next/previous drop down toolbar action. |
| * |
| * @param showInNextPrevDropdownToolbarAction <code>true</code> if enabled by default |
| * @since 3.0 |
| */ |
| public void setShowInNextPrevDropdownToolbarAction(boolean showInNextPrevDropdownToolbarAction) { |
| setValue(SHOW_IN_NAVIGATION_DROPDOWN_VALUE, showInNextPrevDropdownToolbarAction); |
| } |
| |
| /** |
| * Sets the preference key for the text style property. |
| * |
| * @param key the new key |
| * @since 3.0 |
| */ |
| public void setTextStylePreferenceKey(String key) { |
| setValue(TEXT_STYLE_PREFERENCE_KEY, key); |
| } |
| |
| /** |
| * Returns the preference key for the decoration style used when the annotation is shown in text. |
| * |
| * @return the preference key for the decoration style or <code>null</code> if the key is undefined |
| * @since 3.0 |
| */ |
| public String getTextStylePreferenceKey() { |
| return getStringValue(TEXT_STYLE_PREFERENCE_KEY); |
| } |
| |
| /** |
| * Returns the value for the decoration style used when the annotation is shown in text. |
| * |
| * @return the value for the decoration style or <code>null</code> if the key is undefined |
| * @since 3.0 |
| */ |
| public String getTextStyleValue() { |
| return getStringValue(TEXT_STYLE_PREFERENCE_VALUE); |
| } |
| |
| /** |
| * Sets the value for the text style property. |
| * |
| * @param value the new text decoration style |
| * @since 3.0 |
| */ |
| public void setTextStyleValue(String value) { |
| if (!STYLE_NONE.equals(value) && !STYLE_BOX.equals(value) |
| && !STYLE_IBEAM.equals(value) && !STYLE_SQUIGGLES.equals(value) |
| && !STYLE_UNDERLINE.equals(value)) |
| throw new IllegalArgumentException(); |
| |
| setValue(TEXT_STYLE_PREFERENCE_VALUE, value); |
| } |
| |
| /** |
| * Returns the image descriptor for the image to be drawn in the vertical ruler. The provided |
| * image is only used, if <code>getAnnotationImageProvider</code> returns <code>null</code>. |
| * |
| * @return the image descriptor or <code>null</code> |
| * @since 3.0 |
| */ |
| public ImageDescriptor getImageDescriptor() { |
| return (ImageDescriptor) getValue(IMAGE_DESCRIPTOR); |
| } |
| |
| /** |
| * Sets the image descriptor for the image to be drawn in the vertical ruler. |
| * |
| * @param descriptor the image descriptor |
| * @since 3.0 |
| */ |
| public void setImageDescriptor(ImageDescriptor descriptor) { |
| setValue(IMAGE_DESCRIPTOR, descriptor); |
| } |
| |
| /** |
| * Returns the symbolic name of the image to be drawn in the vertical ruler. |
| * The image is only used if <code>getImageDescriptor</code> returns <code>null</code>. |
| * |
| * @return the symbolic name of the image or <code>null</code> |
| * @since 3.0 |
| */ |
| public String getSymbolicImageName() { |
| return getStringValue(SYMBOLIC_IMAGE_NAME); |
| } |
| |
| /** |
| * Sets the symbolic name of the image to be drawn in the vertical ruler. |
| * |
| * @param symbolicImageName the symbolic image name |
| * @since 3.0 |
| */ |
| public void setSymbolicImageName(String symbolicImageName) { |
| setValue(SYMBOLIC_IMAGE_NAME, symbolicImageName); |
| } |
| |
| /** |
| * Returns the annotation image provider. If no default annotation image |
| * provider has been set, this method checks whether the annotation image |
| * provider data has been set. If so, an annotation image provider is |
| * created if the configuration element's plug-in is loaded. When an |
| * annotation image provider has been created successfully, it is set as |
| * the default annotation image provider. |
| * |
| * @return the annotation image provider |
| * @since 3.0 |
| */ |
| public IAnnotationImageProvider getAnnotationImageProvider() { |
| if (fAnnotationImageProvider == null) { |
| if (fConfigurationElement != null && fAnnotationImageProviderAttribute != null) { |
| Bundle bundle= Platform.getBundle( fConfigurationElement.getDeclaringExtension().getNamespace()); |
| if (bundle != null && bundle.getState() == Bundle.ACTIVE) { |
| try { |
| fAnnotationImageProvider= (IAnnotationImageProvider) fConfigurationElement.createExecutableExtension(fAnnotationImageProviderAttribute); |
| } catch (CoreException x) { |
| TextEditorPlugin.getDefault().getLog().log(x.getStatus()); |
| } |
| } |
| } |
| } |
| return fAnnotationImageProvider; |
| } |
| |
| /** |
| * Sets the annotation image provider who provides images for annotations |
| * of the specified annotation type. |
| * |
| * @param provider the annotation image provider |
| * @since 3.0 |
| */ |
| public void setAnnotationImageProvider(IAnnotationImageProvider provider) { |
| fAnnotationImageProvider= provider; |
| setValue(IMAGE_PROVIDER, provider != null); |
| } |
| |
| /** |
| * Sets the data needed to create the annotation image provider. |
| * |
| * @param configurationElement the configuration element |
| * @param annotationImageProviderAttribute the attribute of the |
| * configuration element |
| * @since 3.0 |
| */ |
| public void setAnnotationImageProviderData(IConfigurationElement configurationElement, String annotationImageProviderAttribute) { |
| fConfigurationElement= configurationElement; |
| fAnnotationImageProviderAttribute= annotationImageProviderAttribute; |
| setValue(IMAGE_PROVIDER, annotationImageProviderAttribute != null); |
| } |
| |
| /** |
| * Sets the property of this annotation preference whether it should be included |
| * on the default annotation preference page. |
| * |
| * @param includeOnPreferencePage the new value |
| * @since 3.0 |
| */ |
| public void setIncludeOnPreferencePage(boolean includeOnPreferencePage) { |
| setValue(INCLUDE_ON_PREFERENCE_PAGE, includeOnPreferencePage); |
| } |
| |
| /** |
| * Returns the property of the receiver of whether it should be included on |
| * the default annotation preference page. |
| * |
| * @return the includeOnPreferencePage property |
| * @since 3.0 |
| */ |
| public boolean isIncludeOnPreferencePage() { |
| Object value= fAttributes.get(INCLUDE_ON_PREFERENCE_PAGE); |
| if (value instanceof Boolean) |
| return ((Boolean) value).booleanValue(); |
| return true; |
| } |
| |
| /** |
| * Merges the values of the given preference into this preference. Existing |
| * values will not be overwritten. Subclasses may extend. |
| * |
| * @param preference the preference to merge into this preference |
| * @since 3.0 |
| */ |
| public void merge(AnnotationPreference preference) { |
| if (!getAnnotationType().equals(preference.getAnnotationType())) |
| return; |
| |
| for (int i= 0; i < ATTRIBUTES.length; i++) { |
| if (!hasValue(ATTRIBUTES[i])) |
| setValue(ATTRIBUTES[i], preference.getValue(ATTRIBUTES[i])); |
| } |
| |
| if (fAnnotationImageProvider == null) |
| fAnnotationImageProvider= preference.fAnnotationImageProvider; |
| if (fConfigurationElement == null) |
| fConfigurationElement= preference.fConfigurationElement; |
| if (fAnnotationImageProviderAttribute == null) |
| fAnnotationImageProviderAttribute= preference.fAnnotationImageProviderAttribute; |
| } |
| } |