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.Exceptions;
25 import org.openide.util.NbBundle.Messages;
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) {
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();
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();
87 private void setUpOrganizationData() {
88 if (EamDb.isEnabled()) {
89 Case currentCase = Case.getCurrentCase();
90 if (currentCase != null) {
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);
98 if (selectedOrg != null) {
99 setCurrentlySelectedOrganization(selectedOrg.getName());
102 setCurrentlySelectedOrganization(EamDbUtil.getDefaultOrgName());
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);
122 loadOrganizationData();
127 private void loadOrganizationData() {
128 Object selectedBeforeLoad = comboBoxOrgName.getSelectedItem();
129 comboBoxOrgName.removeAllItems();
131 EamDb dbManager = EamDb.getInstance();
132 orgs = dbManager.getOrganizations();
133 orgs.forEach((
org) -> {
134 comboBoxOrgName.addItem(
org.getName());
136 comboBoxOrgName.setSelectedItem(selectedBeforeLoad);
137 }
catch (EamDbException ex) {
138 LOGGER.log(Level.WARNING,
"Unable to populate list of Organizations from Central Repo", ex);
142 private void clearOrganization() {
144 lbPointOfContactNameText.setText(
"");
145 lbPointOfContactEmailText.setText(
"");
146 lbPointOfContactPhoneText.setText(
"");
149 String getCaseNumber() {
150 return caseNumberTextField.getText();
153 String getExaminerName() {
154 return examinerTextField.getText();
157 String getExaminerPhone() {
158 return tfExaminerPhoneText.getText();
161 String getExaminerEmail() {
162 return tfExaminerEmailText.getText();
165 String getCaseNotes() {
166 return taNotesText.getText();
169 String getOrganization() {
170 if (selectedOrg != null) {
171 return selectedOrg.getName();
173 return EamDbUtil.getDefaultOrgName();
177 void setCaseNumberField(String caseNumber) {
178 caseNumberTextField.setText(caseNumber == null ?
"" : caseNumber);
181 void setExaminerNameField(String examinerName) {
182 examinerTextField.setText(examinerName == null ?
"" : examinerName);
185 void setExaminerPhoneField(String examinerPhone) {
186 tfExaminerPhoneText.setText(examinerPhone == null ?
"" : examinerPhone);
189 void setExaminerEmailField(String examinerEmail) {
190 tfExaminerEmailText.setText(examinerEmail == null ?
"" : examinerEmail);
193 void setCaseNotesField(String caseNotes) {
194 taNotesText.setText(caseNotes == null ?
"" : caseNotes);
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"
217 @SuppressWarnings(
"unchecked")
219 private
void initComponents() {
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();
247 casePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.casePanel.border.title")));
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"));
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));
255 caseNumberTextField.setFont(caseNumberTextField.getFont().deriveFont(caseNumberTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
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"));
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);
264 caseDisplayNameTextField.setFont(caseDisplayNameTextField.getFont().deriveFont(caseDisplayNameTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
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()
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))
281 casePanelLayout.setVerticalGroup(
282 casePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
283 .addGroup(casePanelLayout.createSequentialGroup()
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))
295 examinerPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.examinerPanel.border.title")));
297 org.openide.awt.Mnemonics.setLocalizedText(lbExaminerPhoneLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbExaminerPhoneLabel.text"));
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));
302 caseNotesScrollPane.setBorder(javax.swing.BorderFactory.createEtchedBorder());
304 taNotesText.setColumns(20);
305 taNotesText.setFont(
new java.awt.Font(
"Tahoma", 0, 11));
306 taNotesText.setLineWrap(
true);
307 taNotesText.setRows(2);
308 taNotesText.setWrapStyleWord(
true);
309 taNotesText.setBorder(null);
310 caseNotesScrollPane.setViewportView(taNotesText);
312 examinerTextField.setFont(examinerTextField.getFont().deriveFont(examinerTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
314 org.openide.awt.Mnemonics.setLocalizedText(lbExaminerEmailLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbExaminerEmailLabel.text"));
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));
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"));
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));
325 org.openide.awt.Mnemonics.setLocalizedText(lbNotesLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbNotesLabel.text"));
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));
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()
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))
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))))
355 examinerPanelLayout.setVerticalGroup(
356 examinerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
357 .addGroup(examinerPanelLayout.createSequentialGroup()
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))
377 orgainizationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.orgainizationPanel.border.title")));
379 org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactPhoneLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbPointOfContactPhoneLabel.text"));
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));
384 comboBoxOrgName.addActionListener(
new java.awt.event.ActionListener() {
385 public void actionPerformed(java.awt.event.ActionEvent evt) {
386 comboBoxOrgNameActionPerformed(evt);
390 org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactNameLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbPointOfContactNameLabel.text"));
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));
395 org.openide.awt.Mnemonics.setLocalizedText(bnNewOrganization,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.bnNewOrganization.text"));
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);
406 org.openide.awt.Mnemonics.setLocalizedText(lbOrganizationNameLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbOrganizationNameLabel.text"));
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));
411 org.openide.awt.Mnemonics.setLocalizedText(lbPointOfContactEmailLabel,
org.openide.util.NbBundle.getMessage(OptionalCasePropertiesPanel.class,
"OptionalCasePropertiesPanel.lbPointOfContactEmailLabel.text"));
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));
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))
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()
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)))
442 orgainizationPanelLayout.setVerticalGroup(
443 orgainizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
444 .addGroup(orgainizationPanelLayout.createSequentialGroup()
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))
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()
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))
477 layout.setVerticalGroup(
478 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
479 .addGroup(layout.createSequentialGroup()
481 .addComponent(casePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
483 .addComponent(examinerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
485 .addComponent(orgainizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
490 private void comboBoxOrgNameActionPerformed(java.awt.event.ActionEvent evt) {
491 @SuppressWarnings(
"unchecked")
492 JComboBox<String> cb = (JComboBox<String>) evt.getSource();
493 String orgName = (String) cb.getSelectedItem();
494 if (null == orgName) {
497 if (
"".equals(orgName)) {
501 for (EamOrganization
org : orgs) {
502 if (
org.getName().equals(orgName)) {
504 lbPointOfContactNameText.setText(selectedOrg.getPocName());
505 lbPointOfContactEmailText.setText(selectedOrg.getPocEmail());
506 lbPointOfContactPhoneText.setText(selectedOrg.getPocPhone());
512 private void bnNewOrganizationActionPerformed(java.awt.event.ActionEvent evt) {
513 ManageOrganizationsDialog dialog =
new ManageOrganizationsDialog();
515 loadOrganizationData();
516 if (dialog.isChanged()) {
517 selectedOrg = dialog.getNewOrg();
518 setCurrentlySelectedOrganization(dialog.getNewOrg().getName());
524 void setCurrentlySelectedOrganization(String orgName) {
525 comboBoxOrgName.setSelectedItem(orgName == null ? EamDbUtil.getDefaultOrgName() : orgName);
529 "OptionalCasePropertiesPanel.errorDialog.emptyCaseNameMessage=No case name entered.",
530 "OptionalCasePropertiesPanel.errorDialog.invalidCaseNameMessage=Case names cannot include the following symbols: \\, /, :, *, ?, \", <, >, |"
532 void saveUpdatedCaseDetails() {
533 if (caseDisplayNameTextField.getText().trim().isEmpty()) {
534 MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_emptyCaseNameMessage());
537 if (!Case.isValidName(caseDisplayNameTextField.getText())) {
538 MessageNotifyUtil.Message.error(Bundle.OptionalCasePropertiesPanel_errorDialog_invalidCaseNameMessage());
542 updateCorrelationCase();
545 private void updateCaseDetails() {
546 if (caseDisplayNameTextField.isVisible()) {
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);
562 private void updateCorrelationCase() {
563 setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
564 if (EamDb.isEnabled()) {
566 EamDb dbManager = EamDb.getInstance();
567 CorrelationCase correlationCase = dbManager.getCase(Case.getCurrentCase());
568 if (caseDisplayNameTextField.isVisible()) {
569 correlationCase.setDisplayName(caseDisplayNameTextField.getText());
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);
581 setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
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;