コード例 #1
0
ファイル: GenericListener.java プロジェクト: q1051278389/HMCL
 private void fire(Object e) {
   if (!ignoreEvents) {
     setIgnoreEvents(true);
     try {
       // XXX this could be prettier...
       if (logger.isLoggable(Level.FINE)) {
         logger.fine("Event received: " + e); // NOI18N
       }
       if (e instanceof EventObject && ((EventObject) e).getSource() instanceof Component) {
         wizardPage.userInputReceived((Component) ((EventObject) e).getSource(), e);
       } else if (e instanceof TreeSelectionEvent) {
         logger.fine("Looking for a tree for a tree selection event"); // NOI18N
         TreeSelectionModel mdl = (TreeSelectionModel) ((TreeSelectionEvent) e).getSource();
         for (Iterator i = listenedTo.iterator(); i.hasNext(); ) {
           Object o = i.next();
           if (o instanceof JTree && ((JTree) o).getSelectionModel() == mdl) {
             if (logger.isLoggable(Level.FINE)) {
               logger.fine("  found it: " + o); // NOI18N
             }
             wizardPage.userInputReceived((Component) o, e);
             break;
           }
         }
       } else if (e instanceof DocumentEvent) {
         logger.fine("Looking for a JTextComponent for a DocumentEvent"); // NOI18N
         Document document = ((DocumentEvent) e).getDocument();
         for (Iterator i = listenedTo.iterator(); i.hasNext(); ) {
           Object o = i.next();
           if (o instanceof JTextComponent && ((JTextComponent) o).getDocument() == document) {
             if (logger.isLoggable(Level.FINE)) {
               logger.fine("  found it: " + o); // NOI18N
             }
             wizardPage.userInputReceived((Component) o, e);
             break;
           }
         }
       } else if (e instanceof ListSelectionEvent) {
         logger.fine("Looking for a JList or JTable for a ListSelectionEvent"); // NOI18N
         ListSelectionModel model = (ListSelectionModel) ((ListSelectionEvent) e).getSource();
         for (Iterator i = listenedTo.iterator(); i.hasNext(); ) {
           Object o = i.next();
           if (o instanceof JList && ((JList) o).getSelectionModel() == model) {
             if (logger.isLoggable(Level.FINE)) {
               logger.fine("  found it: " + o); // NOI18N
             }
             wizardPage.userInputReceived((Component) o, e);
             break;
           } else if (o instanceof JTable && ((JTable) o).getSelectionModel() == model) {
             if (logger.isLoggable(Level.FINE)) {
               logger.fine("  found it: " + o); // NOI18N
             }
             wizardPage.userInputReceived((Component) o, e);
             break;
           }
         }
       } else {
         wizardPage.userInputReceived(null, e);
       }
     } finally {
       setIgnoreEvents(false);
     }
   }
 }