# Class PropertyDescriptor

java.lang.Object
org.eclipse.ui.views.properties.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

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.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### 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 Details

### 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(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(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

### getHelpContextIds

public Object getHelpContextIds()
The `SimplePropertyDescriptor` implementation of this `IPropertyDescriptor` method returns the value set by the `setHelpContextId` method. If unset, this method returns `null`.

Specified by:
  `getHelpContextIds` in interface `IPropertyDescriptor`
Returns:
  the help context id for this entry
See Also:
  - `setHelpContextIds(Object)`

### 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

### getLabelProvider

public 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`

Specified by:
  `getLabelProvider` in interface `IPropertyDescriptor`
Returns:
  the label provider used to display this property
See Also:
  - `setLabelProvider(ILabelProvider)`

### 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`

### isLabelProviderSet

public boolean isLabelProviderSet()
Returns whether a label provider has been set on the receiver.

Returns:
  whether a label provider has been set on the receiver.
Since:
  3.0
See Also:
  - `setLabelProvider(ILabelProvider)`

### 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