19 package org.sleuthkit.autopsy.modules.hashdatabase;
21 import java.awt.Dimension;
22 import java.awt.Toolkit;
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;
52 final class HashDbImportDatabaseDialog
extends javax.swing.JDialog {
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;
66 HashDbImportDatabaseDialog() {
67 super((JFrame) WindowManager.getDefault().getMainWindow(),
68 NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.importHashDbMsg"),
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 Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
97 setLocation((screenDimension.width - getSize().width) / 2, (screenDimension.height - getSize().height) / 2);
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));
106 return shortenedPath;
109 private void enableComponents(){
112 if(! EamDb.isEnabled()){
113 centralRepoRadioButton.setEnabled(
false);
114 fileTypeRadioButton.setSelected(
true);
119 boolean isFileType = fileTypeRadioButton.isSelected();
122 lbVersion.setEnabled((! isFileType) && (readOnlyCheckbox.isSelected()));
123 versionTextField.setEnabled((! isFileType) && (readOnlyCheckbox.isSelected()));
125 lbOrg.setEnabled(! isFileType);
126 orgButton.setEnabled(! isFileType);
127 orgComboBox.setEnabled(! isFileType);
128 readOnlyCheckbox.setEnabled(! isFileType);
131 @NbBundle.Messages({
"HashDbImportDatabaseDialog.populateOrgsError.message=Failure loading organizations."})
132 private void populateCombobox() {
133 orgComboBox.removeAllItems();
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());
144 if ((selectedOrg == null) && (!orgs.isEmpty())) {
145 selectedOrg = orgs.get(0);
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);
158 @SuppressWarnings(
"unchecked")
160 private
void initComponents() {
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();
185 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
187 org.openide.awt.Mnemonics.setLocalizedText(okButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.okButton.text"));
188 okButton.addActionListener(
new java.awt.event.ActionListener() {
189 public void actionPerformed(java.awt.event.ActionEvent evt) {
190 okButtonActionPerformed(evt);
194 org.openide.awt.Mnemonics.setLocalizedText(cancelButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.cancelButton.text"));
195 cancelButton.addActionListener(
new java.awt.event.ActionListener() {
196 public void actionPerformed(java.awt.event.ActionEvent evt) {
197 cancelButtonActionPerformed(evt);
201 databasePathTextField.setEditable(
false);
202 databasePathTextField.setText(
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.databasePathTextField.text"));
204 org.openide.awt.Mnemonics.setLocalizedText(openButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.openButton.text"));
205 openButton.addActionListener(
new java.awt.event.ActionListener() {
206 public void actionPerformed(java.awt.event.ActionEvent evt) {
207 openButtonActionPerformed(evt);
211 buttonGroup1.add(knownRadioButton);
212 org.openide.awt.Mnemonics.setLocalizedText(knownRadioButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.knownRadioButton.text"));
213 knownRadioButton.addActionListener(
new java.awt.event.ActionListener() {
214 public void actionPerformed(java.awt.event.ActionEvent evt) {
215 knownRadioButtonActionPerformed(evt);
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"));
222 knownBadRadioButton.addActionListener(
new java.awt.event.ActionListener() {
223 public void actionPerformed(java.awt.event.ActionEvent evt) {
224 knownBadRadioButtonActionPerformed(evt);
228 org.openide.awt.Mnemonics.setLocalizedText(jLabel1,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel1.text"));
230 hashSetNameTextField.setText(
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.hashSetNameTextField.text"));
232 org.openide.awt.Mnemonics.setLocalizedText(jLabel2,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel2.text"));
234 sendIngestMessagesCheckbox.setSelected(
true);
235 org.openide.awt.Mnemonics.setLocalizedText(sendIngestMessagesCheckbox,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.sendIngestMessagesCheckbox.text"));
236 sendIngestMessagesCheckbox.addActionListener(
new java.awt.event.ActionListener() {
237 public void actionPerformed(java.awt.event.ActionEvent evt) {
238 sendIngestMessagesCheckboxActionPerformed(evt);
242 org.openide.awt.Mnemonics.setLocalizedText(jLabel3,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel3.text"));
244 org.openide.awt.Mnemonics.setLocalizedText(lbVersion,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.lbVersion.text"));
246 versionTextField.setText(
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.versionTextField.text"));
248 org.openide.awt.Mnemonics.setLocalizedText(lbOrg,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.lbOrg.text"));
250 orgComboBox.addActionListener(
new java.awt.event.ActionListener() {
251 public void actionPerformed(java.awt.event.ActionEvent evt) {
252 orgComboBoxActionPerformed(evt);
256 org.openide.awt.Mnemonics.setLocalizedText(orgButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.orgButton.text"));
257 orgButton.addActionListener(
new java.awt.event.ActionListener() {
258 public void actionPerformed(java.awt.event.ActionEvent evt) {
259 orgButtonActionPerformed(evt);
263 readOnlyCheckbox.setSelected(
true);
264 org.openide.awt.Mnemonics.setLocalizedText(readOnlyCheckbox,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.readOnlyCheckbox.text"));
265 readOnlyCheckbox.addActionListener(
new java.awt.event.ActionListener() {
266 public void actionPerformed(java.awt.event.ActionEvent evt) {
267 readOnlyCheckboxActionPerformed(evt);
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"));
274 fileTypeRadioButton.addActionListener(
new java.awt.event.ActionListener() {
275 public void actionPerformed(java.awt.event.ActionEvent evt) {
276 fileTypeRadioButtonActionPerformed(evt);
280 storageTypeButtonGroup.add(centralRepoRadioButton);
281 org.openide.awt.Mnemonics.setLocalizedText(centralRepoRadioButton,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.centralRepoRadioButton.text"));
282 centralRepoRadioButton.addActionListener(
new java.awt.event.ActionListener() {
283 public void actionPerformed(java.awt.event.ActionEvent evt) {
284 centralRepoRadioButtonActionPerformed(evt);
288 org.openide.awt.Mnemonics.setLocalizedText(jLabel4,
org.openide.util.NbBundle.getMessage(HashDbImportDatabaseDialog.class,
"HashDbImportDatabaseDialog.jLabel4.text"));
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()
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)
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()
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))
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)
336 .addGroup(layout.createSequentialGroup()
337 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
338 .addComponent(jLabel2)
339 .addComponent(readOnlyCheckbox)
340 .addGroup(layout.createSequentialGroup()
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))))
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))
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))
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))))
400 private void openButtonActionPerformed(java.awt.event.ActionEvent evt) {
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);
405 File hashDbFolder =
new File(lastBaseDirectory);
407 if (!hashDbFolder.exists()) {
408 hashDbFolder.mkdir();
410 fileChooser.setCurrentDirectory(hashDbFolder);
411 if (fileChooser.showOpenDialog(
this) == JFileChooser.APPROVE_OPTION) {
412 File databaseFile = fileChooser.getSelectedFile();
414 selectedFilePath = databaseFile.getCanonicalPath();
415 databasePathTextField.setText(shortenPath(selectedFilePath));
416 hashSetNameTextField.setText(FilenameUtils.removeExtension(databaseFile.getName()));
417 if (hashSetNameTextField.getText().toLowerCase().contains(
"nsrl")) {
418 knownRadioButton.setSelected(
true);
419 knownRadioButtonActionPerformed(null);
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);
424 JOptionPane.showMessageDialog(
this,
425 NbBundle.getMessage(
this.getClass(),
426 "HashDbImportDatabaseDialog.failedToGetDbPathMsg"));
431 private void knownRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
432 sendIngestMessagesCheckbox.setSelected(
false);
433 sendIngestMessagesCheckbox.setEnabled(
false);
436 private void knownBadRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
437 sendIngestMessagesCheckbox.setSelected(
true);
438 sendIngestMessagesCheckbox.setEnabled(
true);
441 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
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."
451 private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
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);
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);
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);
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);
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);
508 if (knownRadioButton.isSelected()) {
509 type = KnownFilesType.KNOWN;
511 type = KnownFilesType.KNOWN_BAD;
514 String errorMessage = NbBundle.getMessage(this.getClass(),
515 "HashDbImportDatabaseDialog.errorMessage.failedToOpenHashDbMsg",
517 if(fileTypeRadioButton.isSelected()){
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,
525 NbBundle.getMessage(this.getClass(),
526 "HashDbImportDatabaseDialog.importHashDbErr"),
527 JOptionPane.ERROR_MESSAGE);
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);
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);
555 if(readOnlyCheckbox.isSelected()){
556 version = versionTextField.getText();
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();
571 private void sendIngestMessagesCheckboxActionPerformed(java.awt.event.ActionEvent evt) {
575 private void fileTypeRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
579 private void centralRepoRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
583 private void orgButtonActionPerformed(java.awt.event.ActionEvent evt) {
584 ManageOrganizationsDialog dialog =
new ManageOrganizationsDialog();
586 if (dialog.isChanged()) {
591 private void orgComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
592 if (null == orgComboBox.getSelectedItem())
return;
593 String orgName = this.orgComboBox.getSelectedItem().toString();
594 for (EamOrganization
org : orgs) {
595 if (
org.getName().equals(orgName)) {
602 private void readOnlyCheckboxActionPerformed(java.awt.event.ActionEvent evt) {
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;