1 /*
2 * ClassChooserDialog.java
3 */
4
5 package net.sourceforge.jnipp.gui;
6
7 import net.sourceforge.jnipp.gui.App;
8 import net.sourceforge.jnipp.project;
9 import java.util.Iterator;
10 import java.util.Vector;
11 import java.util.ArrayList;
12 import java.awt;
13 import java.awt.event;
14 import javax.swing;
15
16 public class ClassRemoveDialog
17 extends JDialog
18 implements ActionListener
19 {
20 JPanel contentPane;
21 JList classList;
22 DefaultListModel listModel;
23
24 public ClassRemoveDialog(Frame owner)
25 {
26 super(owner,"JNI++",true);
27 init();
28 }
29
30 public ArrayList getClassesAffected()
31 {
32 ArrayList theList = new ArrayList();
33 int[] selected = classList.getSelectedIndices();
34 for(int i=0; i < selected.length;++i)
35 {
36 String item = (String)classList.getModel().getElementAt(i);
37 theList.add(item);
38 }
39 return (theList);
40 }
41
42 private void init()
43 {
44 initWindowListener();
45 JButton cmdOK = new JButton(App.getProperty("button-ok.label"));
46 cmdOK.setActionCommand("ok");
47 cmdOK.addActionListener(this);
48
49 JButton cmdCancel = new JButton(App.getProperty("button-cancel.label"));
50 cmdCancel.setActionCommand("cancel");
51 cmdCancel.addActionListener(this);
52
53 JLabel instructions = new JLabel(App.getProperty("message.remove-class-instruction"));
54
55 classList = new JList();
56 listModel = new DefaultListModel();
57 classList.setModel(listModel);
58 populateList();
59
60 GridBagLayout myLayout = new GridBagLayout();
61 GridBagConstraints c = new GridBagConstraints();
62 getContentPane().setLayout(myLayout);
63
64 c.ipadx = 2;
65 c.ipady = 2;
66 c.insets = new Insets(5,5,5,5);
67
68 c.gridwidth = 2;
69 myLayout.setConstraints(instructions,c);
70
71 c.gridy = 2;
72 c.fill = GridBagConstraints.BOTH;
73 c.weightx = 1;
74 c.weighty = 1;
75 c.gridwidth = GridBagConstraints.REMAINDER;
76 myLayout.setConstraints(classList,c);
77
78
79 c.anchor = GridBagConstraints.EAST;
80 c.fill = GridBagConstraints.NONE;
81 c.weightx = 0;
82 c.weighty = 0;
83 c.gridwidth = 1;
84 c.gridx = 2;
85 c.gridy = 3;
86 myLayout.setConstraints(cmdOK,c);
87 c.gridx = 3;
88 myLayout.setConstraints(cmdCancel,c);
89
90 this.setSize(new Dimension(400, 300));
91 getContentPane().add(instructions);
92 getContentPane().add(classList);
93 getContentPane().add(cmdOK);
94 getContentPane().add(cmdCancel);
95 getRootPane().setDefaultButton(cmdOK);
96 }
97
98 private void populateList()
99 {
100 //go through project and add classes to list.
101 ProjectAdapter project = App.getProject();
102 Iterator it = project.getClasses();
103 while (it.hasNext() == true)
104 {
105 ProjectClass field = (ProjectClass) it.next();
106 listModel.addElement(field.toString());
107 }
108 }
109 public void actionPerformed(java.awt.event.ActionEvent e) {
110 if (e.getActionCommand().equals("ok"))
111 {
112 hide();
113 }
114 else
115 {
116 //TODO: clear selection
117 hide();
118 }
119
120 }
121
122 private void initWindowListener()
123 {
124 this.addWindowListener( new WindowAdapter()
125 {
126 public void windowClosing(WindowEvent e)
127 {
128 hide();
129 }
130 });
131 }
132 }