public void propertyChange(PropertyChangeEvent pce) { ExtWindowsDesktopProperty property = (ExtWindowsDesktopProperty) get(); if (property == null) { // The property was GC'ed, we're no longer interested in // PropertyChanges, remove the listener. kit.removePropertyChangeListener(pce.getPropertyName(), this); } else { property.invalidate(); property.updateUI(); } } }
/** * 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; }