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