Class PropertyDescriptor

  • All Implemented Interfaces:
    IPropertyDescriptor
    Direct Known Subclasses:
    ColorPropertyDescriptor, ComboBoxPropertyDescriptor, TextPropertyDescriptor

    public class PropertyDescriptor
    extends Object
    implements IPropertyDescriptor
    Standard implementation for property descriptors.

    The required attributes of property descriptors (id and display name) are passed to the constructor; the optional attributes can be configured using the various set methods (all have reasonable default values):

    • setDescription
    • setCategory
    • setLabelProvider
    • setHelpContexts

    Subclasses should reimplement getPropertyEditor to provide a cell editor for changing the value; otherwise the property will be effectively read only.

    There are several concrete subclasses provided in this package that cover the most common cases:

    • TextPropertyDescriptor - edits with a TextCellEditor
    • ComboBoxPropertyDescriptor - edits with a ComboBoxCellEditor
    • ColorPropertyDescriptor - edits with a ColorCellEditor
    • Constructor Summary

      Constructors 
      Constructor Description
      PropertyDescriptor​(Object id, String displayName)
      Creates a new property descriptor with the given id and display name
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      CellEditor createPropertyEditor​(Composite parent)
      The PropertyDescriptor implementation of this IPropertyDescriptor method returns null.
      protected boolean getAlwaysIncompatible()
      Returns true if this property descriptor is to be always considered incompatible with any other property descriptor.
      String getCategory()
      The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setCategory method.
      String getDescription()
      The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setDescription method.
      String getDisplayName()
      The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns the value supplied on the constructor.
      String[] getFilterFlags()
      The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setFilterFlags method.
      Object getHelpContextIds()
      The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setHelpContextId method.
      Object getId()
      The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value supplied on the constructor.
      ILabelProvider getLabelProvider()
      The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setProvider method or, if no value has been set it returns a LabelProvider
      protected ICellEditorValidator getValidator()
      Returns the input validator for editing the property.
      boolean isCompatibleWith​(IPropertyDescriptor anotherProperty)
      The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns true if the other property has the same id and category and getAlwaysIncompatible() returns false
      boolean isLabelProviderSet()
      Returns whether a label provider has been set on the receiver.
      void setAlwaysIncompatible​(boolean flag)
      Sets a flag indicating whether this property descriptor is to be always considered incompatible with any other property descriptor.
      void setCategory​(String category)
      Sets the category for this property descriptor.
      void setDescription​(String description)
      Sets the description for this property descriptor.
      void setFilterFlags​(String[] value)
      Sets the the filter flags for this property descriptor.
      void setHelpContextIds​(Object contextIds)
      Sets the help context id for this property descriptor.
      void setLabelProvider​(ILabelProvider provider)
      Sets the label provider for this property descriptor.
      void setValidator​(ICellEditorValidator validator)
      Sets the input validator for the cell editor for this property descriptor.
    • Constructor Detail

      • PropertyDescriptor

        public PropertyDescriptor​(Object id,
                                  String displayName)
        Creates a new property descriptor with the given id and display name
        Parameters:
        id - property id
        displayName - display name
    • Method Detail

      • createPropertyEditor

        public CellEditor createPropertyEditor​(Composite parent)
        The PropertyDescriptor implementation of this IPropertyDescriptor method returns null.

        Since no cell editor is returned, the property is read only.

        Specified by:
        createPropertyEditor in interface IPropertyDescriptor
        Parameters:
        parent - the parent widget for the cell editor
        Returns:
        the cell editor for this property, or null if this property cannot be edited
      • getAlwaysIncompatible

        protected boolean getAlwaysIncompatible()
        Returns true if this property descriptor is to be always considered incompatible with any other property descriptor. This prevents a property from displaying during multiple selection.
        Returns:
        true to indicate always incompatible
      • getCategory

        public String getCategory()
        The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setCategory method. If unset, this method returns null indicating the default category.
        Specified by:
        getCategory in interface IPropertyDescriptor
        Returns:
        the category name, or null if the default category is to be used
        See Also:
        setCategory(java.lang.String)
      • getDescription

        public String getDescription()
        The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setDescription method. If unset, this method returns null indicating no description.
        Specified by:
        getDescription in interface IPropertyDescriptor
        Returns:
        a brief description, or null if none
        See Also:
        setDescription(java.lang.String)
      • getDisplayName

        public String getDisplayName()
        The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns the value supplied on the constructor.
        Specified by:
        getDisplayName in interface IPropertyDescriptor
        Returns:
        a displayable name
      • getFilterFlags

        public String[] getFilterFlags()
        The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns the value set by the setFilterFlags method. If unset, this method returns null.

        Valid values for these flags are declared as constants on IPropertySheetEntry

        Specified by:
        getFilterFlags in interface IPropertyDescriptor
        Returns:
        a list of filter types to which this property belongs, or null if none
      • getId

        public Object getId()
        The PropertyDescriptor implementation of this IPropertyDescriptor method returns the value supplied on the constructor.
        Specified by:
        getId in interface IPropertyDescriptor
        Returns:
        the property id
      • getValidator

        protected ICellEditorValidator getValidator()
        Returns the input validator for editing the property.
        Returns:
        the validator used to verify correct values for this property, or null
      • isCompatibleWith

        public boolean isCompatibleWith​(IPropertyDescriptor anotherProperty)
        The SimplePropertyDescriptor implementation of this IPropertyDescriptor method returns true if the other property has the same id and category and getAlwaysIncompatible() returns false
        Specified by:
        isCompatibleWith in interface IPropertyDescriptor
        Parameters:
        anotherProperty - the other property descriptor
        Returns:
        true if the property descriptors are compatible, and false otherwise
      • setAlwaysIncompatible

        public void setAlwaysIncompatible​(boolean flag)
        Sets a flag indicating whether this property descriptor is to be always considered incompatible with any other property descriptor. Setting this flag prevents a property from displaying during multiple selection.
        Parameters:
        flag - true to indicate always incompatible
      • setCategory

        public void setCategory​(String category)
        Sets the category for this property descriptor.
        Parameters:
        category - the category for the descriptor, or null if none
        See Also:
        getCategory()
      • setDescription

        public void setDescription​(String description)
        Sets the description for this property descriptor. The description should be limited to a single line so that it can be displayed in the status line.
        Parameters:
        description - the description, or null if none
        See Also:
        getDescription()
      • setFilterFlags

        public void setFilterFlags​(String[] value)
        Sets the the filter flags for this property descriptor. The description should be limited to a single line so that it can be displayed in the status line.

        Valid values for these flags are declared as constants on IPropertySheetEntry

        Parameters:
        value - the filter flags
        See Also:
        getFilterFlags()
      • setHelpContextIds

        public void setHelpContextIds​(Object contextIds)
        Sets the help context id for this property descriptor. NOTE: Help support system API's changed since 2.0 and arrays of contexts are no longer supported.

        Thus the only valid parameter type for this method is a String representing a context id. The previously valid parameter types are deprecated. The plural name for this method is unfortunate.

        Parameters:
        contextIds - the help context ids, or null if none
        See Also:
        getHelpContextIds()
      • setLabelProvider

        public void setLabelProvider​(ILabelProvider provider)
        Sets the label provider for this property descriptor.

        If no label provider is set an instance of LabelProvider will be created as the default when needed.

        Parameters:
        provider - the label provider for the descriptor, or null if the default label provider should be used
        See Also:
        getLabelProvider()
      • setValidator

        public void setValidator​(ICellEditorValidator validator)
        Sets the input validator for the cell editor for this property descriptor.

        [Issue: This method should be unnecessary is the cell editor's own validator is used. ]

        Parameters:
        validator - the cell input validator, or null if none