Autopsy 4.22.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
ManageCasesDialog.java
Go to the documentation of this file.
1/*
2 * Central Repository
3 *
4 * Copyright 2018-2020 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 */
19package org.sleuthkit.autopsy.centralrepository.optionspanel;
20
21import java.util.ArrayList;
22import java.util.HashMap;
23import java.util.List;
24import java.util.Map;
25import java.util.logging.Level;
26import javax.swing.event.ListSelectionEvent;
27import javax.swing.event.ListSelectionListener;
28import org.openide.windows.WindowManager;
29import org.sleuthkit.autopsy.centralrepository.datamodel.CorrelationCase;
30import org.sleuthkit.autopsy.centralrepository.datamodel.CorrelationDataSource;
31import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoException;
32import org.sleuthkit.autopsy.coreutils.Logger;
33import org.openide.util.NbBundle.Messages;
34import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepository;
35
41final class ManageCasesDialog extends javax.swing.JDialog {
42
43 private static final long serialVersionUID = 1L;
44 private final CasesTableModel casesTableModel = new CasesTableModel();
45 private final DataSourcesTableModel dataSourcesTableModel = new DataSourcesTableModel();
46 private final static Logger logger = Logger.getLogger(ManageCasesDialog.class.getName());
47
51 @SuppressWarnings("PMD.SingularField") // UI widgets cause lots of false positives
52 @Messages({"ManageCasesDialog.title.text=Manage Cases"})
53 private ManageCasesDialog() {
54 super(WindowManager.getDefault().getMainWindow(), Bundle.ManageCasesDialog_title_text(),
55 true);
56 initComponents();
57 try {
58 CentralRepository dbManager = CentralRepository.getInstance();
59 Map<Integer, List<CorrelationDataSource>> dataSourcesByCaseId = new HashMap<>();
60 for (CorrelationDataSource dataSource : dbManager.getDataSources()) {
61 int caseID = dataSource.getCaseID();
62 List<CorrelationDataSource> dataSourceNames = dataSourcesByCaseId.getOrDefault(caseID, new ArrayList<>());
63 dataSourceNames.add(dataSource);
64 dataSourcesByCaseId.put(caseID, dataSourceNames);
65 }
66 for (CorrelationCase eamCase : dbManager.getCases()) {
67 casesTableModel.addEamCase(eamCase, dataSourcesByCaseId.getOrDefault(eamCase.getID(), new ArrayList<>()));
68 }
69 } catch (CentralRepoException ex) {
70 logger.log(Level.SEVERE, "Error getting list of cases from database.", ex); // NON-NLS
71 }
72
73 casesTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
74 @Override
75 public void valueChanged(ListSelectionEvent e) {
76 if (!e.getValueIsAdjusting()) {
77 updateSelection();
78 }
79 }
80 });
81 //sort on first column by default
82 casesTable.getRowSorter().toggleSortOrder(0);
83 }
84
89 static void displayManageCasesDialog() {
90 ManageCasesDialog caseInfoDialog = new ManageCasesDialog();
91 caseInfoDialog.setLocationRelativeTo(WindowManager.getDefault().getMainWindow());
92 caseInfoDialog.setVisible(true);
93 }
94
100 @SuppressWarnings("unchecked")
101 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
102 private void initComponents() {
103 java.awt.GridBagConstraints gridBagConstraints;
104
105 casesSplitPane = new javax.swing.JSplitPane();
106 caseInfoPanel = new javax.swing.JPanel();
107 dataSourcesScrollPane = new javax.swing.JScrollPane();
108 dataSourcesTable = new javax.swing.JTable();
109 notesScrollPane = new javax.swing.JScrollPane();
110 notesTextArea = new javax.swing.JTextArea();
111 caseInfoLabel = new javax.swing.JLabel();
112 dataSourcesLabel = new javax.swing.JLabel();
113 notesLabel = new javax.swing.JLabel();
114 orgLabel = new javax.swing.JLabel();
115 caseNumberLabel = new javax.swing.JLabel();
116 examinerEmailLabel = new javax.swing.JLabel();
117 examinerNameLabel = new javax.swing.JLabel();
118 examinerPhoneLabel = new javax.swing.JLabel();
119 orgValueLabel = new javax.swing.JLabel();
120 caseNumberValueLabel = new javax.swing.JLabel();
121 examinerNameValueLabel = new javax.swing.JLabel();
122 examinerEmailValueLabel = new javax.swing.JLabel();
123 examinerPhoneValueLabel = new javax.swing.JLabel();
124 closeButton = new javax.swing.JButton();
125 javax.swing.Box.Filler filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
126 casesPanel = new javax.swing.JPanel();
127 casesScrollPane = new javax.swing.JScrollPane();
128 casesTable = new javax.swing.JTable();
129
130 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
131 setMinimumSize(new java.awt.Dimension(400, 400));
132
133 casesSplitPane.setDividerLocation(380);
134 casesSplitPane.setResizeWeight(0.5);
135
136 caseInfoPanel.setLayout(new java.awt.GridBagLayout());
137
138 dataSourcesTable.setAutoCreateRowSorter(true);
139 dataSourcesTable.setModel(dataSourcesTableModel);
140 dataSourcesTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
141 dataSourcesScrollPane.setViewportView(dataSourcesTable);
142
143 gridBagConstraints = new java.awt.GridBagConstraints();
144 gridBagConstraints.gridx = 0;
145 gridBagConstraints.gridy = 9;
146 gridBagConstraints.gridwidth = 5;
147 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
148 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
149 gridBagConstraints.weightx = 1.0;
150 gridBagConstraints.weighty = 1.0;
151 gridBagConstraints.insets = new java.awt.Insets(7, 22, 0, 12);
152 caseInfoPanel.add(dataSourcesScrollPane, gridBagConstraints);
153
154 notesScrollPane.setBorder(null);
155 notesScrollPane.setMinimumSize(new java.awt.Dimension(25, 54));
156 notesScrollPane.setPreferredSize(new java.awt.Dimension(160, 70));
157
158 notesTextArea.setEditable(false);
159 notesTextArea.setBackground(new java.awt.Color(240, 240, 240));
160 notesTextArea.setColumns(20);
161 notesTextArea.setLineWrap(true);
162 notesTextArea.setRows(3);
163 notesTextArea.setWrapStyleWord(true);
164 notesTextArea.setBorder(null);
165 notesScrollPane.setViewportView(notesTextArea);
166
167 gridBagConstraints = new java.awt.GridBagConstraints();
168 gridBagConstraints.gridx = 0;
169 gridBagConstraints.gridy = 7;
170 gridBagConstraints.gridwidth = 5;
171 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
172 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
173 gridBagConstraints.weightx = 1.0;
174 gridBagConstraints.insets = new java.awt.Insets(7, 28, 0, 12);
175 caseInfoPanel.add(notesScrollPane, gridBagConstraints);
176
177 org.openide.awt.Mnemonics.setLocalizedText(caseInfoLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.caseInfoLabel.text")); // NOI18N
178 caseInfoLabel.setMaximumSize(new java.awt.Dimension(237, 16));
179 caseInfoLabel.setPreferredSize(new java.awt.Dimension(130, 16));
180 gridBagConstraints = new java.awt.GridBagConstraints();
181 gridBagConstraints.gridx = 0;
182 gridBagConstraints.gridy = 0;
183 gridBagConstraints.gridwidth = 4;
184 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
185 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
186 gridBagConstraints.insets = new java.awt.Insets(13, 12, 0, 0);
187 caseInfoPanel.add(caseInfoLabel, gridBagConstraints);
188
189 org.openide.awt.Mnemonics.setLocalizedText(dataSourcesLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.dataSourcesLabel.text")); // NOI18N
190 dataSourcesLabel.setMaximumSize(new java.awt.Dimension(237, 16));
191 dataSourcesLabel.setPreferredSize(new java.awt.Dimension(130, 16));
192 gridBagConstraints = new java.awt.GridBagConstraints();
193 gridBagConstraints.gridx = 0;
194 gridBagConstraints.gridy = 8;
195 gridBagConstraints.gridwidth = 3;
196 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
197 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
198 gridBagConstraints.weightx = 0.1;
199 gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
200 caseInfoPanel.add(dataSourcesLabel, gridBagConstraints);
201
202 org.openide.awt.Mnemonics.setLocalizedText(notesLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.notesLabel.text")); // NOI18N
203 notesLabel.setMaximumSize(new java.awt.Dimension(237, 16));
204 notesLabel.setPreferredSize(new java.awt.Dimension(130, 16));
205 gridBagConstraints = new java.awt.GridBagConstraints();
206 gridBagConstraints.gridx = 0;
207 gridBagConstraints.gridy = 6;
208 gridBagConstraints.gridwidth = 4;
209 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
210 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
211 gridBagConstraints.weightx = 0.1;
212 gridBagConstraints.insets = new java.awt.Insets(7, 18, 0, 0);
213 caseInfoPanel.add(notesLabel, gridBagConstraints);
214
215 org.openide.awt.Mnemonics.setLocalizedText(orgLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.orgLabel.text")); // NOI18N
216 orgLabel.setMaximumSize(new java.awt.Dimension(237, 16));
217 orgLabel.setPreferredSize(new java.awt.Dimension(130, 16));
218 gridBagConstraints = new java.awt.GridBagConstraints();
219 gridBagConstraints.gridx = 0;
220 gridBagConstraints.gridy = 1;
221 gridBagConstraints.gridwidth = 4;
222 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
223 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
224 gridBagConstraints.weightx = 0.1;
225 gridBagConstraints.insets = new java.awt.Insets(7, 18, 0, 0);
226 caseInfoPanel.add(orgLabel, gridBagConstraints);
227
228 org.openide.awt.Mnemonics.setLocalizedText(caseNumberLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.caseNumberLabel.text")); // NOI18N
229 caseNumberLabel.setMaximumSize(new java.awt.Dimension(237, 16));
230 caseNumberLabel.setPreferredSize(new java.awt.Dimension(130, 16));
231 gridBagConstraints = new java.awt.GridBagConstraints();
232 gridBagConstraints.gridx = 0;
233 gridBagConstraints.gridy = 2;
234 gridBagConstraints.gridwidth = 4;
235 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
236 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
237 gridBagConstraints.weightx = 0.1;
238 gridBagConstraints.insets = new java.awt.Insets(7, 18, 0, 0);
239 caseInfoPanel.add(caseNumberLabel, gridBagConstraints);
240
241 org.openide.awt.Mnemonics.setLocalizedText(examinerEmailLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.examinerEmailLabel.text")); // NOI18N
242 examinerEmailLabel.setMaximumSize(new java.awt.Dimension(237, 16));
243 examinerEmailLabel.setPreferredSize(new java.awt.Dimension(130, 16));
244 gridBagConstraints = new java.awt.GridBagConstraints();
245 gridBagConstraints.gridx = 0;
246 gridBagConstraints.gridy = 4;
247 gridBagConstraints.gridwidth = 4;
248 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
249 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
250 gridBagConstraints.weightx = 0.1;
251 gridBagConstraints.insets = new java.awt.Insets(7, 18, 0, 0);
252 caseInfoPanel.add(examinerEmailLabel, gridBagConstraints);
253
254 org.openide.awt.Mnemonics.setLocalizedText(examinerNameLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.examinerNameLabel.text")); // NOI18N
255 examinerNameLabel.setMaximumSize(new java.awt.Dimension(237, 16));
256 examinerNameLabel.setPreferredSize(new java.awt.Dimension(130, 16));
257 gridBagConstraints = new java.awt.GridBagConstraints();
258 gridBagConstraints.gridx = 0;
259 gridBagConstraints.gridy = 3;
260 gridBagConstraints.gridwidth = 4;
261 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
262 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
263 gridBagConstraints.weightx = 0.1;
264 gridBagConstraints.insets = new java.awt.Insets(7, 18, 0, 0);
265 caseInfoPanel.add(examinerNameLabel, gridBagConstraints);
266
267 org.openide.awt.Mnemonics.setLocalizedText(examinerPhoneLabel, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.examinerPhoneLabel.text")); // NOI18N
268 examinerPhoneLabel.setMaximumSize(new java.awt.Dimension(237, 16));
269 examinerPhoneLabel.setPreferredSize(new java.awt.Dimension(130, 16));
270 gridBagConstraints = new java.awt.GridBagConstraints();
271 gridBagConstraints.gridx = 0;
272 gridBagConstraints.gridy = 5;
273 gridBagConstraints.gridwidth = 4;
274 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
275 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
276 gridBagConstraints.weightx = 0.1;
277 gridBagConstraints.insets = new java.awt.Insets(7, 18, 0, 0);
278 caseInfoPanel.add(examinerPhoneLabel, gridBagConstraints);
279 gridBagConstraints = new java.awt.GridBagConstraints();
280 gridBagConstraints.gridx = 4;
281 gridBagConstraints.gridy = 1;
282 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
283 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
284 gridBagConstraints.insets = new java.awt.Insets(7, 7, 0, 12);
285 caseInfoPanel.add(orgValueLabel, gridBagConstraints);
286 gridBagConstraints = new java.awt.GridBagConstraints();
287 gridBagConstraints.gridx = 4;
288 gridBagConstraints.gridy = 2;
289 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
290 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
291 gridBagConstraints.insets = new java.awt.Insets(7, 7, 0, 12);
292 caseInfoPanel.add(caseNumberValueLabel, gridBagConstraints);
293 gridBagConstraints = new java.awt.GridBagConstraints();
294 gridBagConstraints.gridx = 4;
295 gridBagConstraints.gridy = 3;
296 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
297 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
298 gridBagConstraints.insets = new java.awt.Insets(7, 6, 0, 12);
299 caseInfoPanel.add(examinerNameValueLabel, gridBagConstraints);
300 gridBagConstraints = new java.awt.GridBagConstraints();
301 gridBagConstraints.gridx = 4;
302 gridBagConstraints.gridy = 4;
303 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
304 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
305 gridBagConstraints.insets = new java.awt.Insets(9, 6, 0, 12);
306 caseInfoPanel.add(examinerEmailValueLabel, gridBagConstraints);
307 gridBagConstraints = new java.awt.GridBagConstraints();
308 gridBagConstraints.gridx = 4;
309 gridBagConstraints.gridy = 5;
310 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
311 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
312 gridBagConstraints.insets = new java.awt.Insets(7, 6, 0, 12);
313 caseInfoPanel.add(examinerPhoneValueLabel, gridBagConstraints);
314
315 org.openide.awt.Mnemonics.setLocalizedText(closeButton, org.openide.util.NbBundle.getMessage(ManageCasesDialog.class, "ManageCasesDialog.closeButton.text")); // NOI18N
316 closeButton.setMaximumSize(new java.awt.Dimension(140, 23));
317 closeButton.setMinimumSize(new java.awt.Dimension(65, 23));
318 closeButton.setPreferredSize(new java.awt.Dimension(90, 23));
319 closeButton.addActionListener(new java.awt.event.ActionListener() {
320 public void actionPerformed(java.awt.event.ActionEvent evt) {
321 closeButtonActionPerformed(evt);
322 }
323 });
324 gridBagConstraints = new java.awt.GridBagConstraints();
325 gridBagConstraints.gridx = 4;
326 gridBagConstraints.gridy = 10;
327 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
328 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
329 gridBagConstraints.insets = new java.awt.Insets(7, 285, 13, 12);
330 caseInfoPanel.add(closeButton, gridBagConstraints);
331 gridBagConstraints = new java.awt.GridBagConstraints();
332 gridBagConstraints.gridx = 0;
333 gridBagConstraints.gridy = 10;
334 gridBagConstraints.gridwidth = 4;
335 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
336 gridBagConstraints.weightx = 1.0;
337 caseInfoPanel.add(filler1, gridBagConstraints);
338
339 casesSplitPane.setRightComponent(caseInfoPanel);
340
341 casesTable.setAutoCreateRowSorter(true);
342 casesTable.setModel(casesTableModel);
343 casesTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
344 casesScrollPane.setViewportView(casesTable);
345
346 javax.swing.GroupLayout casesPanelLayout = new javax.swing.GroupLayout(casesPanel);
347 casesPanel.setLayout(casesPanelLayout);
348 casesPanelLayout.setHorizontalGroup(
349 casesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
350 .addGroup(casesPanelLayout.createSequentialGroup()
351 .addComponent(casesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE)
352 .addGap(0, 0, 0))
353 );
354 casesPanelLayout.setVerticalGroup(
355 casesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
356 .addGroup(casesPanelLayout.createSequentialGroup()
357 .addComponent(casesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE)
358 .addGap(40, 40, 40))
359 );
360
361 casesSplitPane.setLeftComponent(casesPanel);
362
363 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
364 getContentPane().setLayout(layout);
365 layout.setHorizontalGroup(
366 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
367 .addComponent(casesSplitPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 850, Short.MAX_VALUE)
368 );
369 layout.setVerticalGroup(
370 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
371 .addComponent(casesSplitPane, javax.swing.GroupLayout.DEFAULT_SIZE, 570, Short.MAX_VALUE)
372 );
373
374 pack();
375 }// </editor-fold>//GEN-END:initComponents
376
377 private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
378 this.dispose();
379 }//GEN-LAST:event_closeButtonActionPerformed
380
384 private void updateSelection() {
385 dataSourcesTableModel.clearTable();
386 if (casesTable.getSelectedRow() >= 0 && casesTable.getSelectedRow() < casesTable.getRowCount()) {
387 CaseDataSourcesWrapper caseWrapper = casesTableModel.getEamCase(casesTable.convertRowIndexToModel(casesTable.getSelectedRow()));
388 orgValueLabel.setText(caseWrapper.getOrganizationName());
389 caseNumberValueLabel.setText(caseWrapper.getCaseNumber());
390 examinerNameValueLabel.setText(caseWrapper.getExaminerName());
391 examinerPhoneValueLabel.setText(caseWrapper.getExaminerPhone());
392 examinerEmailValueLabel.setText(caseWrapper.getExaminerEmail());
393 notesTextArea.setText(caseWrapper.getNotes());
394 dataSourcesTableModel.addDataSources(caseWrapper.getDataSources());
395 } else {
396 orgValueLabel.setText("");
397 caseNumberValueLabel.setText("");
398 examinerNameValueLabel.setText("");
399 examinerPhoneValueLabel.setText("");
400 examinerEmailValueLabel.setText("");
401 notesTextArea.setText("");
402 }
403 }
404
405 // Variables declaration - do not modify//GEN-BEGIN:variables
406 private javax.swing.JLabel caseInfoLabel;
407 private javax.swing.JPanel caseInfoPanel;
408 private javax.swing.JLabel caseNumberLabel;
409 private javax.swing.JLabel caseNumberValueLabel;
410 private javax.swing.JPanel casesPanel;
411 private javax.swing.JScrollPane casesScrollPane;
412 private javax.swing.JSplitPane casesSplitPane;
413 private javax.swing.JTable casesTable;
414 private javax.swing.JButton closeButton;
415 private javax.swing.JLabel dataSourcesLabel;
416 private javax.swing.JScrollPane dataSourcesScrollPane;
417 private javax.swing.JTable dataSourcesTable;
418 private javax.swing.JLabel examinerEmailLabel;
419 private javax.swing.JLabel examinerEmailValueLabel;
420 private javax.swing.JLabel examinerNameLabel;
421 private javax.swing.JLabel examinerNameValueLabel;
422 private javax.swing.JLabel examinerPhoneLabel;
423 private javax.swing.JLabel examinerPhoneValueLabel;
424 private javax.swing.JLabel notesLabel;
425 private javax.swing.JScrollPane notesScrollPane;
426 private javax.swing.JTextArea notesTextArea;
427 private javax.swing.JLabel orgLabel;
428 private javax.swing.JLabel orgValueLabel;
429 // End of variables declaration//GEN-END:variables
430}

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.