Methods Summary |
---|
public synchronized void | addPropertyChangeListener(java.beans.PropertyChangeListener listener)Adds a PropertyChangeListener to the listener list.
The listener is registered for all properties.
A PropertyChangeEvent will get fired in response to setting
a bound property, e.g. setFont , setBackground ,
or setForeground .
Note that if the current component is inheriting its foreground,
background, or font from its container, then no event will be
fired in response to a change in the inherited property.
if (changeSupport == null) {
changeSupport = new SwingPropertyChangeSupport(this);
}
changeSupport.addPropertyChangeListener(listener);
|
protected java.lang.Object | clone()Clones the abstract action. This gives the clone
its own copy of the key/value list,
which is not handled for you by Object.clone() .
AbstractAction newAction = (AbstractAction)super.clone();
synchronized(this) {
if (arrayTable != null) {
newAction.arrayTable = (ArrayTable)arrayTable.clone();
}
}
return newAction;
|
protected void | firePropertyChange(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)Supports reporting bound property changes. This method can be called
when a bound property has changed and it will send the appropriate
PropertyChangeEvent to any registered
PropertyChangeListeners .
if (changeSupport == null ||
(oldValue != null && newValue != null && oldValue.equals(newValue))) {
return;
}
changeSupport.firePropertyChange(propertyName, oldValue, newValue);
|
public java.lang.Object[] | getKeys()Returns an array of Object s which are keys for
which values have been set for this AbstractAction ,
or null if no keys have values set.
if (arrayTable == null) {
return null;
}
Object[] keys = new Object[arrayTable.size()];
arrayTable.getKeys(keys);
return keys;
|
public synchronized java.beans.PropertyChangeListener[] | getPropertyChangeListeners()Returns an array of all the PropertyChangeListener s added
to this AbstractAction with addPropertyChangeListener().
if (changeSupport == null) {
return new PropertyChangeListener[0];
}
return changeSupport.getPropertyChangeListeners();
|
public java.lang.Object | getValue(java.lang.String key)Gets the Object associated with the specified key.
if (key == "enabled") {
return enabled;
}
if (arrayTable == null) {
return null;
}
return arrayTable.get(key);
|
static boolean | hasSelectedKey(javax.swing.Action a)
return (a != null && a.getValue(Action.SELECTED_KEY) != null);
|
public boolean | isEnabled()Returns true if the action is enabled.
return enabled;
|
static boolean | isSelected(javax.swing.Action a)
return Boolean.TRUE.equals(a.getValue(Action.SELECTED_KEY));
|
public void | putValue(java.lang.String key, java.lang.Object newValue)Sets the Value associated with the specified key.
Object oldValue = null;
if (key == "enabled") {
// Treat putValue("enabled") the same way as a call to setEnabled.
// If we don't do this it means the two may get out of sync, and a
// bogus property change notification would be sent.
//
// To avoid dependencies between putValue & setEnabled this
// directly changes enabled. If we instead called setEnabled
// to change enabled, it would be possible for stack
// overflow in the case where a developer implemented setEnabled
// in terms of putValue.
if (newValue == null || !(newValue instanceof Boolean)) {
newValue = false;
}
oldValue = enabled;
enabled = (Boolean)newValue;
} else {
if (arrayTable == null) {
arrayTable = new ArrayTable();
}
if (arrayTable.containsKey(key))
oldValue = arrayTable.get(key);
// Remove the entry for key if newValue is null
// else put in the newValue for key.
if (newValue == null) {
arrayTable.remove(key);
} else {
arrayTable.put(key,newValue);
}
}
firePropertyChange(key, oldValue, newValue);
|
private void | readObject(java.io.ObjectInputStream s)
s.defaultReadObject();
for (int counter = s.readInt() - 1; counter >= 0; counter--) {
putValue((String)s.readObject(), s.readObject());
}
|
public synchronized void | removePropertyChangeListener(java.beans.PropertyChangeListener listener)Removes a PropertyChangeListener from the listener list.
This removes a PropertyChangeListener that was registered
for all properties.
if (changeSupport == null) {
return;
}
changeSupport.removePropertyChangeListener(listener);
|
public void | setEnabled(boolean newValue)Enables or disables the action.
boolean oldValue = this.enabled;
if (oldValue != newValue) {
this.enabled = newValue;
firePropertyChange("enabled",
Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
}
|
static void | setEnabledFromAction(javax.swing.JComponent c, javax.swing.Action a)Sets the enabled state of a component from an Action.
c.setEnabled((a != null) ? a.isEnabled() : true);
|
static void | setToolTipTextFromAction(javax.swing.JComponent c, javax.swing.Action a)Sets the tooltip text of a component from an Action.
c.setToolTipText(a != null ?
(String)a.getValue(Action.SHORT_DESCRIPTION) : null);
|
static boolean | shouldReconfigure(java.beans.PropertyChangeEvent e)Whether or not to reconfigure all action properties from the
specified event.
if (e.getPropertyName() == null) {
synchronized(AbstractAction.class) {
if (RECONFIGURE_ON_NULL == null) {
RECONFIGURE_ON_NULL = Boolean.valueOf(
AccessController.doPrivileged(new GetPropertyAction(
"swing.actions.reconfigureOnNull", "false")));
}
return RECONFIGURE_ON_NULL;
}
}
return false;
|
private void | writeObject(java.io.ObjectOutputStream s)
// Store the default fields
s.defaultWriteObject();
// And the keys
ArrayTable.writeArrayTable(s, arrayTable);
|