Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

MultiSelectionDialog.java

00001 package Sct.gui;
00002 
00003 import java.awt.event.ActionEvent;
00004 import java.awt.event.ActionListener;
00005 import java.awt.event.WindowAdapter;
00006 import java.awt.event.WindowEvent;
00007 
00008 import javax.swing.JButton;
00009 import javax.swing.JDialog;
00010 import javax.swing.JLabel;
00011 import javax.swing.JPanel;
00012 import javax.swing.JTextField;
00013 import javax.swing.Box;
00014 
00015 
00019 public class MultiSelectionDialog extends JDialog {
00020     String selections[];
00021     int enabled[];
00022 
00023     boolean valid;
00024 
00025     public static String[] showDialog(java.awt.Component owner, 
00026                                       String title, String[] selections, int[] enabled) {
00027         MultiSelectionDialog dia = new MultiSelectionDialog(owner, title, selections, enabled);
00028         dia.pack();
00029         dia.setVisible(true);
00030         return dia.getSelection();
00031     }
00032 
00039     public MultiSelectionDialog(java.awt.Component owner, String title, String[] ss, int[] enabled) {
00040         super(javax.swing.JOptionPane.getFrameForComponent(owner), title, true);
00041 
00042         selections = ss;
00043         this.enabled = enabled;
00044 
00045         valid = true;
00046 
00047         initComponents();
00048         modifyComponents();
00049     }
00050 
00056     private void initComponents() {//GEN-BEGIN:initComponents
00057         jPanel2 = new javax.swing.JPanel();
00058         jPanel3 = new javax.swing.JPanel();
00059         jLabel1 = new javax.swing.JLabel();
00060         jScrollPane1 = new javax.swing.JScrollPane();
00061         multiList = new javax.swing.JList();
00062         jPanel1 = new javax.swing.JPanel();
00063         jButton1 = new javax.swing.JButton();
00064         jButton2 = new javax.swing.JButton();
00065 
00066         jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.Y_AXIS));
00067 
00068         jPanel3.setLayout(new java.awt.BorderLayout());
00069 
00070         jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
00071         jLabel1.setLabelFor(multiList);
00072         jLabel1.setText("jLabel1");
00073         jPanel3.add(jLabel1, java.awt.BorderLayout.WEST);
00074 
00075         jPanel2.add(jPanel3);
00076 
00077         jScrollPane1.setViewportView(multiList);
00078 
00079         jPanel2.add(jScrollPane1);
00080 
00081         jButton1.setText("OK");
00082         jButton1.addActionListener(new java.awt.event.ActionListener() {
00083             public void actionPerformed(java.awt.event.ActionEvent evt) {
00084                 jButton1ActionPerformed(evt);
00085             }
00086         });
00087 
00088         jPanel1.add(jButton1);
00089 
00090         jButton2.setText("Cancel");
00091         jButton2.addActionListener(new java.awt.event.ActionListener() {
00092             public void actionPerformed(java.awt.event.ActionEvent evt) {
00093                 jButton2ActionPerformed(evt);
00094             }
00095         });
00096 
00097         jPanel1.add(jButton2);
00098 
00099         jPanel2.add(jPanel1);
00100 
00101         getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);
00102 
00103     }//GEN-END:initComponents
00104 
00105     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
00106         valid = false;
00107         dispose();
00108     }//GEN-LAST:event_jButton2ActionPerformed
00109 
00110     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
00111         dispose();
00112     }//GEN-LAST:event_jButton1ActionPerformed
00113 
00117     private void modifyComponents() {
00118         multiList.setListData(selections);
00119         multiList.setSelectedIndices(enabled);
00120 
00121         jLabel1.setText("Make selections");
00122     }
00123 
00124     String [] getSelection() {
00125         if(valid) {
00126             Object [] vals = multiList.getSelectedValues();
00127             String [] result = new String[vals.length];
00128             for(int i = 0; i < vals.length; i++) {
00129                 result[i] = vals[i].toString();
00130             }
00131             return result;
00132         } else {
00133             return null;
00134         }
00135     }
00136     
00137     // Variables declaration - do not modify//GEN-BEGIN:variables
00138     private javax.swing.JButton jButton1;
00139     private javax.swing.JButton jButton2;
00140     private javax.swing.JLabel jLabel1;
00141     private javax.swing.JPanel jPanel1;
00142     private javax.swing.JPanel jPanel2;
00143     private javax.swing.JPanel jPanel3;
00144     private javax.swing.JScrollPane jScrollPane1;
00145     private javax.swing.JList multiList;
00146     // End of variables declaration//GEN-END:variables
00147 
00148 
00149     public static class Test {
00150         public static void main(String args[]) {
00151             String objs [] = {"Hello", "World", "1", "2", "3"};
00152 
00153             int sels[] = {0, 1, -1};
00154 
00155             String selected [] = MultiSelectionDialog.showDialog(null, "Test Selection", objs, sels);
00156             if(selected == null) {
00157                 System.out.println("Dialog cancelled");
00158             } else {
00159                 for(int i = 0; i < selected.length; i++) {
00160                     System.out.println(i + ": " + selected[i]);
00161                 }
00162             }
00163 
00164             System.exit(0);
00165         }
00166     }
00167 }

Generated on Thu Jul 15 09:55:45 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5