java code for the Data Cleaning workflow.
[biovel.git] / DataCleaning / java / DCWorkflow / src / org / bgbm / biovel / datacleaning / syncheck / DCSynExpInputDialog.java
1 /*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5 package org.bgbm.biovel.datacleaning.syncheck;
6
7 import java.util.*;
8 import javax.swing.JCheckBox;
9
10 import org.bgbm.biovel.datacleaning.utils.syncheck.SynCheckConstants;
11
12 /**
13 *
14 * @author c.mathew
15 */
16
17 public class DCSynExpInputDialog extends javax.swing.JDialog {
18 List<JCheckBox> stdCBList = new ArrayList<JCheckBox>();
19 Map<JCheckBox,Integer> gbifCBIDMap = new HashMap<JCheckBox,Integer>();
20 int currentGridy = 0;
21
22 JCheckBox colCBox;
23 /**
24 * A return status code - returned if Cancel button has been pressed
25 */
26 public static final int RET_CANCEL = 0;
27 /**
28 * A return status code - returned if OK button has been pressed
29 */
30 public static final int RET_OK = 1;
31
32 private int returnStatus = RET_CANCEL;
33
34 /**
35 * Creates new form DCSynExpInputDialog
36 */
37 public DCSynExpInputDialog(java.awt.Frame parent, boolean modal,List<String> gbifchkdatasets) {
38 super(parent, modal);
39 initComponents();
40 javax.swing.JButton okButton = new javax.swing.JButton();
41 okButton.setText("OK");
42 okButton.addActionListener(new java.awt.event.ActionListener() {
43 public void actionPerformed(java.awt.event.ActionEvent evt) {
44 okButtonActionPerformed(evt);
45 }
46 });
47
48 addStdChecklists();
49
50 if(gbifchkdatasets != null && !gbifchkdatasets.isEmpty()) {
51 addGBIFChecklistBanks(gbifchkdatasets);
52 }
53
54 java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
55 gridBagConstraints = new java.awt.GridBagConstraints();
56 gridBagConstraints.gridx = 0;
57 gridBagConstraints.gridy = 3;
58 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
59 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
60 getContentPane().add(okButton, gridBagConstraints);
61 }
62
63 public void addStdChecklists() {
64
65 colCBox = createJCheckBox("Catalogue of Life");
66
67 }
68
69 public void addGBIFChecklistBanks(List<String> gbifchkdatasets) {
70 Iterator itr = gbifchkdatasets.iterator();
71
72 while(itr.hasNext()) {
73 String chkdataset = (String)itr.next();
74 StringTokenizer st = new StringTokenizer(chkdataset, SynCheckConstants.CHECKLIST_BANK_DELIMITER);
75 if(st.countTokens() == 2) {
76 String chklistName = (String)st.nextElement();
77 String datasetID = (String)st.nextElement();
78 JCheckBox jcbox = createJCheckBox("GBIF - " + chklistName);
79 gbifCBIDMap.put(jcbox,new Integer(datasetID));
80 }
81 }
82 }
83
84 private JCheckBox createJCheckBox(String chklistName) {
85 JCheckBox jcbox = new JCheckBox();
86 jcbox.setText(chklistName);
87 java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
88 gridBagConstraints.gridx = 0;
89 gridBagConstraints.gridy = currentGridy;
90 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
91 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
92 chkListPanel.add(jcbox, gridBagConstraints);
93 currentGridy++;
94 pack();
95
96 return jcbox;
97 }
98
99 public boolean isColSelected() {
100 return colCBox.isSelected();
101 }
102
103 public List<String> getSelectedGBIFChkList() {
104 List<String> selGBIFStdChkList = new ArrayList<String>();
105 Iterator<Map.Entry<JCheckBox, Integer>> entries = gbifCBIDMap.entrySet().iterator();
106 while (entries.hasNext()) {
107 Map.Entry<JCheckBox, Integer> entry = entries.next();
108 JCheckBox jcbox = (JCheckBox)entry.getKey();
109 if(jcbox.isSelected()) {
110 Integer datasetID = (Integer)entry.getValue();
111 selGBIFStdChkList.add(datasetID.toString());
112 }
113 }
114
115 return selGBIFStdChkList;
116 }
117 /**
118 * This method is called from within the constructor to initialize the form.
119 * WARNING: Do NOT modify this code. The content of this method is always
120 * regenerated by the Form Editor.
121 */
122 @SuppressWarnings("unchecked")
123 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
124 private void initComponents() {
125 java.awt.GridBagConstraints gridBagConstraints;
126
127 chkListLbl = new javax.swing.JLabel();
128 chkListScrollPane = new javax.swing.JScrollPane();
129 chkListPanel = new javax.swing.JPanel();
130
131 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
132 setMaximumSize(new java.awt.Dimension(600, 1000));
133 setMinimumSize(new java.awt.Dimension(500, 800));
134 setPreferredSize(new java.awt.Dimension(500, 800));
135 addWindowListener(new java.awt.event.WindowAdapter() {
136 public void windowClosing(java.awt.event.WindowEvent evt) {
137 formWindowClosing(evt);
138 }
139 });
140 getContentPane().setLayout(new java.awt.GridBagLayout());
141
142 chkListLbl.setText("Choose Check List to target :");
143 chkListLbl.setMaximumSize(new java.awt.Dimension(140, 30));
144 chkListLbl.setMinimumSize(new java.awt.Dimension(140, 30));
145 chkListLbl.setPreferredSize(new java.awt.Dimension(140, 30));
146 gridBagConstraints = new java.awt.GridBagConstraints();
147 gridBagConstraints.gridx = 0;
148 gridBagConstraints.gridy = 0;
149 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
150 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
151 getContentPane().add(chkListLbl, gridBagConstraints);
152
153 chkListScrollPane.setMinimumSize(new java.awt.Dimension(400, 600));
154 chkListScrollPane.setPreferredSize(new java.awt.Dimension(400, 600));
155
156 chkListPanel.setLayout(new java.awt.GridBagLayout());
157 chkListScrollPane.setViewportView(chkListPanel);
158
159 gridBagConstraints = new java.awt.GridBagConstraints();
160 gridBagConstraints.gridx = 0;
161 gridBagConstraints.gridy = 1;
162 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
163 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
164 getContentPane().add(chkListScrollPane, gridBagConstraints);
165
166 pack();
167 }// </editor-fold>//GEN-END:initComponents
168
169 private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
170 doClose(RET_CANCEL);
171 }//GEN-LAST:event_formWindowClosing
172
173 private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
174 doClose(RET_OK);
175 }
176
177 private void doClose(int retStatus) {
178 returnStatus = retStatus;
179 setVisible(false);
180 dispose();
181 }
182 /**
183 * @param args the command line arguments
184 */
185 public static void main(String args[]) {
186 /*
187 * Set the Nimbus look and feel
188 */
189 //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
190 /*
191 * If Nimbus (introduced in Java SE 6) is not available, stay with the
192 * default look and feel. For details see
193 * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
194 */
195 try {
196 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
197 if ("Nimbus".equals(info.getName())) {
198 javax.swing.UIManager.setLookAndFeel(info.getClassName());
199 break;
200 }
201 }
202 } catch (ClassNotFoundException ex) {
203 java.util.logging.Logger.getLogger(DCSynExpInputDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
204 } catch (InstantiationException ex) {
205 java.util.logging.Logger.getLogger(DCSynExpInputDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
206 } catch (IllegalAccessException ex) {
207 java.util.logging.Logger.getLogger(DCSynExpInputDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
208 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
209 java.util.logging.Logger.getLogger(DCSynExpInputDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
210 }
211 //</editor-fold>
212
213 /*
214 * Create and display the dialog
215 */
216 java.awt.EventQueue.invokeLater(new Runnable() {
217
218 public void run() {
219 List<String> stdchecklists = new ArrayList<String>();
220 stdchecklists.add("Catalogue of Life");
221 DCSynExpInputDialog dialog = new DCSynExpInputDialog(new javax.swing.JFrame(), true, null);
222 dialog.addWindowListener(new java.awt.event.WindowAdapter() {
223
224 @Override
225 public void windowClosing(java.awt.event.WindowEvent e) {
226 System.exit(0);
227 }
228 });
229
230 dialog.setVisible(true);
231
232
233 }
234 });
235 }
236 // Variables declaration - do not modify//GEN-BEGIN:variables
237 private javax.swing.JLabel chkListLbl;
238 private javax.swing.JPanel chkListPanel;
239 private javax.swing.JScrollPane chkListScrollPane;
240 // End of variables declaration//GEN-END:variables
241 }