/** * Invalides the current value so that the next invocation of <code>createValue</code> will ask for the property * again. */ public void invalidate() { if (pcl != null) { for (int i = 0; i < getKeys().length; i++) { toolkit.removePropertyChangeListener(getKeys()[i], pcl); } toolkit = null; pcl = null; value = null; } }
/** * Returns the value from the desktop. */ protected Object[] getValueFromDesktop() { if (this.toolkit == null) { this.toolkit = Toolkit.getDefaultToolkit(); } pcl = new WeakPCL(this, toolkit); Object[] values = new Object[getKeys().length]; for (int i = 0; i < getKeys().length; i++) { values[i] = toolkit.getDesktopProperty(getKeys()[i]); toolkit.addPropertyChangeListener(getKeys()[i], pcl); } return values; }