public abstract static class Node.Property<T> extends FeatureDescriptor
You may associate context help with this object, if desired, by setting
a custom property
with the name helpID
and value of type String
giving a help ID.
Normally this is unnecessary as help for the whole Node
will be used by default.
Important: the code name
you use for the
property is relevant not only for making properties of a node unique, but also for
firing property changes
.
Constructor and Description |
---|
Property(Class<T> valueType)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
abstract boolean |
canRead()
Test whether the property is readable.
|
abstract boolean |
canWrite()
Test whether the property is writable.
|
boolean |
equals(Object property) |
String |
getHtmlDisplayName()
Return a variant of the display name containing HTML markup
conforming to the limited subset of font-markup HTML supported by
the lightweight HTML renderer
HtmlRenderer
(font color, bold, italic and strike-through supported; font
colors can be UIManager color keys if they are prefixed with
a ! character, i.e. |
PropertyEditor |
getPropertyEditor()
Get a property editor for this property.
|
abstract T |
getValue()
Get the value.
|
Class<T> |
getValueType()
Get the value type.
|
int |
hashCode() |
boolean |
isDefaultValue()
This method indicates whether the current value is the same as
the value that would otherwise be restored by calling
restoreDefaultValue() (if supportsDefaultValue()
returns true). |
void |
restoreDefaultValue()
Restore this property to its default value, if supported.
|
abstract void |
setValue(T val)
Set the value.
|
boolean |
supportsDefaultValue()
Test whether the property had a default value.
|
attributeNames, getDisplayName, getName, getShortDescription, getValue, isExpert, isHidden, isPreferred, setDisplayName, setExpert, setHidden, setName, setPreferred, setShortDescription, setValue, toString
public Class<T> getValueType()
Boolean.class
means that values are Boolean
objects; to specify the primitive type, use e.g. Boolean.TYPE
.
In the latter case, getValue()
and setValue(T)
will still operate on the wrapper object.public abstract boolean canRead()
true
if it ispublic abstract T getValue() throws IllegalAccessException, InvocationTargetException
IllegalAccessException
- cannot access the called methodInvocationTargetException
- an exception during invocationpublic abstract boolean canWrite()
true
if the read of the value is supportedpublic abstract void setValue(T val) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
val
- the new value of the propertyIllegalAccessException
- cannot access the called methodIllegalArgumentException
- wrong argumentInvocationTargetException
- an exception during invocationpublic boolean supportsDefaultValue()
true
if it does (false
by default)public void restoreDefaultValue() throws IllegalAccessException, InvocationTargetException
setValue(default)
.
Note that it is not permitted for this call to throw IllegalArgumentException
,
though the other two exceptions from setValue(T)
may be passed through.IllegalAccessException
- cannot access the called methodInvocationTargetException
- an exception during invocationpublic boolean isDefaultValue()
restoreDefaultValue()
(if supportsDefaultValue()
returns true). The default implementation returns true and
it is recommended to also return true when supportsDefaultValue()
returns false (if we do not support default value any value can
be considered as the default). If supportsDefaultValue()
returns false this method will not be called by the default
implementation of property sheet.public PropertyEditor getPropertyEditor()
PropertyEditorManager
. If a property
editor is found, its instance is cached using SoftReference
.
Caching happens per thread - e.g. it is guaranteed that multiple
threads accessing the editor will get different instance.null
if there is no editorpublic String getHtmlDisplayName()
HtmlRenderer
(font color, bold, italic and strike-through supported; font
colors can be UIManager color keys if they are prefixed with
a ! character, i.e. <font color=&'controlShadow'>).
Enclosing HTML tags are not needed.
This method should return either an HTML display name or null; it should not return the non-HTML display name.
HtmlRenderer