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

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