19 package org.sleuthkit.autopsy.modules.hashdatabase;
22 import java.io.IOException;
23 import java.nio.file.Paths;
24 import java.util.List;
25 import java.util.logging.Level;
26 import javax.swing.JFileChooser;
27 import javax.swing.JFrame;
28 import javax.swing.JOptionPane;
29 import javax.swing.filechooser.FileNameExtensionFilter;
30 import org.apache.commons.io.FilenameUtils;
31 import org.openide.util.NbBundle;
32 import org.openide.windows.WindowManager;
50 @SuppressWarnings(
"PMD.SingularField")
51 final class HashDbImportDatabaseDialog extends javax.swing.JDialog {
53 private final JFileChooser fileChooser;
54 private String selectedFilePath =
"";
55 private HashDb selectedHashDb = null;
56 private final static String LAST_FILE_PATH_KEY =
"HashDbImport_Path";
57 private EamOrganization selectedOrg = null;
58 private List<EamOrganization> orgs = null;
65 HashDbImportDatabaseDialog() {
66 super((JFrame) WindowManager.getDefault().getMainWindow(),
67 NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.importHashDbMsg"),
69 this.fileChooser =
new JFileChooser();
81 HashDb getHashDatabase() {
82 return selectedHashDb;
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"};
89 FileNameExtensionFilter filter =
new FileNameExtensionFilter(
90 NbBundle.getMessage(
this.getClass(),
"HashDbImportDatabaseDialog.fileNameExtFilter.text"), EXTENSION);
91 fileChooser.setFileFilter(filter);
92 fileChooser.setMultiSelectionEnabled(
false);
95 private void display() {
96 setLocationRelativeTo(WindowManager.getDefault().getMainWindow());
100 private static String shortenPath(String path) {
101 String shortenedPath = path;
102 if (shortenedPath.length() > 50) {
103 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 return shortenedPath;
108 private void enableComponents(){
111 if(! EamDb.isEnabled()){
112 centralRepoRadioButton.setEnabled(
false);
113 fileTypeRadioButton.setSelected(
true);
118 boolean isFileType = fileTypeRadioButton.isSelected();
121 lbVersion.setEnabled((! isFileType) && (readOnlyCheckbox.isSelected()));
122 versionTextField.setEnabled((! isFileType) && (readOnlyCheckbox.isSelected()));
124 lbOrg.setEnabled(! isFileType);
125 orgButton.setEnabled(! isFileType);
126 orgComboBox.setEnabled(! isFileType);
127 readOnlyCheckbox.setEnabled(! isFileType);
130 @NbBundle.Messages({
"HashDbImportDatabaseDialog.populateOrgsError.message=Failure loading organizations."})
131 private void populateCombobox() {
132 orgComboBox.removeAllItems();
134 EamDb dbManager = EamDb.getInstance();
135 orgs = dbManager.getOrganizations();
136 orgs.forEach((
org) -> {
137 orgComboBox.addItem(
org.getName());
138 if(EamDbUtil.isDefaultOrg(
org)){
139 orgComboBox.setSelectedItem(
org.getName());
143 if ((selectedOrg == null) && (!orgs.isEmpty())) {
144 selectedOrg = orgs.get(0);
146 }
catch (EamDbException ex) {
147 JOptionPane.showMessageDialog(
this, Bundle.HashDbImportDatabaseDialog_populateOrgsError_message());
148 Logger.getLogger(ImportCentralRepoDbProgressDialog.class.getName()).log(Level.SEVERE,
"Failure loading organizations", ex);
157 @SuppressWarnings(
"unchecked")
159 private
void initComponents() {
161 buttonGroup1 =
new javax.swing.ButtonGroup();
162 storageTypeButtonGroup =
new javax.swing.ButtonGroup();
163 okButton =
new javax.swing.JButton();
164 cancelButton =
new javax.swing.JButton();
165 databasePathTextField =
new javax.swing.JTextField();
166 openButton =
new javax.swing.JButton();
167 knownRadioButton =
new javax.swing.JRadioButton();
168 knownBadRadioButton =
new javax.swing.JRadioButton();
169 jLabel1 =
new javax.swing.JLabel();
170 hashSetNameTextField =
new javax.swing.JTextField();
171 jLabel2 =
new javax.swing.JLabel();
172 sendIngestMessagesCheckbox =
new javax.swing.JCheckBox();
173 jLabel3 =
new javax.swing.JLabel();
174 lbVersion =
new javax.swing.JLabel();
175 versionTextField =
new javax.swing.JTextField();
176 lbOrg =
new javax.swing.JLabel();
177 orgComboBox =
new javax.swing.JComboBox<>();
178 orgButton =
new javax.swing.JButton();
179 readOnlyCheckbox =
new javax.swing.JCheckBox();
180 fileTypeRadioButton =
new javax.swing.JRadioButton();
181 centralRepoRadioButton =
new javax.swing.JRadioButton();
182 jLabel4 =
new javax.swing.JLabel();
184 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
186 org.openide.awt.Mnemonics.setLocalizedText(okButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.okButton.text"));
187 okButton.addActionListener(
new java.awt.event.ActionListener() {
188 public void actionPerformed(java.awt.event.ActionEvent evt) {
189 okButtonActionPerformed(evt);
193 org.openide.awt.Mnemonics.setLocalizedText(cancelButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.cancelButton.text"));
194 cancelButton.addActionListener(
new java.awt.event.ActionListener() {
195 public void actionPerformed(java.awt.event.ActionEvent evt) {
196 cancelButtonActionPerformed(evt);
200 databasePathTextField.setEditable(
false);
201 databasePathTextField.setText(
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.databasePathTextField.text"));
203 org.openide.awt.Mnemonics.setLocalizedText(openButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.openButton.text"));
204 openButton.addActionListener(
new java.awt.event.ActionListener() {
205 public void actionPerformed(java.awt.event.ActionEvent evt) {
206 openButtonActionPerformed(evt);
210 buttonGroup1.add(knownRadioButton);
211 org.openide.awt.Mnemonics.setLocalizedText(knownRadioButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.knownRadioButton.text"));
212 knownRadioButton.addActionListener(
new java.awt.event.ActionListener() {
213 public void actionPerformed(java.awt.event.ActionEvent evt) {
214 knownRadioButtonActionPerformed(evt);
218 buttonGroup1.add(knownBadRadioButton);
219 knownBadRadioButton.setSelected(
true);
220 org.openide.awt.Mnemonics.setLocalizedText(knownBadRadioButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.knownBadRadioButton.text"));
221 knownBadRadioButton.addActionListener(
new java.awt.event.ActionListener() {
222 public void actionPerformed(java.awt.event.ActionEvent evt) {
223 knownBadRadioButtonActionPerformed(evt);
227 org.openide.awt.Mnemonics.setLocalizedText(jLabel1,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel1.text"));
229 hashSetNameTextField.setText(
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.hashSetNameTextField.text"));
231 org.openide.awt.Mnemonics.setLocalizedText(jLabel2,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel2.text"));
233 sendIngestMessagesCheckbox.setSelected(
true);
234 org.openide.awt.Mnemonics.setLocalizedText(sendIngestMessagesCheckbox,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.sendIngestMessagesCheckbox.text"));
235 sendIngestMessagesCheckbox.addActionListener(
new java.awt.event.ActionListener() {
236 public void actionPerformed(java.awt.event.ActionEvent evt) {
237 sendIngestMessagesCheckboxActionPerformed(evt);
241 org.openide.awt.Mnemonics.setLocalizedText(jLabel3,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel3.text"));
243 org.openide.awt.Mnemonics.setLocalizedText(lbVersion,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.lbVersion.text"));
245 versionTextField.setText(
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.versionTextField.text"));
247 org.openide.awt.Mnemonics.setLocalizedText(lbOrg,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.lbOrg.text"));
249 orgComboBox.addActionListener(
new java.awt.event.ActionListener() {
250 public void actionPerformed(java.awt.event.ActionEvent evt) {
251 orgComboBoxActionPerformed(evt);
255 org.openide.awt.Mnemonics.setLocalizedText(orgButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.orgButton.text"));
256 orgButton.addActionListener(
new java.awt.event.ActionListener() {
257 public void actionPerformed(java.awt.event.ActionEvent evt) {
258 orgButtonActionPerformed(evt);
262 readOnlyCheckbox.setSelected(
true);
263 org.openide.awt.Mnemonics.setLocalizedText(readOnlyCheckbox,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.readOnlyCheckbox.text"));
264 readOnlyCheckbox.addActionListener(
new java.awt.event.ActionListener() {
265 public void actionPerformed(java.awt.event.ActionEvent evt) {
266 readOnlyCheckboxActionPerformed(evt);
270 storageTypeButtonGroup.add(fileTypeRadioButton);
271 fileTypeRadioButton.setSelected(
true);
272 org.openide.awt.Mnemonics.setLocalizedText(fileTypeRadioButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.fileTypeRadioButton.text"));
273 fileTypeRadioButton.addActionListener(
new java.awt.event.ActionListener() {
274 public void actionPerformed(java.awt.event.ActionEvent evt) {
275 fileTypeRadioButtonActionPerformed(evt);
279 storageTypeButtonGroup.add(centralRepoRadioButton);
280 org.openide.awt.Mnemonics.setLocalizedText(centralRepoRadioButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.centralRepoRadioButton.text"));
281 centralRepoRadioButton.addActionListener(
new java.awt.event.ActionListener() {
282 public void actionPerformed(java.awt.event.ActionEvent evt) {
283 centralRepoRadioButtonActionPerformed(evt);
287 org.openide.awt.Mnemonics.setLocalizedText(jLabel4,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel4.text"));
289 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(getContentPane());
290 getContentPane().setLayout(layout);
291 layout.setHorizontalGroup(
292 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
293 .addGroup(layout.createSequentialGroup()
295 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
296 .addGroup(layout.createSequentialGroup()
297 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
298 .addComponent(jLabel3)
299 .addComponent(jLabel4))
300 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
301 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
302 .addGroup(layout.createSequentialGroup()
303 .addComponent(fileTypeRadioButton)
305 .addComponent(centralRepoRadioButton)
306 .addGap(0, 0, Short.MAX_VALUE))
307 .addGroup(layout.createSequentialGroup()
308 .addComponent(databasePathTextField)
309 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
310 .addComponent(openButton))))
311 .addGroup(layout.createSequentialGroup()
312 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
313 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
314 .addComponent(sendIngestMessagesCheckbox)
315 .addGap(0, 0, Short.MAX_VALUE))
316 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
318 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
319 .addComponent(orgComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
320 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
321 .addComponent(orgButton))
322 .addGroup(layout.createSequentialGroup()
323 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
324 .addComponent(jLabel1)
325 .addComponent(lbVersion))
327 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
328 .addComponent(versionTextField)
329 .addComponent(hashSetNameTextField)))
330 .addGroup(layout.createSequentialGroup()
331 .addGap(0, 0, Short.MAX_VALUE)
332 .addComponent(okButton)))
333 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
334 .addComponent(cancelButton))
335 .addGroup(layout.createSequentialGroup()
336 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
337 .addComponent(jLabel2)
338 .addComponent(readOnlyCheckbox)
339 .addGroup(layout.createSequentialGroup()
341 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
342 .addComponent(knownRadioButton)
343 .addComponent(knownBadRadioButton))))
344 .addGap(0, 0, Short.MAX_VALUE)))
348 layout.linkSize(javax.swing.SwingConstants.HORIZONTAL,
new java.awt.Component[] {cancelButton, okButton});
350 layout.setVerticalGroup(
351 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
352 .addGroup(layout.createSequentialGroup()
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 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
359 .addGroup(layout.createSequentialGroup()
360 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
361 .addComponent(fileTypeRadioButton)
362 .addComponent(centralRepoRadioButton)
363 .addComponent(jLabel4))
364 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
365 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
366 .addComponent(jLabel1)
367 .addComponent(hashSetNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
368 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
369 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
370 .addComponent(lbVersion)
371 .addComponent(versionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
373 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
374 .addComponent(orgButton)
375 .addComponent(orgComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
376 .addComponent(lbOrg))
377 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
378 .addComponent(jLabel2)
379 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
380 .addComponent(knownRadioButton)
381 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
382 .addComponent(knownBadRadioButton)
383 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
384 .addComponent(readOnlyCheckbox)
385 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
386 .addComponent(sendIngestMessagesCheckbox)
387 .addGap(0, 39, Short.MAX_VALUE))
388 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
389 .addGap(0, 0, Short.MAX_VALUE)
390 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
391 .addComponent(cancelButton)
392 .addComponent(okButton))))
399 private void openButtonActionPerformed(java.awt.event.ActionEvent evt) {
400 String lastBaseDirectory = Paths.get(PlatformUtil.getUserConfigDirectory(),
"HashDatabases").toString();
401 if (ModuleSettings.settingExists(ModuleSettings.MAIN_SETTINGS, LAST_FILE_PATH_KEY)) {
402 lastBaseDirectory = ModuleSettings.getConfigSetting(ModuleSettings.MAIN_SETTINGS, LAST_FILE_PATH_KEY);
404 File hashDbFolder =
new File(lastBaseDirectory);
406 if (!hashDbFolder.exists()) {
407 hashDbFolder.mkdir();
409 fileChooser.setCurrentDirectory(hashDbFolder);
410 if (fileChooser.showOpenDialog(
this) == JFileChooser.APPROVE_OPTION) {
411 File databaseFile = fileChooser.getSelectedFile();
413 selectedFilePath = databaseFile.getCanonicalPath();
414 databasePathTextField.setText(shortenPath(selectedFilePath));
415 hashSetNameTextField.setText(FilenameUtils.removeExtension(databaseFile.getName()));
416 if (hashSetNameTextField.getText().toLowerCase().contains(
"nsrl")) {
417 knownRadioButton.setSelected(
true);
418 knownRadioButtonActionPerformed(null);
420 ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, LAST_FILE_PATH_KEY, databaseFile.getParent());
421 }
catch (IOException ex) {
422 Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.SEVERE,
"Failed to get path of selected hash set", ex);
423 JOptionPane.showMessageDialog(
this,
424 NbBundle.getMessage(
this.getClass(),
425 "HashDbImportDatabaseDialog.failedToGetDbPathMsg"));
430 private void knownRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
431 sendIngestMessagesCheckbox.setSelected(
false);
432 sendIngestMessagesCheckbox.setEnabled(
false);
435 private void knownBadRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
436 sendIngestMessagesCheckbox.setSelected(
true);
437 sendIngestMessagesCheckbox.setEnabled(
true);
440 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
444 @NbBundle.Messages({
"HashDbImportDatabaseDialog.missingVersion=A version must be entered",
445 "HashDbImportDatabaseDialog.missingOrg=An organization must be selected",
446 "HashDbImportDatabaseDialog.duplicateName=A hashset with this name and version already exists",
447 "HashDbImportDatabaseDialog.databaseLookupError=Error accessing central repository",
448 "HashDbImportDatabaseDialog.mustEnterHashSetNameMsg=A hash set name must be entered."
450 private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
454 if (hashSetNameTextField.getText().isEmpty()) {
455 JOptionPane.showMessageDialog(
this,
456 NbBundle.getMessage(
this.getClass(),
457 "HashDbImportDatabaseDialog.mustEnterHashSetNameMsg"),
458 NbBundle.getMessage(
this.getClass(),
459 "HashDbImportDatabaseDialog.importHashDbErr"),
460 JOptionPane.ERROR_MESSAGE);
464 if(centralRepoRadioButton.isSelected()){
465 if(readOnlyCheckbox.isSelected() && versionTextField.getText().isEmpty()){
466 JOptionPane.showMessageDialog(
this,
467 NbBundle.getMessage(
this.getClass(),
468 "HashDbImportDatabaseDialog.missingVersion"),
469 NbBundle.getMessage(
this.getClass(),
470 "HashDbImportDatabaseDialog.importHashDbErr"),
471 JOptionPane.ERROR_MESSAGE);
475 if(selectedOrg == null){
476 JOptionPane.showMessageDialog(
this,
477 NbBundle.getMessage(
this.getClass(),
478 "HashDbImportDatabaseDialog.missingOrg"),
479 NbBundle.getMessage(
this.getClass(),
480 "HashDbImportDatabaseDialog.importHashDbErr"),
481 JOptionPane.ERROR_MESSAGE);
486 if (selectedFilePath.isEmpty()) {
487 JOptionPane.showMessageDialog(
this,
488 NbBundle.getMessage(
this.getClass(),
489 "HashDbImportDatabaseDialog.mustSelectHashDbFilePathMsg"),
490 NbBundle.getMessage(
this.getClass(),
491 "HashDbImportDatabaseDialog.importHashDbErr"),
492 JOptionPane.ERROR_MESSAGE);
495 File file =
new File(selectedFilePath);
496 if (!file.exists()) {
497 JOptionPane.showMessageDialog(
this,
498 NbBundle.getMessage(
this.getClass(),
499 "HashDbImportDatabaseDialog.hashDbDoesNotExistMsg"),
500 NbBundle.getMessage(
this.getClass(),
501 "HashDbImportDatabaseDialog.importHashDbErr"),
502 JOptionPane.ERROR_MESSAGE);
507 if (knownRadioButton.isSelected()) {
508 type = KnownFilesType.KNOWN;
510 type = KnownFilesType.KNOWN_BAD;
513 String errorMessage = NbBundle.getMessage(this.getClass(),
514 "HashDbImportDatabaseDialog.errorMessage.failedToOpenHashDbMsg",
516 if(fileTypeRadioButton.isSelected()){
519 selectedHashDb = HashDbManager.getInstance().addExistingHashDatabaseNoSave(hashSetNameTextField.getText(), selectedFilePath,
true, sendIngestMessagesCheckbox.isSelected(), type);
520 }
catch (HashDbManagerException ex) {
521 Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.WARNING, errorMessage, ex);
522 JOptionPane.showMessageDialog(
this,
524 NbBundle.getMessage(this.getClass(),
525 "HashDbImportDatabaseDialog.importHashDbErr"),
526 JOptionPane.ERROR_MESSAGE);
533 if(EamDb.getInstance().referenceSetExists(hashSetNameTextField.getText(), versionTextField.getText())){
534 JOptionPane.showMessageDialog(
this,
535 NbBundle.getMessage(
this.getClass(),
536 "HashDbImportDatabaseDialog.duplicateName"),
537 NbBundle.getMessage(
this.getClass(),
538 "HashDbImportDatabaseDialog.importHashDbErr"),
539 JOptionPane.ERROR_MESSAGE);
542 }
catch (EamDbException ex){
543 Logger.getLogger(HashDbImportDatabaseDialog.class.getName()).log(Level.SEVERE,
"Error looking up reference set", ex);
544 JOptionPane.showMessageDialog(
this,
545 NbBundle.getMessage(
this.getClass(),
546 "HashDbImportDatabaseDialog.databaseLookupError"),
547 NbBundle.getMessage(
this.getClass(),
548 "HashDbImportDatabaseDialog.importHashDbErr"),
549 JOptionPane.ERROR_MESSAGE);
554 if(readOnlyCheckbox.isSelected()){
555 version = versionTextField.getText();
560 ImportCentralRepoDbProgressDialog progressDialog =
new ImportCentralRepoDbProgressDialog();
561 progressDialog.importFile(hashSetNameTextField.getText(), version,
562 selectedOrg.getOrgID(),
true, sendIngestMessagesCheckbox.isSelected(), type,
563 readOnlyCheckbox.isSelected(), selectedFilePath);
564 selectedHashDb = progressDialog.getDatabase();
570 private void sendIngestMessagesCheckboxActionPerformed(java.awt.event.ActionEvent evt) {
574 private void fileTypeRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
578 private void centralRepoRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
582 private void orgButtonActionPerformed(java.awt.event.ActionEvent evt) {
583 ManageOrganizationsDialog dialog =
new ManageOrganizationsDialog();
585 if (dialog.isChanged()) {
590 private void orgComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
591 if (null == orgComboBox.getSelectedItem())
return;
592 String orgName = this.orgComboBox.getSelectedItem().toString();
593 for (EamOrganization
org : orgs) {
594 if (
org.getName().equals(orgName)) {
601 private void readOnlyCheckboxActionPerformed(java.awt.event.ActionEvent evt) {
606 private javax.swing.ButtonGroup buttonGroup1;
607 private javax.swing.JButton cancelButton;
608 private javax.swing.JRadioButton centralRepoRadioButton;
609 private javax.swing.JTextField databasePathTextField;
610 private javax.swing.JRadioButton fileTypeRadioButton;
611 private javax.swing.JTextField hashSetNameTextField;
612 private javax.swing.JLabel jLabel1;
613 private javax.swing.JLabel jLabel2;
614 private javax.swing.JLabel jLabel3;
615 private javax.swing.JLabel jLabel4;
616 private javax.swing.JRadioButton knownBadRadioButton;
617 private javax.swing.JRadioButton knownRadioButton;
618 private javax.swing.JLabel lbOrg;
619 private javax.swing.JLabel lbVersion;
620 private javax.swing.JButton okButton;
621 private javax.swing.JButton openButton;
622 private javax.swing.JButton orgButton;
623 private javax.swing.JComboBox<String> orgComboBox;
624 private javax.swing.JCheckBox readOnlyCheckbox;
625 private javax.swing.JCheckBox sendIngestMessagesCheckbox;
626 private javax.swing.ButtonGroup storageTypeButtonGroup;
627 private javax.swing.JTextField versionTextField;