19 package org.sleuthkit.autopsy.casemodule;
21 import java.awt.Cursor;
22 import java.util.logging.Level;
23 import javax.swing.JComboBox;
24 import org.openide.util.NbBundle.Messages;
38 @SuppressWarnings(
"PMD.SingularField")
39 final class OptionalCasePropertiesPanel extends javax.swing.JPanel {
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;
49 OptionalCasePropertiesPanel() {
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();
62 OptionalCasePropertiesPanel(
boolean editCurrentCase) {
64 if (editCurrentCase) {
67 openCase = Case.getCurrentCaseThrows();
68 }
catch (NoCurrentCaseException ex) {
69 logger.log(Level.SEVERE,
"Exception while getting open case.", ex);
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();
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();
94 private void setUpOrganizationData() {
95 if (EamDb.isEnabled()) {
97 Case currentCase = Case.getCurrentCaseThrows();
98 if (currentCase != null) {
99 EamDb dbManager = EamDb.getInstance();
100 selectedOrg = dbManager.getCase(currentCase).getOrg();
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);
108 if (selectedOrg != null) {
109 setCurrentlySelectedOrganization(selectedOrg.getName());
112 setCurrentlySelectedOrganization(EamDbUtil.getDefaultOrgName());
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);
132 loadOrganizationData();
137 private void loadOrganizationData() {
138 Object selectedBeforeLoad = comboBoxOrgName.getSelectedItem();
139 comboBoxOrgName.removeAllItems();
141 EamDb dbManager = EamDb.getInstance();
142 orgs = dbManager.getOrganizations();
143 orgs.forEach((
org) -> {
144 comboBoxOrgName.addItem(
org.getName());
146 comboBoxOrgName.setSelectedItem(selectedBeforeLoad);
147 }
catch (EamDbException ex) {
148 logger.log(Level.WARNING,
"Unable to populate list of Organizations from Central Repo", ex);
152 private void clearOrganization() {
154 lbPointOfContactNameText.setText(
"");
155 lbPointOfContactEmailText.setText(
"");
156 lbPointOfContactPhoneText.setText(
"");
159 String getCaseNumber() {
160 return caseNumberTextField.getText();
163 String getExaminerName() {
164 return examinerTextField.getText();
167 String getExaminerPhone() {
168 return tfExaminerPhoneText.getText();
171 String getExaminerEmail() {
172 return tfExaminerEmailText.getText();
175 String getCaseNotes() {
176 return taNotesText.getText();
179 String getOrganization() {
180 if (selectedOrg != null) {
181 return selectedOrg.getName();
183 return EamDbUtil.getDefaultOrgName();
187 void setCaseNumberField(String caseNumber) {
188 caseNumberTextField.setText(caseNumber == null ?
"" : caseNumber);
191 void setExaminerNameField(String examinerName) {
192 examinerTextField.setText(examinerName == null ?
"" : examinerName);
195 void setExaminerPhoneField(String examinerPhone) {
196 tfExaminerPhoneText.setText(examinerPhone == null ?
"" : examinerPhone);
199 void setExaminerEmailField(String examinerEmail) {
200 tfExaminerEmailText.setText(examinerEmail == null ?
"" : examinerEmail);
203 void setCaseNotesField(String caseNotes) {
204 taNotesText.setText(caseNotes == null ?
"" : caseNotes);
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"
227 @SuppressWarnings(
"unchecked")
229 private
void initComponents() {
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();
257 casePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.casePanel.border.title")));
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"));
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));
265 caseNumberTextField.setFont(caseNumberTextField.getFont().deriveFont(caseNumberTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
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"));
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);
274 caseDisplayNameTextField.setFont(caseDisplayNameTextField.getFont().deriveFont(caseDisplayNameTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
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()
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))
291 casePanelLayout.setVerticalGroup(
292 casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
293 .addGroup(casePanelLayout.createSequentialGroup()
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))
305 examinerPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.examinerPanel.border.title")));
307 org.openide.awt.Mnemonics.setLocalizedText(lbExaminerPhoneLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbExaminerPhoneLabel.text"));
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));
312 caseNotesScrollPane.setBorder(javax.swing.BorderFactory.createEtchedBorder());
314 taNotesText.setColumns(20);
315 taNotesText.setFont(
new java.awt.Font(
"Tahoma", 0, 11));
316 taNotesText.setLineWrap(
true);
317 taNotesText.setRows(2);
318 taNotesText.setWrapStyleWord(
true);
319 taNotesText.setBorder(null);
320 caseNotesScrollPane.setViewportView(taNotesText);
322 examinerTextField.setFont(examinerTextField.getFont().deriveFont(examinerTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
324 org.openide.awt.Mnemonics.setLocalizedText(lbExaminerEmailLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbExaminerEmailLabel.text"));
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));
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"));
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));
335 org.openide.awt.Mnemonics.setLocalizedText(lbNotesLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbNotesLabel.text"));
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));
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()
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))))
366 examinerPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL,
new java.awt.Component[] {examinerLabel, lbExaminerEmailLabel, lbExaminerPhoneLabel, lbNotesLabel});
368 examinerPanelLayout.setVerticalGroup(
369 examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
370 .addGroup(examinerPanelLayout.createSequentialGroup()
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))
390 orgainizationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.orgainizationPanel.border.title")));
392 org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactPhoneLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbPointOfContactPhoneLabel.text"));
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));
397 comboBoxOrgName.addActionListener(
new java.awt.event.ActionListener() {
398 public void actionPerformed(java.awt.event.ActionEvent evt) {
399 comboBoxOrgNameActionPerformed(evt);
403 org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactNameLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbPointOfContactNameLabel.text"));
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));
408 org.openide.awt.Mnemonics.setLocalizedText(bnNewOrganization,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.bnNewOrganization.text"));
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);
419 org.openide.awt.Mnemonics.setLocalizedText(lbOrganizationNameLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbOrganizationNameLabel.text"));
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));
424 org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactEmailLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbPointOfContactEmailLabel.text"));
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));
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()
448 .addComponent(lbOrganizationNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
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)))
456 orgainizationPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL,
new java.awt.Component[] {lbPointOfContactEmailLabel, lbPointOfContactNameLabel, lbPointOfContactPhoneLabel});
458 orgainizationPanelLayout.setVerticalGroup(
459 orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
460 .addGroup(orgainizationPanelLayout.createSequentialGroup()
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))
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()
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))
493 layout.setVerticalGroup(
494 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
495 .addGroup(layout.createSequentialGroup()
497 .addComponent(casePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
499 .addComponent(examinerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
501 .addComponent(orgainizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
506 private void comboBoxOrgNameActionPerformed(java.awt.event.ActionEvent evt) {
507 @SuppressWarnings(
"unchecked")
508 JComboBox<String> cb = (JComboBox<String>) evt.getSource();
509 String orgName = (String) cb.getSelectedItem();
510 if (null == orgName) {
513 if (
"".equals(orgName)) {
517 for (EamOrganization
org : orgs) {
518 if (
org.getName().equals(orgName)) {
520 lbPointOfContactNameText.setText(selectedOrg.getPocName());
521 lbPointOfContactEmailText.setText(selectedOrg.getPocEmail());
522 lbPointOfContactPhoneText.setText(selectedOrg.getPocPhone());
528 private void bnNewOrganizationActionPerformed(java.awt.event.ActionEvent evt) {
529 ManageOrganizationsDialog dialog =
new ManageOrganizationsDialog();
531 loadOrganizationData();
532 if (dialog.isChanged()) {
533 selectedOrg = dialog.getNewOrg();
534 setCurrentlySelectedOrganization(dialog.getNewOrg().getName());
540 void setCurrentlySelectedOrganization(String orgName) {
541 comboBoxOrgName.setSelectedItem(orgName == null ? EamDbUtil.getDefaultOrgName() : orgName);
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."
549 void saveUpdatedCaseDetails() {
550 if (caseDisplayNameTextField.getText().trim().isEmpty()) {
551 MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_emptyCaseNameMessage());
554 if (!Case.isValidName(caseDisplayNameTextField.getText())) {
555 MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_invalidCaseNameMessage());
560 }
catch (NoCurrentCaseException ex) {
561 MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_noOpenCase_errMsg());
564 updateCorrelationCase();
567 private void updateCaseDetails() throws NoCurrentCaseException {
568 if (caseDisplayNameTextField.isVisible()) {
570 Case.getCurrentCaseThrows().updateCaseDetails(
new CaseDetails(
571 caseDisplayNameTextField.getText(), caseNumberTextField.getText(),
572 examinerTextField.getText(), tfExaminerPhoneText.getText(),
573 tfExaminerEmailText.getText(), taNotesText.getText()));
574 }
catch (CaseActionException ex) {
575 logger.log(Level.WARNING,
"Error updating case details", ex);
584 private void updateCorrelationCase() {
585 setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
586 if (EamDb.isEnabled()) {
588 EamDb dbManager = EamDb.getInstance();
589 CorrelationCase correlationCase = dbManager.getCase(Case.getCurrentCaseThrows());
590 if (caseDisplayNameTextField.isVisible()) {
591 correlationCase.setDisplayName(caseDisplayNameTextField.getText());
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);
602 }
catch (NoCurrentCaseException ex) {
603 logger.log(Level.SEVERE,
"Exception while getting open case.", ex);
605 setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
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;