public void propertyChange(PropertyChangeEvent e) { if (e.getSource() instanceof JComponent && "name".equals(e.getPropertyName())) { // Note - most components do NOT fire a property change on // setName(), but it is possible for this to be done intentionally if (e.getOldValue() instanceof String) { if (logger.isLoggable(Level.FINE)) { logger.fine( "Name of component changed from " + e.getOldValue() + // NOI18N " to " + e.getNewValue() + ". Removing any values for " + // NOI18N e.getOldValue() + " from the wizard data map"); // NOI18N } wizardPage.removeFromMap(e.getOldValue()); } if (logger.isLoggable(Level.FINE)) { logger.fine( "Possibly update map for renamed component " + // NOI18N e.getSource()); } } else if (e.getSource() instanceof JFormattedTextField && "value".equals(e.getPropertyName())) { fire(e); wizardPage.maybeUpdateMap((JComponent) e.getSource()); } }
protected void detachFrom(Component jc) { listenedTo.remove(jc); if (extListener != null && extListener.accept(jc)) { extListener.stopListeningTo(jc); } if (isProbablyAContainer(jc)) { detachFromHierarchyOf((Container) jc); } else if (jc instanceof JList) { ((JList) jc).removeListSelectionListener(this); } else if (jc instanceof JComboBox) { ((JComboBox) jc).removeActionListener(this); } else if (jc instanceof JTree) { ((JTree) jc).getSelectionModel().removeTreeSelectionListener(this); } else if (jc instanceof JToggleButton) { ((AbstractButton) jc).removeActionListener(this); } else if (jc instanceof JTextComponent) { } else if (jc instanceof JFormattedTextField) { // JFormattedTextField must be tested before JTextCompoent jc.removePropertyChangeListener("value", this); ((JTextComponent) jc).getDocument().removeDocumentListener(this); } else if (jc instanceof JColorChooser) { ((JColorChooser) jc).getSelectionModel().removeChangeListener(this); } else if (jc instanceof JSpinner) { ((JSpinner) jc).removeChangeListener(this); } else if (jc instanceof JSlider) { ((JSlider) jc).removeChangeListener(this); } else if (jc instanceof JTable) { ((JTable) jc).getSelectionModel().removeListSelectionListener(this); } if (accept(jc) && !(jc instanceof JPanel)) { jc.removePropertyChangeListener("name", this); Object key = wizardPage.getMapKeyFor(jc); if (key != null) { if (logger.isLoggable(Level.FINE)) { logger.fine( "Named component removed from hierarchy: " + // NOI18N key + ". Removing any corresponding " + // NOI18N "value from the wizard settings map."); // NOI18N } wizardPage.removeFromMap(key); } } if (logger.isLoggable(Level.FINE) && accept(jc)) { logger.fine("Stop listening to " + jc); // NOI18N } }