コード例 #1
0
ファイル: GenericListener.java プロジェクト: q1051278389/HMCL
  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());
    }
  }
コード例 #2
0
ファイル: GenericListener.java プロジェクト: q1051278389/HMCL
  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
    }
  }