Autopsy  4.5.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
HashDbImportDatabaseDialog.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2011 - 2013 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.modules.hashdatabase;
20 
21 import java.awt.Dimension;
22 import java.awt.Toolkit;
23 import java.io.File;
24 import java.io.IOException;
25 import java.nio.file.Paths;
26 import java.util.List;
27 import java.util.logging.Level;
28 import javax.swing.JFileChooser;
29 import javax.swing.JFrame;
30 import javax.swing.JOptionPane;
31 import javax.swing.filechooser.FileNameExtensionFilter;
32 import org.apache.commons.io.FilenameUtils;
33 import org.openide.util.NbBundle;
34 import org.openide.windows.WindowManager;
46 
52 final class HashDbImportDatabaseDialog extends javax.swing.JDialog {
53 
54  private JFileChooser fileChooser = new JFileChooser();
55  private String selectedFilePath = "";
56  private HashDb selectedHashDb = null;
57  private final static String LAST_FILE_PATH_KEY = "HashDbImport_Path";
58  private EamOrganization selectedOrg = null;
59  private List<EamOrganization> orgs = null;
60 
66  HashDbImportDatabaseDialog() {
67  super((JFrame) WindowManager.getDefault().getMainWindow(),
68  NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.importHashDbMsg"),
69  true);
70  initComponents();
71  enableComponents();
72  initFileChooser();
73  display();
74  }
75 
81  HashDb getHashDatabase() {
82  return selectedHashDb;
83  }
84 
85  private void initFileChooser() {
86  fileChooser.setDragEnabled(false);
87  fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
88  String[] EXTENSION = new String[]{"txt", "kdb", "idx", "hash", "Hash", "hsh"}; //NON-NLS
89  FileNameExtensionFilter filter = new FileNameExtensionFilter(
90  NbBundle.getMessage(this.getClass(), "HashDbImportDatabaseDialog.fileNameExtFilter.text"), EXTENSION);
91  fileChooser.setFileFilter(filter);
92  fileChooser.setMultiSelectionEnabled(false);
93  }
94 
95  private void display() {
96  Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
97  setLocation((screenDimension.width - getSize().width) / 2, (screenDimension.height - getSize().height) / 2);
98  setVisible(true);
99  }
100 
101  private static String shortenPath(String path) {
102  String shortenedPath = path;
103  if (shortenedPath.length() > 50) {
104  shortenedPath = shortenedPath.substring(0, 10 + shortenedPath.substring(10).indexOf(File.separator) + 1) + "..." + shortenedPath.substring((shortenedPath.length() - 20) + shortenedPath.substring(shortenedPath.length() - 20).indexOf(File.separator));
105  }
106  return shortenedPath;
107  }
108 
109  private void enableComponents(){
110 
111 
112  if(! EamDb.isEnabled()){
113  centralRepoRadioButton.setEnabled(false);
114  fileTypeRadioButton.setSelected(true);
115  } else {
116  populateCombobox();
117  }
118 
119  boolean isFileType = fileTypeRadioButton.isSelected();
120 
121  // Central repo only
122  lbVersion.setEnabled((! isFileType) && (readOnlyCheckbox.isSelected()));
123  versionTextField.setEnabled((! isFileType) && (readOnlyCheckbox.isSelected()));
124 
125  lbOrg.setEnabled(! isFileType);
126  orgButton.setEnabled(! isFileType);
127  orgComboBox.setEnabled(! isFileType);
128  readOnlyCheckbox.setEnabled(! isFileType);
129  }
130 
131  @NbBundle.Messages({"HashDbImportDatabaseDialog.populateOrgsError.message=Failure loading organizations."})
132  private void populateCombobox() {
133  orgComboBox.removeAllItems();
134  try {
135  EamDb dbManager = EamDb.getInstance();
136  orgs = dbManager.getOrganizations();
137  orgs.forEach((org) -> {
138  orgComboBox.addItem(org.getName());
139  if(EamDbUtil.isDefaultOrg(org)){
140  orgComboBox.setSelectedItem(org.getName());
141  selectedOrg = org;
142  }
143  });
144  if ((selectedOrg == null) && (!orgs.isEmpty())) {
145  selectedOrg = orgs.get(0);
146  }
147  } catch (EamDbException ex) {
148  JOptionPane.showMessageDialog(null, Bundle.HashDbImportDatabaseDialog_populateOrgsError_message());
149  Logger.getLogger(ImportCentralRepoDbProgressDialog.class.getName()).log(Level.SEVERE, "Failure loading organizations", ex);
150  }
151  }
152 
158  @SuppressWarnings("unchecked")
159  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
160  private void initComponents() {
161 
162  buttonGroup1 = new javax.swing.ButtonGroup();
163  storageTypeButtonGroup = new javax.swing.ButtonGroup();
164  okButton = new javax.swing.JButton();
165  cancelButton = new javax.swing.JButton();
166  databasePathTextField = new javax.swing.JTextField();
167  openButton = new javax.swing.JButton();
168  knownRadioButton = new javax.swing.JRadioButton();
169  knownBadRadioButton = new javax.swing.JRadioButton();
170  jLabel1 = new javax.swing.JLabel();
171  hashSetNameTextField = new javax.swing.JTextField();
172  jLabel2 = new javax.swing.JLabel();
173  sendIngestMessagesCheckbox = new javax.swing.JCheckBox();
174  jLabel3 = new javax.swing.JLabel();
175  lbVersion = new javax.swing.JLabel();
176  versionTextField = new javax.swing.JTextField();
177  lbOrg = new javax.swing.JLabel();
178  orgComboBox = new javax.swing.JComboBox<>();
179  orgButton = new javax.swing.JButton();
180  readOnlyCheckbox = new javax.swing.JCheckBox();
181  fileTypeRadioButton = new javax.swing.JRadioButton();
182  centralRepoRadioButton = new javax.swing.JRadioButton();
183  jLabel4 = new javax.swing.JLabel();
184 
185  setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
186 
187  org.openide.awt.Mnemonics.setLocalizedText(okButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.okButton.text")); // NOI18N
188  okButton.addActionListener(new java.awt.event.ActionListener() {
189  public void actionPerformed(java.awt.event.ActionEvent evt) {
190  okButtonActionPerformed(evt);
191  }
192  });
193 
194  org.openide.awt.Mnemonics.setLocalizedText(cancelButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.cancelButton.text")); // NOI18N
195  cancelButton.addActionListener(new java.awt.event.ActionListener() {
196  public void actionPerformed(java.awt.event.ActionEvent evt) {
197  cancelButtonActionPerformed(evt);
198  }
199  });
200 
201  databasePathTextField.setEditable(false);
202  databasePathTextField.setText(org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.databasePathTextField.text")); // NOI18N
203 
204  org.openide.awt.Mnemonics.setLocalizedText(openButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.openButton.text")); // NOI18N
205  openButton.addActionListener(new java.awt.event.ActionListener() {
206  public void actionPerformed(java.awt.event.ActionEvent evt) {
207  openButtonActionPerformed(evt);
208  }
209  });
210 
211  buttonGroup1.add(knownRadioButton);
212  org.openide.awt.Mnemonics.setLocalizedText(knownRadioButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.knownRadioButton.text")); // NOI18N
213  knownRadioButton.addActionListener(new java.awt.event.ActionListener() {
214  public void actionPerformed(java.awt.event.ActionEvent evt) {
215  knownRadioButtonActionPerformed(evt);
216  }
217  });
218 
219  buttonGroup1.add(knownBadRadioButton);
220  knownBadRadioButton.setSelected(true);
221  org.openide.awt.Mnemonics.setLocalizedText(knownBadRadioButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.knownBadRadioButton.text")); // NOI18N
222  knownBadRadioButton.addActionListener(new java.awt.event.ActionListener() {
223  public void actionPerformed(java.awt.event.ActionEvent evt) {
224  knownBadRadioButtonActionPerformed(evt);
225  }
226  });
227 
228  org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.jLabel1.text")); // NOI18N
229 
230  hashSetNameTextField.setText(org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.hashSetNameTextField.text")); // NOI18N
231 
232  org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.jLabel2.text")); // NOI18N
233 
234  sendIngestMessagesCheckbox.setSelected(true);
235  org.openide.awt.Mnemonics.setLocalizedText(sendIngestMessagesCheckbox, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.sendIngestMessagesCheckbox.text")); // NOI18N
236  sendIngestMessagesCheckbox.addActionListener(new java.awt.event.ActionListener() {
237  public void actionPerformed(java.awt.event.ActionEvent evt) {
238  sendIngestMessagesCheckboxActionPerformed(evt);
239  }
240  });
241 
242  org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.jLabel3.text")); // NOI18N
243 
244  org.openide.awt.Mnemonics.setLocalizedText(lbVersion, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.lbVersion.text")); // NOI18N
245 
246  versionTextField.setText(org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.versionTextField.text")); // NOI18N
247 
248  org.openide.awt.Mnemonics.setLocalizedText(lbOrg, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.lbOrg.text")); // NOI18N
249 
250  orgComboBox.addActionListener(new java.awt.event.ActionListener() {
251  public void actionPerformed(java.awt.event.ActionEvent evt) {
252  orgComboBoxActionPerformed(evt);
253  }
254  });
255 
256  org.openide.awt.Mnemonics.setLocalizedText(orgButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.orgButton.text")); // NOI18N
257  orgButton.addActionListener(new java.awt.event.ActionListener() {
258  public void actionPerformed(java.awt.event.ActionEvent evt) {
259  orgButtonActionPerformed(evt);
260  }
261  });
262 
263  readOnlyCheckbox.setSelected(true);
264  org.openide.awt.Mnemonics.setLocalizedText(readOnlyCheckbox, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.readOnlyCheckbox.text")); // NOI18N
265  readOnlyCheckbox.addActionListener(new java.awt.event.ActionListener() {
266  public void actionPerformed(java.awt.event.ActionEvent evt) {
267  readOnlyCheckboxActionPerformed(evt);
268  }
269  });
270 
271  storageTypeButtonGroup.add(fileTypeRadioButton);
272  fileTypeRadioButton.setSelected(true);
273  org.openide.awt.Mnemonics.setLocalizedText(fileTypeRadioButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.fileTypeRadioButton.text")); // NOI18N
274  fileTypeRadioButton.addActionListener(new java.awt.event.ActionListener() {
275  public void actionPerformed(java.awt.event.ActionEvent evt) {
276  fileTypeRadioButtonActionPerformed(evt);
277  }
278  });
279 
280  storageTypeButtonGroup.add(centralRepoRadioButton);
281  org.openide.awt.Mnemonics.setLocalizedText(centralRepoRadioButton, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.centralRepoRadioButton.text")); // NOI18N
282  centralRepoRadioButton.addActionListener(new java.awt.event.ActionListener() {
283  public void actionPerformed(java.awt.event.ActionEvent evt) {
284  centralRepoRadioButtonActionPerformed(evt);
285  }
286  });
287 
288  org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class, "HashDbImportDatabaseDialog.jLabel4.text")); // NOI18N
289 
290  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
291  getContentPane().setLayout(layout);
292  layout.setHorizontalGroup(
293  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
294  .addGroup(layout.createSequentialGroup()
295  .addContainerGap()
296  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
297  .addGroup(layout.createSequentialGroup()
298  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
299  .addComponent(jLabel3)
300  .addComponent(jLabel4))
301  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
302  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
303  .addGroup(layout.createSequentialGroup()
304  .addComponent(fileTypeRadioButton)
305  .addGap(26, 26, 26)
306  .addComponent(centralRepoRadioButton)
307  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
308  .addGroup(layout.createSequentialGroup()
309  .addComponent(databasePathTextField)
310  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
311  .addComponent(openButton)
312  .addContainerGap())))
313  .addGroup(layout.createSequentialGroup()
314  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
315  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
316  .addComponent(sendIngestMessagesCheckbox)
317  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
318  .addComponent(okButton))
319  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
320  .addComponent(lbOrg)
321  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
322  .addComponent(orgComboBox, 0, 121, Short.MAX_VALUE)
323  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
324  .addComponent(orgButton))
325  .addGroup(layout.createSequentialGroup()
326  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
327  .addComponent(jLabel1)
328  .addComponent(lbVersion))
329  .addGap(40, 40, 40)
330  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
331  .addComponent(versionTextField)
332  .addComponent(hashSetNameTextField))))
333  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
334  .addComponent(cancelButton)
335  .addContainerGap())
336  .addGroup(layout.createSequentialGroup()
337  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
338  .addComponent(jLabel2)
339  .addComponent(readOnlyCheckbox)
340  .addGroup(layout.createSequentialGroup()
341  .addGap(19, 19, 19)
342  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
343  .addComponent(knownRadioButton)
344  .addComponent(knownBadRadioButton))))
345  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
346  );
347 
348  layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okButton});
349 
350  layout.setVerticalGroup(
351  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
352  .addGroup(layout.createSequentialGroup()
353  .addContainerGap()
354  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
355  .addComponent(databasePathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
356  .addComponent(jLabel3)
357  .addComponent(openButton))
358  .addGap(18, 18, 18)
359  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
360  .addGroup(layout.createSequentialGroup()
361  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
362  .addComponent(fileTypeRadioButton)
363  .addComponent(centralRepoRadioButton)
364  .addComponent(jLabel4))
365  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
366  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
367  .addComponent(jLabel1)
368  .addComponent(hashSetNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
369  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
370  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
371  .addComponent(lbVersion)
372  .addComponent(versionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
373  .addGap(5, 5, 5)
374  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
375  .addComponent(orgButton)
376  .addComponent(orgComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
377  .addComponent(lbOrg))
378  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
379  .addComponent(jLabel2)
380  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
381  .addComponent(knownRadioButton)
382  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
383  .addComponent(knownBadRadioButton)
384  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385  .addComponent(readOnlyCheckbox)
386  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
387  .addComponent(sendIngestMessagesCheckbox)
388  .addGap(0, 21, Short.MAX_VALUE))
389  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
390  .addGap(0, 0, Short.MAX_VALUE)
391  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
392  .addComponent(cancelButton)
393  .addComponent(okButton))))
394  .addContainerGap())
395  );
396 
397  pack();
398  }// </editor-fold>//GEN-END:initComponents
399 
400  private void openButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_openButtonActionPerformed
401  String lastBaseDirectory = Paths.get(PlatformUtil.getUserConfigDirectory(), "HashDatabases").toString();
402  if (ModuleSettings.settingExists(ModuleSettings.MAIN_SETTINGS, LAST_FILE_PATH_KEY)) {
403  lastBaseDirectory = ModuleSettings.getConfigSetting(ModuleSettings.MAIN_SETTINGS, LAST_FILE_PATH_KEY);
404  }
405  File hashDbFolder = new File(lastBaseDirectory);
406  // create the folder if it doesn't exist
407  if (!hashDbFolder.exists()) {
408  hashDbFolder.mkdir();
409  }
410  fileChooser.setCurrentDirectory(hashDbFolder);
411  if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
412  File databaseFile = fileChooser.getSelectedFile();
413  try {
414  selectedFilePath = databaseFile.getCanonicalPath();
415  databasePathTextField.setText(shortenPath(selectedFilePath));
416  hashSetNameTextField.setText(FilenameUtils.removeExtension(databaseFile.getName()));
417  if (hashSetNameTextField.getText().toLowerCase().contains("nsrl")) { //NON-NLS
418  knownRadioButton.setSelected(true);
419  knownRadioButtonActionPerformed(null);
420  }
421  ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, LAST_FILE_PATH_KEY, databaseFile.getParent());
422  } catch (IOException ex) {
423  Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.SEVERE, "Failed to get path of selected hash set", ex); //NON-NLS
424  JOptionPane.showMessageDialog(this,
425  NbBundle.getMessage(this.getClass(),
426  "HashDbImportDatabaseDialog.failedToGetDbPathMsg"));
427  }
428  }
429  }//GEN-LAST:event_openButtonActionPerformed
430 
431  private void knownRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_knownRadioButtonActionPerformed
432  sendIngestMessagesCheckbox.setSelected(false);
433  sendIngestMessagesCheckbox.setEnabled(false);
434  }//GEN-LAST:event_knownRadioButtonActionPerformed
435 
436  private void knownBadRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_knownBadRadioButtonActionPerformed
437  sendIngestMessagesCheckbox.setSelected(true);
438  sendIngestMessagesCheckbox.setEnabled(true);
439  }//GEN-LAST:event_knownBadRadioButtonActionPerformed
440 
441  private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
442  this.dispose();
443  }//GEN-LAST:event_cancelButtonActionPerformed
444 
445  @NbBundle.Messages({"HashDbImportDatabaseDialog.missingVersion=A version must be entered",
446  "HashDbImportDatabaseDialog.missingOrg=An organization must be selected",
447  "HashDbImportDatabaseDialog.duplicateName=A hashset with this name and version already exists",
448  "HashDbImportDatabaseDialog.databaseLookupError=Error accessing central repository",
449  "HashDbImportDatabaseDialog.mustEnterHashSetNameMsg=A hash set name must be entered."
450  })
451  private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
452  // Note that the error handlers in this method call return without disposing of the
453  // dialog to allow the user to try again, if desired.
454 
455  if (hashSetNameTextField.getText().isEmpty()) {
456  JOptionPane.showMessageDialog(this,
457  NbBundle.getMessage(this.getClass(),
458  "HashDbImportDatabaseDialog.mustEnterHashSetNameMsg"),
459  NbBundle.getMessage(this.getClass(),
460  "HashDbImportDatabaseDialog.importHashDbErr"),
461  JOptionPane.ERROR_MESSAGE);
462  return;
463  }
464 
465  if(centralRepoRadioButton.isSelected()){
466  if(readOnlyCheckbox.isSelected() && versionTextField.getText().isEmpty()){
467  JOptionPane.showMessageDialog(this,
468  NbBundle.getMessage(this.getClass(),
469  "HashDbImportDatabaseDialog.missingVersion"),
470  NbBundle.getMessage(this.getClass(),
471  "HashDbImportDatabaseDialog.importHashDbErr"),
472  JOptionPane.ERROR_MESSAGE);
473  return;
474  }
475 
476  if(selectedOrg == null){
477  JOptionPane.showMessageDialog(this,
478  NbBundle.getMessage(this.getClass(),
479  "HashDbImportDatabaseDialog.missingOrg"),
480  NbBundle.getMessage(this.getClass(),
481  "HashDbImportDatabaseDialog.importHashDbErr"),
482  JOptionPane.ERROR_MESSAGE);
483  return;
484  }
485  }
486 
487  if (selectedFilePath.isEmpty()) {
488  JOptionPane.showMessageDialog(this,
489  NbBundle.getMessage(this.getClass(),
490  "HashDbImportDatabaseDialog.mustSelectHashDbFilePathMsg"),
491  NbBundle.getMessage(this.getClass(),
492  "HashDbImportDatabaseDialog.importHashDbErr"),
493  JOptionPane.ERROR_MESSAGE);
494  return;
495  }
496  File file = new File(selectedFilePath);
497  if (!file.exists()) {
498  JOptionPane.showMessageDialog(this,
499  NbBundle.getMessage(this.getClass(),
500  "HashDbImportDatabaseDialog.hashDbDoesNotExistMsg"),
501  NbBundle.getMessage(this.getClass(),
502  "HashDbImportDatabaseDialog.importHashDbErr"),
503  JOptionPane.ERROR_MESSAGE);
504  return;
505  }
506 
507  KnownFilesType type;
508  if (knownRadioButton.isSelected()) {
509  type = KnownFilesType.KNOWN;
510  } else {
511  type = KnownFilesType.KNOWN_BAD;
512  }
513 
514  String errorMessage = NbBundle.getMessage(this.getClass(),
515  "HashDbImportDatabaseDialog.errorMessage.failedToOpenHashDbMsg",
516  selectedFilePath);
517  if(fileTypeRadioButton.isSelected()){
518 
519  try {
520  selectedHashDb = HashDbManager.getInstance().addExistingHashDatabaseNoSave(hashSetNameTextField.getText(), selectedFilePath, true, sendIngestMessagesCheckbox.isSelected(), type);
521  } catch (HashDbManagerException ex) {
522  Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.WARNING, errorMessage, ex);
523  JOptionPane.showMessageDialog(this,
524  ex.getMessage(),
525  NbBundle.getMessage(this.getClass(),
526  "HashDbImportDatabaseDialog.importHashDbErr"),
527  JOptionPane.ERROR_MESSAGE);
528  return;
529  }
530  } else {
531 
532  // Check if a hash set with the same name/version already exists
533  try{
534  if(EamDb.getInstance().referenceSetExists(hashSetNameTextField.getText(), versionTextField.getText())){
535  JOptionPane.showMessageDialog(this,
536  NbBundle.getMessage(this.getClass(),
537  "HashDbImportDatabaseDialog.duplicateName"),
538  NbBundle.getMessage(this.getClass(),
539  "HashDbImportDatabaseDialog.importHashDbErr"),
540  JOptionPane.ERROR_MESSAGE);
541  return;
542  }
543  } catch (EamDbException ex){
544  Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.SEVERE, "Error looking up reference set", ex);
545  JOptionPane.showMessageDialog(this,
546  NbBundle.getMessage(this.getClass(),
547  "HashDbImportDatabaseDialog.databaseLookupError"),
548  NbBundle.getMessage(this.getClass(),
549  "HashDbImportDatabaseDialog.importHashDbErr"),
550  JOptionPane.ERROR_MESSAGE);
551  return;
552  }
553 
554  String version;
555  if(readOnlyCheckbox.isSelected()){
556  version = versionTextField.getText();
557  } else {
558  // Editable databases don't have a version
559  version = "";
560  }
561  ImportCentralRepoDbProgressDialog progressDialog = new ImportCentralRepoDbProgressDialog();
562  progressDialog.importFile(hashSetNameTextField.getText(), version,
563  selectedOrg.getOrgID(), true, sendIngestMessagesCheckbox.isSelected(), type,
564  readOnlyCheckbox.isSelected(), selectedFilePath);
565  selectedHashDb = progressDialog.getDatabase();
566  }
567 
568  dispose();
569  }//GEN-LAST:event_okButtonActionPerformed
570 
571  private void sendIngestMessagesCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sendIngestMessagesCheckboxActionPerformed
572  // TODO add your handling code here:
573  }//GEN-LAST:event_sendIngestMessagesCheckboxActionPerformed
574 
575  private void fileTypeRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileTypeRadioButtonActionPerformed
576  enableComponents();
577  }//GEN-LAST:event_fileTypeRadioButtonActionPerformed
578 
579  private void centralRepoRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_centralRepoRadioButtonActionPerformed
580  enableComponents();
581  }//GEN-LAST:event_centralRepoRadioButtonActionPerformed
582 
583  private void orgButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_orgButtonActionPerformed
584  ManageOrganizationsDialog dialog = new ManageOrganizationsDialog();
585  // update the combobox options
586  if (dialog.isChanged()) {
587  populateCombobox();
588  }
589  }//GEN-LAST:event_orgButtonActionPerformed
590 
591  private void orgComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_orgComboBoxActionPerformed
592  if (null == orgComboBox.getSelectedItem()) return;
593  String orgName = this.orgComboBox.getSelectedItem().toString();
594  for (EamOrganization org : orgs) {
595  if (org.getName().equals(orgName)) {
596  selectedOrg = org;
597  return;
598  }
599  }
600  }//GEN-LAST:event_orgComboBoxActionPerformed
601 
602  private void readOnlyCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_readOnlyCheckboxActionPerformed
603  enableComponents();
604  }//GEN-LAST:event_readOnlyCheckboxActionPerformed
605 
606  // Variables declaration - do not modify//GEN-BEGIN:variables
607  private javax.swing.ButtonGroup buttonGroup1;
608  private javax.swing.JButton cancelButton;
609  private javax.swing.JRadioButton centralRepoRadioButton;
610  private javax.swing.JTextField databasePathTextField;
611  private javax.swing.JRadioButton fileTypeRadioButton;
612  private javax.swing.JTextField hashSetNameTextField;
613  private javax.swing.JLabel jLabel1;
614  private javax.swing.JLabel jLabel2;
615  private javax.swing.JLabel jLabel3;
616  private javax.swing.JLabel jLabel4;
617  private javax.swing.JRadioButton knownBadRadioButton;
618  private javax.swing.JRadioButton knownRadioButton;
619  private javax.swing.JLabel lbOrg;
620  private javax.swing.JLabel lbVersion;
621  private javax.swing.JButton okButton;
622  private javax.swing.JButton openButton;
623  private javax.swing.JButton orgButton;
624  private javax.swing.JComboBox<String> orgComboBox;
625  private javax.swing.JCheckBox readOnlyCheckbox;
626  private javax.swing.JCheckBox sendIngestMessagesCheckbox;
627  private javax.swing.ButtonGroup storageTypeButtonGroup;
628  private javax.swing.JTextField versionTextField;
629  // End of variables declaration//GEN-END:variables
630 }

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.