Autopsy  4.4.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
EamCaseEditDetailsDialog.java
Go to the documentation of this file.
1 /*
2  * Central Repository
3  *
4  * Copyright 2015-2017 Basis Technology Corp.
5  * Contact: carrier <at> sleuthkit <dot> org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 package org.sleuthkit.autopsy.centralrepository.actions;
20 
21 import java.awt.Cursor;
22 import java.awt.Dimension;
23 import java.awt.Toolkit;
24 import java.util.ArrayList;
25 import java.util.Collection;
26 import java.util.List;
27 import java.util.logging.Level;
28 import javax.swing.JComboBox;
30 import javax.swing.JDialog;
31 import javax.swing.JFrame;
32 import javax.swing.JTextArea;
33 import javax.swing.JTextField;
34 import javax.swing.event.DocumentEvent;
35 import javax.swing.event.DocumentListener;
36 import org.openide.util.NbBundle.Messages;
37 import org.openide.windows.WindowManager;
44 
48 public class EamCaseEditDetailsDialog extends JDialog {
49 
50  private final static Logger LOGGER = Logger.getLogger(EamCaseEditDetailsDialog.class.getName());
52  private EamDb dbManager;
53  private Boolean contentChanged = false;
54  private final Collection<JTextField> textBoxes = new ArrayList<>();
55  private final Collection<JTextArea> textAreas = new ArrayList<>();
57  private EamOrganization selectedOrg = null;
58  private List<EamOrganization> orgs = null;
60 
64  @Messages({"EamCaseEditDetailsDialog.window.title=Central Repository Case Properties"})
66  super((JFrame) WindowManager.getDefault().getMainWindow(),
67  Bundle.EamCaseEditDetailsDialog_window_title(),
68  true); // NON-NLS
69 
70  try {
71  this.dbManager = EamDb.getInstance();
72  this.eamCase = this.dbManager.getCaseByUUID(Case.getCurrentCase().getName());
73  if(this.eamCase == null){
74  this.eamCase = dbManager.newCase(Case.getCurrentCase());
75  }
77  loadData();
79  display();
80  } catch (EamDbException ex) {
81  LOGGER.log(Level.SEVERE, "Error getting current case.", ex);
82  }
83  }
84 
85  private void customizeComponents() {
88 
89  // The organization functions of central repo are not being included in the current release.
90  this.pnOrganization.setVisible(false);
91 
92  }
93 
94  private void setTextBoxListeners() {
95  // Register for notifications when the text boxes get updated.
96  textBoxes.add(tfExaminerNameText);
97  textBoxes.add(tfExaminerEmailText);
98  textBoxes.add(tfExaminerPhoneText);
99  addTextFieldDocumentListeners(textBoxes, textBoxChangedListener);
100  }
101 
102  private void setTextAreaListeners() {
103  // Register for notifications when the text areas get updated.
104  textAreas.add(taNotesText);
105  addTextAreaDocumentListeners(textAreas, textBoxChangedListener);
106  }
107 
114  private static void addTextFieldDocumentListeners(Collection<JTextField> textFields, TextBoxChangedListener listener) {
115  textFields.forEach((textField) -> {
116  textField.getDocument().addDocumentListener(listener);
117  });
118  }
119 
126  private static void addTextAreaDocumentListeners(Collection<JTextArea> textAreas, TextBoxChangedListener listener) {
127  textAreas.forEach((textArea) -> {
128  textArea.getDocument().addDocumentListener(listener);
129  });
130  }
131 
132  private void display() {
133  pack();
134  Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
135  setLocation((screenDimension.width - getSize().width) / 2, (screenDimension.height - getSize().height) / 2);
136  setVisible(true);
137  }
138 
144  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
145  private void initComponents() {
146 
147  bnClose = new javax.swing.JButton();
148  bnOk = new javax.swing.JButton();
149  pnCaseMetadata = new javax.swing.JPanel();
150  lbCaseNameLabel = new javax.swing.JLabel();
151  lbCreationDateLabel = new javax.swing.JLabel();
152  lbCaseNumberLabel = new javax.swing.JLabel();
153  lbCaseUUIDLabel = new javax.swing.JLabel();
154  lbCaseUUIDText = new javax.swing.JLabel();
155  lbCaseNameText = new javax.swing.JLabel();
156  lbCeationDateText = new javax.swing.JLabel();
157  lbCaseNumberText = new javax.swing.JLabel();
158  pnOrganization = new javax.swing.JPanel();
159  lbOrganizationNameLabel = new javax.swing.JLabel();
160  comboBoxOrgName = new javax.swing.JComboBox<>();
161  lbPointOfContactGroupLabel = new javax.swing.JLabel();
162  lbPointOfContactNameLabel = new javax.swing.JLabel();
163  lbPointOfContactEmailLabel = new javax.swing.JLabel();
164  lbPointOfContactPhoneLabel = new javax.swing.JLabel();
165  lbPointOfContactNameText = new javax.swing.JLabel();
166  lbPointOfContactEmailText = new javax.swing.JLabel();
167  lbPointOfContactPhoneText = new javax.swing.JLabel();
168  bnNewOrganization = new javax.swing.JButton();
169  pnExaminer = new javax.swing.JPanel();
170  lbExaminerNameLabel = new javax.swing.JLabel();
171  tfExaminerNameText = new javax.swing.JTextField();
172  lbExaminerEmailLabel = new javax.swing.JLabel();
173  tfExaminerEmailText = new javax.swing.JTextField();
174  lbExaminerPhoneLabel = new javax.swing.JLabel();
175  tfExaminerPhoneText = new javax.swing.JTextField();
176  lbNotesLabel = new javax.swing.JLabel();
177  jScrollPane2 = new javax.swing.JScrollPane();
178  taNotesText = new javax.swing.JTextArea();
179 
180  setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
181 
182  org.openide.awt.Mnemonics.setLocalizedText(bnClose, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.bnClose.text")); // NOI18N
183  bnClose.addActionListener(new java.awt.event.ActionListener() {
184  public void actionPerformed(java.awt.event.ActionEvent evt) {
186  }
187  });
188 
189  org.openide.awt.Mnemonics.setLocalizedText(bnOk, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.bnOk.text")); // NOI18N
190  bnOk.addActionListener(new java.awt.event.ActionListener() {
191  public void actionPerformed(java.awt.event.ActionEvent evt) {
192  bnOkActionPerformed(evt);
193  }
194  });
195 
196  pnCaseMetadata.setBorder(javax.swing.BorderFactory.createTitledBorder(null, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.pnCaseMetadata.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
197 
198  org.openide.awt.Mnemonics.setLocalizedText(lbCaseNameLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbCaseNameLabel.text")); // NOI18N
199 
200  org.openide.awt.Mnemonics.setLocalizedText(lbCreationDateLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbCreationDateLabel.text")); // NOI18N
201 
202  org.openide.awt.Mnemonics.setLocalizedText(lbCaseNumberLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbCaseNumberLabel.text")); // NOI18N
203 
204  org.openide.awt.Mnemonics.setLocalizedText(lbCaseUUIDLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbCaseUUIDLabel.text")); // NOI18N
205 
206  javax.swing.GroupLayout pnCaseMetadataLayout = new javax.swing.GroupLayout(pnCaseMetadata);
207  pnCaseMetadata.setLayout(pnCaseMetadataLayout);
208  pnCaseMetadataLayout.setHorizontalGroup(
209  pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
210  .addGroup(pnCaseMetadataLayout.createSequentialGroup()
211  .addGap(25, 25, 25)
212  .addGroup(pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
213  .addComponent(lbCaseNumberLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
214  .addComponent(lbCreationDateLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
215  .addComponent(lbCaseNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
216  .addComponent(lbCaseUUIDLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
217  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
218  .addGroup(pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
219  .addComponent(lbCaseNameText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
220  .addComponent(lbCeationDateText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
221  .addComponent(lbCaseNumberText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
222  .addComponent(lbCaseUUIDText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
223  .addContainerGap())
224  );
225  pnCaseMetadataLayout.setVerticalGroup(
226  pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
227  .addGroup(pnCaseMetadataLayout.createSequentialGroup()
228  .addContainerGap()
229  .addGroup(pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
230  .addComponent(lbCaseUUIDLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
231  .addComponent(lbCaseUUIDText, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
232  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
233  .addGroup(pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
234  .addComponent(lbCaseNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
235  .addComponent(lbCaseNameText, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
236  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
237  .addGroup(pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
238  .addComponent(lbCreationDateLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
239  .addComponent(lbCeationDateText, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
240  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
241  .addGroup(pnCaseMetadataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
242  .addComponent(lbCaseNumberLabel)
243  .addComponent(lbCaseNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
244  .addGap(26, 26, 26))
245  );
246 
247  pnOrganization.setBorder(javax.swing.BorderFactory.createTitledBorder(null, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.pnOrganization.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
248 
249  org.openide.awt.Mnemonics.setLocalizedText(lbOrganizationNameLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbOrganizationNameLabel.text")); // NOI18N
250 
251  comboBoxOrgName.addActionListener(new java.awt.event.ActionListener() {
252  public void actionPerformed(java.awt.event.ActionEvent evt) {
254  }
255  });
256 
257  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactGroupLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbPointOfContactGroupLabel.text")); // NOI18N
258 
259  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactNameLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbPointOfContactNameLabel.text")); // NOI18N
260 
261  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactEmailLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbPointOfContactEmailLabel.text")); // NOI18N
262 
263  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactPhoneLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbPointOfContactPhoneLabel.text")); // NOI18N
264 
265  org.openide.awt.Mnemonics.setLocalizedText(bnNewOrganization, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.bnNewOrganization.text")); // NOI18N
266  bnNewOrganization.addActionListener(new java.awt.event.ActionListener() {
267  public void actionPerformed(java.awt.event.ActionEvent evt) {
269  }
270  });
271 
272  javax.swing.GroupLayout pnOrganizationLayout = new javax.swing.GroupLayout(pnOrganization);
273  pnOrganization.setLayout(pnOrganizationLayout);
274  pnOrganizationLayout.setHorizontalGroup(
275  pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
276  .addGroup(pnOrganizationLayout.createSequentialGroup()
277  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
278  .addGroup(pnOrganizationLayout.createSequentialGroup()
279  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
280  .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnOrganizationLayout.createSequentialGroup()
281  .addGap(25, 25, 25)
282  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
283  .addComponent(lbPointOfContactGroupLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
284  .addComponent(lbOrganizationNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
285  .addGroup(pnOrganizationLayout.createSequentialGroup()
286  .addContainerGap()
287  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
288  .addComponent(lbPointOfContactPhoneLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
289  .addComponent(lbPointOfContactEmailLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
290  .addComponent(lbPointOfContactNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
291  .addGap(18, 18, 18)
292  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
293  .addComponent(lbPointOfContactNameText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
294  .addComponent(lbPointOfContactEmailText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
295  .addComponent(lbPointOfContactPhoneText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
296  .addComponent(comboBoxOrgName, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
297  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnOrganizationLayout.createSequentialGroup()
298  .addGap(0, 0, Short.MAX_VALUE)
299  .addComponent(bnNewOrganization)))
300  .addContainerGap())
301  );
302  pnOrganizationLayout.setVerticalGroup(
303  pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
304  .addGroup(pnOrganizationLayout.createSequentialGroup()
305  .addContainerGap()
306  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
307  .addComponent(lbOrganizationNameLabel)
308  .addComponent(comboBoxOrgName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
309  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
310  .addComponent(lbPointOfContactGroupLabel)
311  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
312  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
313  .addComponent(lbPointOfContactNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
314  .addComponent(lbPointOfContactNameText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
315  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
316  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
317  .addComponent(lbPointOfContactEmailLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
318  .addComponent(lbPointOfContactEmailText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
319  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
320  .addGroup(pnOrganizationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
321  .addComponent(lbPointOfContactPhoneLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
322  .addComponent(lbPointOfContactPhoneText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
323  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
324  .addComponent(bnNewOrganization)
325  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
326  );
327 
328  pnExaminer.setBorder(javax.swing.BorderFactory.createTitledBorder(null, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.pnExaminer.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
329 
330  org.openide.awt.Mnemonics.setLocalizedText(lbExaminerNameLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbExaminerNameLabel.text")); // NOI18N
331 
332  tfExaminerNameText.setEditable(false);
333 
334  org.openide.awt.Mnemonics.setLocalizedText(lbExaminerEmailLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbExaminerEmailLabel.text")); // NOI18N
335 
336  org.openide.awt.Mnemonics.setLocalizedText(lbExaminerPhoneLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbExaminerPhoneLabel.text")); // NOI18N
337 
338  org.openide.awt.Mnemonics.setLocalizedText(lbNotesLabel, org.openide.util.NbBundle.getMessage(EamCaseEditDetailsDialog.class, "EamCaseEditDetailsDialog.lbNotesLabel.text")); // NOI18N
339 
340  taNotesText.setColumns(20);
341  taNotesText.setRows(5);
342  jScrollPane2.setViewportView(taNotesText);
343 
344  javax.swing.GroupLayout pnExaminerLayout = new javax.swing.GroupLayout(pnExaminer);
345  pnExaminer.setLayout(pnExaminerLayout);
346  pnExaminerLayout.setHorizontalGroup(
347  pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
348  .addGroup(pnExaminerLayout.createSequentialGroup()
349  .addGap(28, 28, 28)
350  .addGroup(pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
351  .addComponent(lbExaminerEmailLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
352  .addComponent(lbExaminerNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
353  .addComponent(lbExaminerPhoneLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
354  .addComponent(lbNotesLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE))
355  .addGap(25, 25, 25)
356  .addGroup(pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
357  .addComponent(tfExaminerEmailText)
358  .addComponent(tfExaminerPhoneText)
359  .addComponent(tfExaminerNameText)
360  .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE))
361  .addContainerGap())
362  );
363  pnExaminerLayout.setVerticalGroup(
364  pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
365  .addGroup(pnExaminerLayout.createSequentialGroup()
366  .addContainerGap()
367  .addGroup(pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
368  .addComponent(lbExaminerNameLabel)
369  .addComponent(tfExaminerNameText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
370  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
371  .addGroup(pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
372  .addComponent(tfExaminerEmailText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
373  .addComponent(lbExaminerEmailLabel))
374  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
375  .addGroup(pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
376  .addComponent(tfExaminerPhoneText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
377  .addComponent(lbExaminerPhoneLabel))
378  .addGap(24, 24, 24)
379  .addGroup(pnExaminerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
380  .addComponent(lbNotesLabel)
381  .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
382  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
383  );
384 
385  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
386  getContentPane().setLayout(layout);
387  layout.setHorizontalGroup(
388  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
389  .addGroup(layout.createSequentialGroup()
390  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
391  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
392  .addGap(0, 0, Short.MAX_VALUE)
393  .addComponent(bnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
394  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
395  .addComponent(bnClose))
396  .addGroup(layout.createSequentialGroup()
397  .addContainerGap()
398  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
399  .addComponent(pnCaseMetadata, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
400  .addComponent(pnOrganization, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
401  .addComponent(pnExaminer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
402  .addContainerGap())
403  );
404  layout.setVerticalGroup(
405  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
406  .addGroup(layout.createSequentialGroup()
407  .addGap(23, 23, 23)
408  .addComponent(pnCaseMetadata, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
409  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
410  .addComponent(pnOrganization, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
411  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
412  .addComponent(pnExaminer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
413  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
414  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
415  .addComponent(bnOk)
416  .addComponent(bnClose))
417  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
418  );
419  }// </editor-fold>//GEN-END:initComponents
420 
421  private void bnOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnOkActionPerformed
422  if (contentChanged) {
423  updateEamCase();
424  updateDb();
425  }
426  dispose();
427  }//GEN-LAST:event_bnOkActionPerformed
428 
429  private void bnNewOrganizationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnNewOrganizationActionPerformed
431  // update the combobox options and org data fields
432  if (dialogO.isChanged()) {
434  }
435  }//GEN-LAST:event_bnNewOrganizationActionPerformed
436 
437  @SuppressWarnings({"unchecked"})
438  private void comboBoxOrgNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBoxOrgNameActionPerformed
439  JComboBox<String> cb = (JComboBox<String>) evt.getSource();
440  String orgName = (String) cb.getSelectedItem();
441  if (null == orgName || false == comboboxOrganizationActionListenerActive) {
442  return;
443  }
444 
445  if ("".equals(orgName)) {
446  selectedOrg = null;
447  lbPointOfContactNameText.setText("");
448  lbPointOfContactEmailText.setText("");
449  lbPointOfContactPhoneText.setText("");
450  contentChanged = true;
451  return;
452  }
453 
454  for (EamOrganization org : orgs) {
455  if (org.getName().equals(orgName)) {
456  selectedOrg = org;
457  lbPointOfContactNameText.setText(selectedOrg.getPocName());
458  lbPointOfContactEmailText.setText(selectedOrg.getPocEmail());
459  lbPointOfContactPhoneText.setText(selectedOrg.getPocPhone());
460  contentChanged = true;
461  return;
462  }
463  }
464  }//GEN-LAST:event_comboBoxOrgNameActionPerformed
465 
466  private void bnCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnCloseActionPerformed
467  dispose();
468  }//GEN-LAST:event_bnCloseActionPerformed
469 
470  private void loadCaseMetaData() {
471  lbCaseUUIDText.setText(eamCase.getCaseUUID());
472  lbCaseNameText.setText(eamCase.getDisplayName());
473  lbCeationDateText.setText(eamCase.getCreationDate());
474  lbCaseNumberText.setText(eamCase.getCaseNumber());
475  }
476 
477  private void loadExaminerData() {
478  tfExaminerNameText.setText(eamCase.getExaminerName());
479  tfExaminerEmailText.setText(eamCase.getExaminerEmail());
480  tfExaminerPhoneText.setText(eamCase.getExaminerPhone());
481  taNotesText.setText(eamCase.getNotes());
482  }
483 
484  private void loadOrganizationData() {
485  comboboxOrganizationActionListenerActive = false; // don't fire action listener while loading combobox content
486  comboBoxOrgName.removeAllItems();
487  try {
488  orgs = dbManager.getOrganizations();
489  comboBoxOrgName.addItem(""); // for when a case has a null Org
490  orgs.forEach((org) -> {
491  comboBoxOrgName.addItem(org.getName());
492  });
493  } catch (EamDbException ex) {
494  LOGGER.log(Level.SEVERE, "Failure populating combobox with organizations.", ex);
495  }
496  comboboxOrganizationActionListenerActive = true;
497 
498  if (!orgs.isEmpty() && null != eamCase.getOrg()) {
499  selectedOrg = eamCase.getOrg();
500  comboBoxOrgName.setSelectedItem(selectedOrg.getName());
501  lbPointOfContactNameText.setText(selectedOrg.getPocName());
502  lbPointOfContactEmailText.setText(selectedOrg.getPocEmail());
503  lbPointOfContactPhoneText.setText(selectedOrg.getPocPhone());
504  } else {
505  comboBoxOrgName.setSelectedItem("");
506  lbPointOfContactNameText.setText("");
507  lbPointOfContactEmailText.setText("");
508  lbPointOfContactPhoneText.setText("");
509  }
510  }
511 
512  private void loadData() {
516  }
517 
522  private void updateEamCase() {
523  eamCase.setOrg(selectedOrg);
524  eamCase.setExaminerName(tfExaminerNameText.getText());
525  eamCase.setExaminerEmail(tfExaminerEmailText.getText());
526  eamCase.setExaminerPhone(tfExaminerPhoneText.getText());
527  eamCase.setNotes(taNotesText.getText());
528  }
529 
530  private void updateDb() {
531  setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
532 
533  if (!EamDb.isEnabled()) {
534  LOGGER.log(Level.SEVERE, "Central repository database not enabled"); // NON-NLS
535  return;
536  }
537 
538  try {
539  dbManager.updateCase(eamCase);
540  } catch (IllegalArgumentException | EamDbException ex) {
541  LOGGER.log(Level.SEVERE, "Error connecting to central repository database", ex); // NON-NLS
542  } finally {
543  setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
544  }
545  }
546 
551  private class TextBoxChangedListener implements DocumentListener {
552 
553  @Override
554  public void changedUpdate(DocumentEvent e) {
555  setChanged();
556  }
557 
558  @Override
559  public void insertUpdate(DocumentEvent e) {
560  setChanged();
561  }
562 
563  @Override
564  public void removeUpdate(DocumentEvent e) {
565  setChanged();
566  }
567 
568  private void setChanged() {
569  contentChanged = true;
570  }
571  }
572  // Variables declaration - do not modify//GEN-BEGIN:variables
573  private javax.swing.JButton bnClose;
574  private javax.swing.JButton bnNewOrganization;
575  private javax.swing.JButton bnOk;
576  private javax.swing.JComboBox<String> comboBoxOrgName;
577  private javax.swing.JScrollPane jScrollPane2;
578  private javax.swing.JLabel lbCaseNameLabel;
579  private javax.swing.JLabel lbCaseNameText;
580  private javax.swing.JLabel lbCaseNumberLabel;
581  private javax.swing.JLabel lbCaseNumberText;
582  private javax.swing.JLabel lbCaseUUIDLabel;
583  private javax.swing.JLabel lbCaseUUIDText;
584  private javax.swing.JLabel lbCeationDateText;
585  private javax.swing.JLabel lbCreationDateLabel;
586  private javax.swing.JLabel lbExaminerEmailLabel;
587  private javax.swing.JLabel lbExaminerNameLabel;
588  private javax.swing.JLabel lbExaminerPhoneLabel;
589  private javax.swing.JLabel lbNotesLabel;
590  private javax.swing.JLabel lbOrganizationNameLabel;
591  private javax.swing.JLabel lbPointOfContactEmailLabel;
592  private javax.swing.JLabel lbPointOfContactEmailText;
593  private javax.swing.JLabel lbPointOfContactGroupLabel;
594  private javax.swing.JLabel lbPointOfContactNameLabel;
595  private javax.swing.JLabel lbPointOfContactNameText;
596  private javax.swing.JLabel lbPointOfContactPhoneLabel;
597  private javax.swing.JLabel lbPointOfContactPhoneText;
598  private javax.swing.JPanel pnCaseMetadata;
599  private javax.swing.JPanel pnExaminer;
600  private javax.swing.JPanel pnOrganization;
601  private javax.swing.JTextArea taNotesText;
602  private javax.swing.JTextField tfExaminerEmailText;
603  private javax.swing.JTextField tfExaminerNameText;
604  private javax.swing.JTextField tfExaminerPhoneText;
605  // End of variables declaration//GEN-END:variables
606 }
CorrelationCase getCaseByUUID(String caseUUID)
static void addTextAreaDocumentListeners(Collection< JTextArea > textAreas, TextBoxChangedListener listener)
static void addTextFieldDocumentListeners(Collection< JTextField > textFields, TextBoxChangedListener listener)
synchronized static Logger getLogger(String name)
Definition: Logger.java:161

Copyright © 2012-2016 Basis Technology. Generated on: Fri Sep 29 2017
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.