|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.java.j2seproject.ui.customizer; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.io.File; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.text.Document; import org.netbeans.api.project.ant.AntArtifact; import org.netbeans.api.project.libraries.Library; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; import org.openide.DialogDescriptor; import org.openide.awt.MouseUtils; import org.openide.filesystems.FileObject; import org.openide.util.NbBundle; /** Represents field for main class name and the button to main class chooser. * of classpath editing controls. * * @author Jiri Rechtacek */ final class VisualMainClassSupport { private final JTextField mainClassTextField; private final JButton chooseMainClassButton; private final FileObject sourceRoot; private final ArrayList actionListeners = new ArrayList(); public VisualMainClassSupport (JTextField mainClassTextField, JButton chooseMainClassButton, FileObject sourceRoot) { this.mainClassTextField = mainClassTextField; this.chooseMainClassButton = chooseMainClassButton; this.sourceRoot = sourceRoot; // Register the button listener MainClassListener actionListener = new MainClassListener (); chooseMainClassButton.addActionListener (actionListener); mainClassTextField.getDocument ().addDocumentListener (actionListener); } public void setMainClass (String mainClass) { mainClassTextField.setText (mainClass); } public String getMainClass () { return mainClassTextField == null ? "" : mainClassTextField.getText (); // NOI18N } /** Action listeners will be informed when the value of the * list changes. */ public void addActionListener( ActionListener listener ) { actionListeners.add( listener ); } public void removeActionListener( ActionListener listener ) { actionListeners.remove( listener ); } private void fireActionPerformed() { ArrayList listeners; synchronized ( this ) { listeners = new ArrayList( actionListeners ); } ActionEvent ae = new ActionEvent( this, 0, null ); for( Iterator it = listeners.iterator(); it.hasNext(); ) { ActionListener al = (ActionListener)it.next(); al.actionPerformed( ae ); } } // Private methods --------------------------------------------------------- // Private innerclasses ---------------------------------------------------- private class MainClassListener implements ActionListener, DocumentListener { private final JButton okButton = new JButton (NbBundle.getMessage (VisualMainClassSupport.class, "LBL_ChooseMainClass_OK")); // Implementation of ActionListener ------------------------------------ /** Handles button events */ public void actionPerformed( ActionEvent e ) { // only chooseMainClassButton can be performed final MainClassChooser panel = new MainClassChooser (sourceRoot); Object[] options = new Object[] { okButton, DialogDescriptor.CANCEL_OPTION }; panel.addChangeListener (new ChangeListener () { public void stateChanged(ChangeEvent e) { if (e.getSource () instanceof MouseEvent && MouseUtils.isDoubleClick (((MouseEvent)e.getSource ()))) { // click button and finish the dialog with selected class okButton.doClick (); } else { okButton.setEnabled (panel.getSelectedMainClass () != null); } } }); okButton.setEnabled (false); DialogDescriptor desc = new DialogDescriptor (panel, NbBundle.getMessage (VisualMainClassSupport.class, "LBL_ChooseMainClass_Title" ), true, options, options[0], DialogDescriptor.BOTTOM_ALIGN, null, null); //desc.setMessageType (DialogDescriptor.INFORMATION_MESSAGE); Dialog dlg = DialogDisplayer.getDefault ().createDialog (desc); dlg.setVisible (true); if (desc.getValue() == options[0]) { mainClassTextField.setText (panel.getSelectedMainClass ()); } dlg.dispose(); } // Implementation of document listener --------------------------------- public void changedUpdate (DocumentEvent e) { fireActionPerformed (); } public void insertUpdate( DocumentEvent e ) { changedUpdate( e ); } public void removeUpdate( DocumentEvent e ) { changedUpdate( e ); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.