public void propertyChange(PropertyChangeEvent pce) { WindowsDesktopProperty property = (WindowsDesktopProperty) 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(); } Object value = toolkit.getDesktopProperty(getKey()); pcl = new WeakPCL(this, toolkit); toolkit.addPropertyChangeListener(getKey(), pcl); return value; }