This is a support class to help build property editors.
It can be used either as a base class or as a delagatee.
Method from java.beans.PropertyEditorSupport Detail: |
public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
if (listeners == null) {
listeners = new java.util.Vector();
}
listeners.addElement(listener);
}
Adds a listener for the value change.
When the property editor changes its value
it should fire a PropertyChangeEvent
on all registered PropertyChangeListener s,
specifying the {@code null} value for the property name.
If the source property is set,
it should be used as the source of the event.
The same listener object may be added more than once,
and will be called as many times as it is added.
If {@code listener} is {@code null},
no exception is thrown and no action is taken. |
public void firePropertyChange() {
java.util.Vector targets;
synchronized (this) {
if (listeners == null) {
return;
}
targets = (java.util.Vector) listeners.clone();
}
// Tell our listeners that "everything" has changed.
PropertyChangeEvent evt = new PropertyChangeEvent(source, null, null, null);
for (int i = 0; i < targets.size(); i++) {
PropertyChangeListener target = (PropertyChangeListener)targets.elementAt(i);
target.propertyChange(evt);
}
}
Report that we have been modified to any interested listeners. |
public String getAsText() {
return (this.value != null)
? this.value.toString()
: null;
}
Gets the property value as a string suitable for presentation
to a human to edit. |
public Component getCustomEditor() {
return null;
}
A PropertyEditor may chose to make available a full custom Component
that edits its property value. It is the responsibility of the
PropertyEditor to hook itself up to its editor Component itself and
to report property value changes by firing a PropertyChange event.
The higher-level code that calls getCustomEditor may either embed
the Component in some larger property sheet, or it may put it in
its own individual dialog, or ... |
public String getJavaInitializationString() {
return "???";
}
This method is intended for use when generating Java code to set
the value of the property. It should return a fragment of Java code
that can be used to initialize a variable with the current property
value.
Example results are "2", "new Color(127,127,34)", "Color.orange", etc. |
public Object getSource() {
return source;
}
Returns the bean that is used as the
source of events. If the source has not
been explicitly set then this instance of
PropertyEditorSupport is returned. |
public String[] getTags() {
return null;
}
If the property value must be one of a set of known tagged values,
then this method should return an array of the tag values. This can
be used to represent (for example) enum values. If a PropertyEditor
supports tags, then it should support the use of setAsText with
a tag value as a way of setting the value. |
public Object getValue() {
return value;
}
Gets the value of the property. |
public boolean isPaintable() {
return false;
}
Determines whether the class will honor the paintValue method. |
public void paintValue(Graphics gfx,
Rectangle box) {
}
Paint a representation of the value into a given area of screen
real estate. Note that the propertyEditor is responsible for doing
its own clipping so that it fits into the given rectangle.
If the PropertyEditor doesn't honor paint requests (see isPaintable)
this method should be a silent noop. |
public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
if (listeners == null) {
return;
}
listeners.removeElement(listener);
}
Removes a listener for the value change.
If the same listener was added more than once,
it will be notified one less time after being removed.
If {@code listener} is {@code null}, or was never added,
no exception is thrown and no action is taken. |
public void setAsText(String text) throws IllegalArgumentException {
if (value instanceof String) {
setValue(text);
return;
}
throw new java.lang.IllegalArgumentException(text);
}
Sets the property value by parsing a given String. May raise
java.lang.IllegalArgumentException if either the String is
badly formatted or if this kind of property can't be expressed
as text. |
public void setSource(Object source) {
this.source = source;
}
Sets the source bean.
The source bean is used as the source of events
for the property changes. This source should be used for information
purposes only and should not be modified by the PropertyEditor. |
public void setValue(Object value) {
this.value = value;
firePropertyChange();
}
Set (or change) the object that is to be edited. |
public boolean supportsCustomEditor() {
return false;
}
Determines whether the propertyEditor can provide a custom editor. |