protected void attachTo(Component jc) { if (extListener != null && extListener.accept(jc)) { extListener.startListeningTo(jc, extNotifier); listenedTo.add(jc); if (wizardPage.getMapKeyFor(jc) != null) { wizardPage.maybeUpdateMap(jc); } return; } if (isProbablyAContainer(jc)) { attachToHierarchyOf((Container) jc); } else if (jc instanceof JList) { listenedTo.add(jc); ((JList) jc).addListSelectionListener(this); } else if (jc instanceof JComboBox) { ((JComboBox) jc).addActionListener(this); } else if (jc instanceof JTree) { listenedTo.add(jc); ((JTree) jc).getSelectionModel().addTreeSelectionListener(this); } else if (jc instanceof JToggleButton) { ((AbstractButton) jc).addItemListener(this); } else if (jc instanceof JFormattedTextField) { // JFormattedTextField must be tested before JTextCompoent jc.addPropertyChangeListener("value", this); } else if (jc instanceof JTextComponent) { listenedTo.add(jc); ((JTextComponent) jc).getDocument().addDocumentListener(this); } else if (jc instanceof JColorChooser) { listenedTo.add(jc); ((JColorChooser) jc).getSelectionModel().addChangeListener(this); } else if (jc instanceof JSpinner) { ((JSpinner) jc).addChangeListener(this); } else if (jc instanceof JSlider) { ((JSlider) jc).addChangeListener(this); } else if (jc instanceof JTable) { listenedTo.add(jc); ((JTable) jc).getSelectionModel().addListSelectionListener(this); } else { if (logger.isLoggable(Level.FINE)) { logger.fine( "Don't know how to listen to a " + // NOI18N jc.getClass().getName()); } } if (accept(jc) && !(jc instanceof JPanel)) { jc.addPropertyChangeListener("name", this); if (wizardPage.getMapKeyFor(jc) != null) { wizardPage.maybeUpdateMap(jc); } } if (logger.isLoggable(Level.FINE) && accept(jc)) { logger.fine("Begin listening to " + jc); // NOI18N } }
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()); } }