Autopsy  4.9.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
OptionalCasePropertiesPanel.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2011-2018 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.casemodule;
20 
21 import java.awt.Cursor;
22 import java.util.logging.Level;
23 import javax.swing.JComboBox;
24 import org.openide.util.Exceptions;
25 import org.openide.util.NbBundle.Messages;
34 
39 @SuppressWarnings("PMD.SingularField") // UI widgets cause lots of false positives
40 final class OptionalCasePropertiesPanel extends javax.swing.JPanel {
41 
42  private final static Logger logger = Logger.getLogger(OptionalCasePropertiesPanel.class.getName());
43  private static final long serialVersionUID = 1L;
44  private EamOrganization selectedOrg = null;
45  private java.util.List<EamOrganization> orgs = null;
46 
50  OptionalCasePropertiesPanel() {
51  initComponents();
52  caseDisplayNameLabel.setVisible(false);
53  caseDisplayNameTextField.setVisible(false);
54  lbPointOfContactNameLabel.setVisible(false);
55  lbPointOfContactNameText.setVisible(false);
56  lbPointOfContactPhoneLabel.setVisible(false);
57  lbPointOfContactPhoneText.setVisible(false);
58  lbPointOfContactEmailLabel.setVisible(false);
59  lbPointOfContactEmailText.setVisible(false);
60  setUpCaseDetailsFields();
61  }
62 
63  OptionalCasePropertiesPanel(boolean editCurrentCase) {
64  initComponents();
65  if (editCurrentCase) {
66  Case openCase;
67  try {
68  openCase = Case.getCurrentCaseThrows();
69  } catch (NoCurrentCaseException ex) {
70  logger.log(Level.SEVERE, "Exception while getting open case.", ex);
71  return;
72  }
73  caseDisplayNameTextField.setText(openCase.getDisplayName());
74  caseNumberTextField.setText(openCase.getNumber());
75  examinerTextField.setText(openCase.getExaminer());
76  tfExaminerEmailText.setText(openCase.getExaminerEmail());
77  tfExaminerPhoneText.setText(openCase.getExaminerPhone());
78  taNotesText.setText(openCase.getCaseNotes());
79  setUpCaseDetailsFields();
80  setUpOrganizationData();
81  } else {
82  caseDisplayNameLabel.setVisible(false);
83  caseDisplayNameTextField.setVisible(false);
84  lbPointOfContactNameLabel.setVisible(false);
85  lbPointOfContactNameText.setVisible(false);
86  lbPointOfContactPhoneLabel.setVisible(false);
87  lbPointOfContactPhoneText.setVisible(false);
88  lbPointOfContactEmailLabel.setVisible(false);
89  lbPointOfContactEmailText.setVisible(false);
90  setUpCaseDetailsFields();
91  }
92 
93  }
94 
95  private void setUpOrganizationData() {
96  if (EamDb.isEnabled()) {
97  try {
98  Case currentCase = Case.getCurrentCaseThrows();
99  if (currentCase != null) {
100  EamDb dbManager = EamDb.getInstance();
101  selectedOrg = dbManager.getCase(currentCase).getOrg();
102  }
103  } catch (EamDbException ex) {
104  logger.log(Level.SEVERE, "Unable to get Organization associated with the case from Central Repo", ex);
105  } catch (NoCurrentCaseException ex) {
106  logger.log(Level.SEVERE, "Exception while getting open case.", ex);
107  }
108 
109  if (selectedOrg != null) {
110  setCurrentlySelectedOrganization(selectedOrg.getName());
111  }
112  else {
113  setCurrentlySelectedOrganization(EamDbUtil.getDefaultOrgName());
114  }
115  }
116  }
117 
118  void setUpCaseDetailsFields() {
119  boolean cREnabled = EamDb.isEnabled();
120  comboBoxOrgName.setEnabled(cREnabled);
121  bnNewOrganization.setEnabled(cREnabled);
122  lbPointOfContactNameText.setEnabled(cREnabled);
123  lbPointOfContactEmailText.setEnabled(cREnabled);
124  lbPointOfContactPhoneText.setEnabled(cREnabled);
125  lbOrganizationNameLabel.setEnabled(cREnabled);
126  lbPointOfContactNameLabel.setEnabled(cREnabled);
127  lbPointOfContactEmailLabel.setEnabled(cREnabled);
128  lbPointOfContactPhoneLabel.setEnabled(cREnabled);
129  orgainizationPanel.setEnabled(cREnabled);
130  if (!cREnabled) {
131  clearOrganization();
132  } else {
133  loadOrganizationData();
134  }
135 
136  }
137 
138  private void loadOrganizationData() {
139  Object selectedBeforeLoad = comboBoxOrgName.getSelectedItem();
140  comboBoxOrgName.removeAllItems();
141  try {
142  EamDb dbManager = EamDb.getInstance();
143  orgs = dbManager.getOrganizations();
144  orgs.forEach((org) -> {
145  comboBoxOrgName.addItem(org.getName());
146  });
147  comboBoxOrgName.setSelectedItem(selectedBeforeLoad);
148  } catch (EamDbException ex) {
149  logger.log(Level.WARNING, "Unable to populate list of Organizations from Central Repo", ex);
150  }
151  }
152 
153  private void clearOrganization() {
154  selectedOrg = null;
155  lbPointOfContactNameText.setText("");
156  lbPointOfContactEmailText.setText("");
157  lbPointOfContactPhoneText.setText("");
158  }
159 
160  String getCaseNumber() {
161  return caseNumberTextField.getText();
162  }
163 
164  String getExaminerName() {
165  return examinerTextField.getText();
166  }
167 
168  String getExaminerPhone() {
169  return tfExaminerPhoneText.getText();
170  }
171 
172  String getExaminerEmail() {
173  return tfExaminerEmailText.getText();
174  }
175 
176  String getCaseNotes() {
177  return taNotesText.getText();
178  }
179 
180  String getOrganization() {
181  if (selectedOrg != null) {
182  return selectedOrg.getName();
183  } else {
184  return EamDbUtil.getDefaultOrgName();
185  }
186  }
187 
188  void setCaseNumberField(String caseNumber) {
189  caseNumberTextField.setText(caseNumber == null ? "" : caseNumber);
190  }
191 
192  void setExaminerNameField(String examinerName) {
193  examinerTextField.setText(examinerName == null ? "" : examinerName);
194  }
195 
196  void setExaminerPhoneField(String examinerPhone) {
197  tfExaminerPhoneText.setText(examinerPhone == null ? "" : examinerPhone);
198  }
199 
200  void setExaminerEmailField(String examinerEmail) {
201  tfExaminerEmailText.setText(examinerEmail == null ? "" : examinerEmail);
202  }
203 
204  void setCaseNotesField(String caseNotes) {
205  taNotesText.setText(caseNotes == null ? "" : caseNotes);
206  }
207 
208  @Messages({"OptionalCasePropertiesPanel.caseDisplayNameLabel.text=Name:",
209  "OptionalCasePropertiesPanel.lbPointOfContactEmailLabel.text=Email:",
210  "OptionalCasePropertiesPanel.lbOrganizationNameLabel.text=Organization analysis is being done for:",
211  "OptionalCasePropertiesPanel.bnNewOrganization.text=Manage Organizations",
212  "OptionalCasePropertiesPanel.lbPointOfContactNameLabel.text=Point of Contact:",
213  "OptionalCasePropertiesPanel.lbPointOfContactPhoneLabel.text=Phone:",
214  "OptionalCasePropertiesPanel.orgainizationPanel.border.title=Organization",
215  "OptionalCasePropertiesPanel.lbNotesLabel.text=Notes:",
216  "OptionalCasePropertiesPanel.examinerLabel.text=Name:",
217  "OptionalCasePropertiesPanel.lbExaminerEmailLabel.text=Email:",
218  "OptionalCasePropertiesPanel.lbExaminerPhoneLabel.text=Phone:",
219  "OptionalCasePropertiesPanel.examinerPanel.border.title=Examiner",
220  "OptionalCasePropertiesPanel.caseNumberLabel.text=Number:",
221  "OptionalCasePropertiesPanel.casePanel.border.title=Case"
222  })
228  @SuppressWarnings("unchecked")
229  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
230  private void initComponents() {
231 
232  casePanel = new javax.swing.JPanel();
233  caseNumberLabel = new javax.swing.JLabel();
234  caseNumberTextField = new javax.swing.JTextField();
235  caseDisplayNameLabel = new javax.swing.JLabel();
236  caseDisplayNameTextField = new javax.swing.JTextField();
237  examinerPanel = new javax.swing.JPanel();
238  tfExaminerPhoneText = new javax.swing.JTextField();
239  lbExaminerPhoneLabel = new javax.swing.JLabel();
240  caseNotesScrollPane = new javax.swing.JScrollPane();
241  taNotesText = new javax.swing.JTextArea();
242  tfExaminerEmailText = new javax.swing.JTextField();
243  examinerTextField = new javax.swing.JTextField();
244  lbExaminerEmailLabel = new javax.swing.JLabel();
245  examinerLabel = new javax.swing.JLabel();
246  lbNotesLabel = new javax.swing.JLabel();
247  orgainizationPanel = new javax.swing.JPanel();
248  lbPointOfContactPhoneLabel = new javax.swing.JLabel();
249  comboBoxOrgName = new javax.swing.JComboBox<>();
250  lbPointOfContactNameLabel = new javax.swing.JLabel();
251  bnNewOrganization = new javax.swing.JButton();
252  lbPointOfContactEmailText = new javax.swing.JLabel();
253  lbPointOfContactNameText = new javax.swing.JLabel();
254  lbOrganizationNameLabel = new javax.swing.JLabel();
255  lbPointOfContactEmailLabel = new javax.swing.JLabel();
256  lbPointOfContactPhoneText = new javax.swing.JLabel();
257 
258  casePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.casePanel.border.title"))); // NOI18N
259 
260  caseNumberLabel.setFont(caseNumberLabel.getFont().deriveFont(caseNumberLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
261  org.openide.awt.Mnemonics.setLocalizedText(caseNumberLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.caseNumberLabel.text")); // NOI18N
262  caseNumberLabel.setMaximumSize(new java.awt.Dimension(41, 14));
263  caseNumberLabel.setMinimumSize(new java.awt.Dimension(41, 14));
264  caseNumberLabel.setPreferredSize(new java.awt.Dimension(41, 14));
265 
266  caseNumberTextField.setFont(caseNumberTextField.getFont().deriveFont(caseNumberTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
267 
268  caseDisplayNameLabel.setFont(caseDisplayNameLabel.getFont().deriveFont(caseDisplayNameLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
269  org.openide.awt.Mnemonics.setLocalizedText(caseDisplayNameLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.caseDisplayNameLabel.text")); // NOI18N
270  caseDisplayNameLabel.setMaximumSize(new java.awt.Dimension(41, 14));
271  caseDisplayNameLabel.setMinimumSize(new java.awt.Dimension(41, 14));
272  caseDisplayNameLabel.setPreferredSize(new java.awt.Dimension(41, 14));
273  caseDisplayNameLabel.setVerifyInputWhenFocusTarget(false);
274 
275  caseDisplayNameTextField.setFont(caseDisplayNameTextField.getFont().deriveFont(caseDisplayNameTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
276 
277  javax.swing.GroupLayout casePanelLayout = new javax.swing.GroupLayout(casePanel);
278  casePanel.setLayout(casePanelLayout);
279  casePanelLayout.setHorizontalGroup(
280  casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
281  .addGroup(casePanelLayout.createSequentialGroup()
282  .addContainerGap()
283  .addGroup(casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
284  .addComponent(caseNumberLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
285  .addComponent(caseDisplayNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
286  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
287  .addGroup(casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
288  .addComponent(caseNumberTextField)
289  .addComponent(caseDisplayNameTextField))
290  .addContainerGap())
291  );
292  casePanelLayout.setVerticalGroup(
293  casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
294  .addGroup(casePanelLayout.createSequentialGroup()
295  .addContainerGap()
296  .addGroup(casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
297  .addComponent(caseDisplayNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
298  .addComponent(caseDisplayNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
299  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
300  .addGroup(casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
301  .addComponent(caseNumberLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
302  .addComponent(caseNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
303  .addGap(6, 6, 6))
304  );
305 
306  examinerPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.examinerPanel.border.title"))); // NOI18N
307 
308  org.openide.awt.Mnemonics.setLocalizedText(lbExaminerPhoneLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbExaminerPhoneLabel.text")); // NOI18N
309  lbExaminerPhoneLabel.setMaximumSize(new java.awt.Dimension(41, 14));
310  lbExaminerPhoneLabel.setMinimumSize(new java.awt.Dimension(41, 14));
311  lbExaminerPhoneLabel.setPreferredSize(new java.awt.Dimension(41, 14));
312 
313  caseNotesScrollPane.setBorder(javax.swing.BorderFactory.createEtchedBorder());
314 
315  taNotesText.setColumns(20);
316  taNotesText.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
317  taNotesText.setLineWrap(true);
318  taNotesText.setRows(2);
319  taNotesText.setWrapStyleWord(true);
320  taNotesText.setBorder(null);
321  caseNotesScrollPane.setViewportView(taNotesText);
322 
323  examinerTextField.setFont(examinerTextField.getFont().deriveFont(examinerTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
324 
325  org.openide.awt.Mnemonics.setLocalizedText(lbExaminerEmailLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbExaminerEmailLabel.text")); // NOI18N
326  lbExaminerEmailLabel.setMaximumSize(new java.awt.Dimension(41, 14));
327  lbExaminerEmailLabel.setMinimumSize(new java.awt.Dimension(41, 14));
328  lbExaminerEmailLabel.setPreferredSize(new java.awt.Dimension(41, 14));
329 
330  examinerLabel.setFont(examinerLabel.getFont().deriveFont(examinerLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
331  org.openide.awt.Mnemonics.setLocalizedText(examinerLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.examinerLabel.text")); // NOI18N
332  examinerLabel.setMaximumSize(new java.awt.Dimension(41, 14));
333  examinerLabel.setMinimumSize(new java.awt.Dimension(41, 14));
334  examinerLabel.setPreferredSize(new java.awt.Dimension(41, 14));
335 
336  org.openide.awt.Mnemonics.setLocalizedText(lbNotesLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbNotesLabel.text")); // NOI18N
337  lbNotesLabel.setMaximumSize(new java.awt.Dimension(41, 14));
338  lbNotesLabel.setMinimumSize(new java.awt.Dimension(41, 14));
339  lbNotesLabel.setPreferredSize(new java.awt.Dimension(41, 14));
340 
341  javax.swing.GroupLayout examinerPanelLayout = new javax.swing.GroupLayout(examinerPanel);
342  examinerPanel.setLayout(examinerPanelLayout);
343  examinerPanelLayout.setHorizontalGroup(
344  examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
345  .addGroup(examinerPanelLayout.createSequentialGroup()
346  .addContainerGap()
347  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
348  .addGroup(examinerPanelLayout.createSequentialGroup()
349  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
350  .addComponent(lbNotesLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
351  .addComponent(lbExaminerPhoneLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
352  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
353  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
354  .addComponent(caseNotesScrollPane)
355  .addComponent(tfExaminerPhoneText)))
356  .addGroup(examinerPanelLayout.createSequentialGroup()
357  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
358  .addComponent(lbExaminerEmailLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
359  .addComponent(examinerLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
360  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
361  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
362  .addComponent(examinerTextField)
363  .addComponent(tfExaminerEmailText))))
364  .addGap(11, 11, 11))
365  );
366 
367  examinerPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {examinerLabel, lbExaminerEmailLabel, lbExaminerPhoneLabel, lbNotesLabel});
368 
369  examinerPanelLayout.setVerticalGroup(
370  examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
371  .addGroup(examinerPanelLayout.createSequentialGroup()
372  .addContainerGap()
373  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
374  .addComponent(examinerLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
375  .addComponent(examinerTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
376  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
377  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
378  .addComponent(tfExaminerPhoneText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
379  .addComponent(lbExaminerPhoneLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
380  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
381  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
382  .addComponent(tfExaminerEmailText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
383  .addComponent(lbExaminerEmailLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
384  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385  .addGroup(examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
386  .addComponent(lbNotesLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
387  .addComponent(caseNotesScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
388  .addGap(6, 6, 6))
389  );
390 
391  orgainizationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.orgainizationPanel.border.title"))); // NOI18N
392 
393  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactPhoneLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbPointOfContactPhoneLabel.text")); // NOI18N
394  lbPointOfContactPhoneLabel.setMaximumSize(new java.awt.Dimension(82, 14));
395  lbPointOfContactPhoneLabel.setMinimumSize(new java.awt.Dimension(82, 14));
396  lbPointOfContactPhoneLabel.setPreferredSize(new java.awt.Dimension(82, 14));
397 
398  comboBoxOrgName.addActionListener(new java.awt.event.ActionListener() {
399  public void actionPerformed(java.awt.event.ActionEvent evt) {
400  comboBoxOrgNameActionPerformed(evt);
401  }
402  });
403 
404  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactNameLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbPointOfContactNameLabel.text")); // NOI18N
405  lbPointOfContactNameLabel.setMaximumSize(new java.awt.Dimension(82, 14));
406  lbPointOfContactNameLabel.setMinimumSize(new java.awt.Dimension(82, 14));
407  lbPointOfContactNameLabel.setPreferredSize(new java.awt.Dimension(82, 14));
408 
409  org.openide.awt.Mnemonics.setLocalizedText(bnNewOrganization, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.bnNewOrganization.text")); // NOI18N
410  bnNewOrganization.setMargin(new java.awt.Insets(2, 6, 2, 6));
411  bnNewOrganization.setMaximumSize(new java.awt.Dimension(123, 23));
412  bnNewOrganization.setMinimumSize(new java.awt.Dimension(123, 23));
413  bnNewOrganization.setPreferredSize(new java.awt.Dimension(123, 23));
414  bnNewOrganization.addActionListener(new java.awt.event.ActionListener() {
415  public void actionPerformed(java.awt.event.ActionEvent evt) {
416  bnNewOrganizationActionPerformed(evt);
417  }
418  });
419 
420  org.openide.awt.Mnemonics.setLocalizedText(lbOrganizationNameLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbOrganizationNameLabel.text")); // NOI18N
421  lbOrganizationNameLabel.setMaximumSize(new java.awt.Dimension(189, 14));
422  lbOrganizationNameLabel.setMinimumSize(new java.awt.Dimension(189, 14));
423  lbOrganizationNameLabel.setPreferredSize(new java.awt.Dimension(189, 14));
424 
425  org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactEmailLabel, org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class, "OptionalCasePropertiesPanel.lbPointOfContactEmailLabel.text")); // NOI18N
426  lbPointOfContactEmailLabel.setMaximumSize(new java.awt.Dimension(82, 14));
427  lbPointOfContactEmailLabel.setMinimumSize(new java.awt.Dimension(82, 14));
428  lbPointOfContactEmailLabel.setPreferredSize(new java.awt.Dimension(82, 14));
429 
430  javax.swing.GroupLayout orgainizationPanelLayout = new javax.swing.GroupLayout(orgainizationPanel);
431  orgainizationPanel.setLayout(orgainizationPanelLayout);
432  orgainizationPanelLayout.setHorizontalGroup(
433  orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
434  .addGroup(orgainizationPanelLayout.createSequentialGroup()
435  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
436  .addGroup(orgainizationPanelLayout.createSequentialGroup()
437  .addGap(106, 106, 106)
438  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
439  .addComponent(lbPointOfContactPhoneLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
440  .addComponent(lbPointOfContactEmailLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
441  .addComponent(lbPointOfContactNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE))
442  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
443  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
444  .addComponent(lbPointOfContactPhoneText, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
445  .addComponent(lbPointOfContactNameText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
446  .addComponent(lbPointOfContactEmailText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
447  .addGroup(orgainizationPanelLayout.createSequentialGroup()
448  .addContainerGap()
449  .addComponent(lbOrganizationNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
450  .addGap(18, 18, 18)
451  .addComponent(comboBoxOrgName, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
452  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
453  .addComponent(bnNewOrganization, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)))
454  .addContainerGap())
455  );
456 
457  orgainizationPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {lbPointOfContactEmailLabel, lbPointOfContactNameLabel, lbPointOfContactPhoneLabel});
458 
459  orgainizationPanelLayout.setVerticalGroup(
460  orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
461  .addGroup(orgainizationPanelLayout.createSequentialGroup()
462  .addContainerGap()
463  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
464  .addComponent(lbOrganizationNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
465  .addComponent(comboBoxOrgName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
466  .addComponent(bnNewOrganization, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
467  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
468  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
469  .addComponent(lbPointOfContactNameText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
470  .addComponent(lbPointOfContactNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
471  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
472  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
473  .addComponent(lbPointOfContactPhoneLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
474  .addComponent(lbPointOfContactPhoneText, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
475  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
476  .addGroup(orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
477  .addComponent(lbPointOfContactEmailLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
478  .addComponent(lbPointOfContactEmailText, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
479  .addGap(6, 6, 6))
480  );
481 
482  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
483  this.setLayout(layout);
484  layout.setHorizontalGroup(
485  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
486  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
487  .addGap(6, 6, 6)
488  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
489  .addComponent(casePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
490  .addComponent(examinerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
491  .addComponent(orgainizationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
492  .addGap(6, 6, 6))
493  );
494  layout.setVerticalGroup(
495  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
496  .addGroup(layout.createSequentialGroup()
497  .addContainerGap()
498  .addComponent(casePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
499  .addGap(0, 0, 0)
500  .addComponent(examinerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
501  .addGap(0, 0, 0)
502  .addComponent(orgainizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
503  .addGap(0, 0, 0))
504  );
505  }// </editor-fold>//GEN-END:initComponents
506 
507  private void comboBoxOrgNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBoxOrgNameActionPerformed
508  @SuppressWarnings("unchecked")
509  JComboBox<String> cb = (JComboBox<String>) evt.getSource();
510  String orgName = (String) cb.getSelectedItem();
511  if (null == orgName) {
512  return;
513  }
514  if ("".equals(orgName)) {
515  clearOrganization();
516  return;
517  }
518  for (EamOrganization org : orgs) {
519  if (org.getName().equals(orgName)) {
520  selectedOrg = org;
521  lbPointOfContactNameText.setText(selectedOrg.getPocName());
522  lbPointOfContactEmailText.setText(selectedOrg.getPocEmail());
523  lbPointOfContactPhoneText.setText(selectedOrg.getPocPhone());
524  return;
525  }
526  }
527  }//GEN-LAST:event_comboBoxOrgNameActionPerformed
528 
529  private void bnNewOrganizationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnNewOrganizationActionPerformed
530  ManageOrganizationsDialog dialog = new ManageOrganizationsDialog();
531  // update the combobox options and org data fields
532  loadOrganizationData();
533  if (dialog.isChanged()) {
534  selectedOrg = dialog.getNewOrg();
535  setCurrentlySelectedOrganization(dialog.getNewOrg().getName());
536  }
537  validate();
538  repaint();
539  }//GEN-LAST:event_bnNewOrganizationActionPerformed
540 
541  void setCurrentlySelectedOrganization(String orgName) {
542  comboBoxOrgName.setSelectedItem(orgName == null ? EamDbUtil.getDefaultOrgName() : orgName);
543  }
544 
545  @Messages({
546  "OptionalCasePropertiesPanel.errorDialog.emptyCaseNameMessage=No case name entered.",
547  "OptionalCasePropertiesPanel.errorDialog.invalidCaseNameMessage=Case names cannot include the following symbols: \\, /, :, *, ?, \", <, >, |",
548  "OptionalCasePropertiesPanel.errorDialog.noOpenCase.errMsg=Exception while getting open case."
549  })
550  void saveUpdatedCaseDetails() {
551  if (caseDisplayNameTextField.getText().trim().isEmpty()) {
552  MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_emptyCaseNameMessage());
553  return;
554  }
555  if (!Case.isValidName(caseDisplayNameTextField.getText())) {
556  MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_invalidCaseNameMessage());
557  return;
558  }
559  try {
560  updateCaseDetails();
561  } catch (NoCurrentCaseException ex) {
562  MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_noOpenCase_errMsg());
563  return;
564  }
565  updateCorrelationCase();
566  }
567 
568  private void updateCaseDetails() throws NoCurrentCaseException {
569  if (caseDisplayNameTextField.isVisible()) {
570  try {
571  Case.getCurrentCaseThrows().updateCaseDetails(new CaseDetails(
572  caseDisplayNameTextField.getText(), caseNumberTextField.getText(),
573  examinerTextField.getText(), tfExaminerPhoneText.getText(),
574  tfExaminerEmailText.getText(), taNotesText.getText()));
575  } catch (CaseActionException ex) {
576  Exceptions.printStackTrace(ex);
577  }
578  }
579  }
580 
585  private void updateCorrelationCase() {
586  setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
587  if (EamDb.isEnabled()) {
588  try {
589  EamDb dbManager = EamDb.getInstance();
590  CorrelationCase correlationCase = dbManager.getCase(Case.getCurrentCaseThrows());
591  if (caseDisplayNameTextField.isVisible()) {
592  correlationCase.setDisplayName(caseDisplayNameTextField.getText());
593  }
594  correlationCase.setOrg(selectedOrg);
595  correlationCase.setCaseNumber(caseNumberTextField.getText());
596  correlationCase.setExaminerName(examinerTextField.getText());
597  correlationCase.setExaminerEmail(tfExaminerEmailText.getText());
598  correlationCase.setExaminerPhone(tfExaminerPhoneText.getText());
599  correlationCase.setNotes(taNotesText.getText());
600  dbManager.updateCase(correlationCase);
601  } catch (EamDbException ex) {
602  logger.log(Level.SEVERE, "Error connecting to central repository database", ex); // NON-NLS
603  } catch (NoCurrentCaseException ex) {
604  logger.log(Level.SEVERE, "Exception while getting open case.", ex); // NON-NLS
605  } finally {
606  setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
607  }
608  }
609  }
610  // Variables declaration - do not modify//GEN-BEGIN:variables
611  private javax.swing.JButton bnNewOrganization;
612  private javax.swing.JLabel caseDisplayNameLabel;
613  private javax.swing.JTextField caseDisplayNameTextField;
614  private javax.swing.JScrollPane caseNotesScrollPane;
615  private javax.swing.JLabel caseNumberLabel;
616  private javax.swing.JTextField caseNumberTextField;
617  private javax.swing.JPanel casePanel;
618  private javax.swing.JComboBox<String> comboBoxOrgName;
619  private javax.swing.JLabel examinerLabel;
620  private javax.swing.JPanel examinerPanel;
621  private javax.swing.JTextField examinerTextField;
622  private javax.swing.JLabel lbExaminerEmailLabel;
623  private javax.swing.JLabel lbExaminerPhoneLabel;
624  private javax.swing.JLabel lbNotesLabel;
625  private javax.swing.JLabel lbOrganizationNameLabel;
626  private javax.swing.JLabel lbPointOfContactEmailLabel;
627  private javax.swing.JLabel lbPointOfContactEmailText;
628  private javax.swing.JLabel lbPointOfContactNameLabel;
629  private javax.swing.JLabel lbPointOfContactNameText;
630  private javax.swing.JLabel lbPointOfContactPhoneLabel;
631  private javax.swing.JLabel lbPointOfContactPhoneText;
632  private javax.swing.JPanel orgainizationPanel;
633  private javax.swing.JTextArea taNotesText;
634  private javax.swing.JTextField tfExaminerEmailText;
635  private javax.swing.JTextField tfExaminerPhoneText;
636  // End of variables declaration//GEN-END:variables
637 }

Copyright © 2012-2018 Basis Technology. Generated on: Tue Dec 18 2018
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.