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

Copyright © 2012-2016 Basis Technology. Generated on: Mon May 7 2018
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.