Autopsy  4.5.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
GlobalSettingsPanel.java
Go to the documentation of this file.
1 /*
2  * Central Repository
3  *
4  * Copyright 2015-2017 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.centralrepository.optionspanel;
20 
21 import java.awt.Cursor;
23 import java.beans.PropertyChangeEvent;
24 import java.beans.PropertyChangeListener;
25 import javax.swing.JOptionPane;
26 import javax.swing.SwingUtilities;
27 import org.netbeans.spi.options.OptionsPanelController;
28 import org.openide.util.NbBundle;
29 import org.openide.util.NbBundle.Messages;
39 
43 public final class GlobalSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
44 
45  private static final long serialVersionUID = 1L;
46  private static final Logger LOGGER = Logger.getLogger(GlobalSettingsPanel.class.getName());
47 
49 
54  ingestJobEventListener = new IngestJobEventPropertyChangeListener();
55 
59  }
60 
61  @Messages({"GlobalSettingsPanel.title=Central Repository Settings",
62  "GlobalSettingsPanel.cbUseCentralRepo.text=Use a central repository",
63  "GlobalSettingsPanel.pnTagManagement.border.title=Tags",
64  "GlobalSettingsPanel.pnCorrelationProperties.border.title=Correlation Properties",
65  "GlobalSettingsPanel.lbCentralRepository.text=A central repository allows you to correlate files and results between cases.",
66  "GlobalSettingsPanel.manageTagsTextArea.text=Configure which tag names are associated with notable items. "
67  + "When these tags are used, the file or result will be recorded in the central repository. "
68  + "If that file or result is seen again in future cases, it will be flagged.",
69  "GlobalSettingsPanel.correlationPropertiesTextArea.text=Choose which file and result properties to store in the central repository for later correlation.",
70  "GlobalSettingsPanel.organizationPanel.border.title=Organizations",
71  "GlobalSettingsPanel.manageOrganizationButton.text=Manage Organizations",
72  "GlobalSettingsPanel.organizationTextArea.text=Organization information can be tracked in the central repository"
73  })
74 
75  private void customizeComponents() {
76  setName(Bundle.GlobalSettingsPanel_title());
77  }
78 
79  private void addIngestJobEventsListener() {
80  IngestManager.getInstance().addIngestJobEventListener(ingestJobEventListener);
82  }
83 
84  @Messages({"GlobalSettingsPanel.updateFailed.title=Update failed",
85  "GlobalSettingsPanel.updateFailed.message=Failed to update database. Central repository has been disabled."
86  })
87  private void updateDatabase(){
88 
89  if(EamDbPlatformEnum.getSelectedPlatform().equals(DISABLED)){
90  return;
91  }
92  setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
93 
94  try {
95  boolean result = EamDbUtil.upgradeDatabase();
96  setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
97  if(! result){
98  JOptionPane.showMessageDialog(null,
99  NbBundle.getMessage(this.getClass(),
100  "GlobalSettingsPanel.updateFailed.message"),
101  NbBundle.getMessage(this.getClass(),
102  "GlobalSettingsPanel.updateFailed.title"),
103  JOptionPane.WARNING_MESSAGE);
104  }
105  } finally {
106  setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
107  }
108  }
109 
115  @SuppressWarnings("unchecked")
116  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
117  private void initComponents() {
118 
119  pnDatabaseConfiguration = new javax.swing.JPanel();
120  lbDbPlatformTypeLabel = new javax.swing.JLabel();
121  lbDbNameLabel = new javax.swing.JLabel();
122  lbDbLocationLabel = new javax.swing.JLabel();
123  bnDbConfigure = new javax.swing.JButton();
124  lbDbPlatformValue = new javax.swing.JLabel();
125  lbDbNameValue = new javax.swing.JLabel();
126  lbDbLocationValue = new javax.swing.JLabel();
127  cbUseCentralRepo = new javax.swing.JCheckBox();
128  tbOops = new javax.swing.JTextField();
129  pnCorrelationProperties = new javax.swing.JPanel();
130  bnManageTypes = new javax.swing.JButton();
131  correlationPropertiesScrollPane = new javax.swing.JScrollPane();
132  correlationPropertiesTextArea = new javax.swing.JTextArea();
133  lbCentralRepository = new javax.swing.JLabel();
134  organizationPanel = new javax.swing.JPanel();
135  manageOrganizationButton = new javax.swing.JButton();
136  organizationScrollPane = new javax.swing.JScrollPane();
137  organizationTextArea = new javax.swing.JTextArea();
138 
139  setName(""); // NOI18N
140 
141  pnDatabaseConfiguration.setBorder(javax.swing.BorderFactory.createTitledBorder(null, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.pnDatabaseConfiguration.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
142 
143  org.openide.awt.Mnemonics.setLocalizedText(lbDbPlatformTypeLabel, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbDbPlatformTypeLabel.text")); // NOI18N
144 
145  org.openide.awt.Mnemonics.setLocalizedText(lbDbNameLabel, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbDbNameLabel.text")); // NOI18N
146 
147  org.openide.awt.Mnemonics.setLocalizedText(lbDbLocationLabel, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbDbLocationLabel.text")); // NOI18N
148 
149  org.openide.awt.Mnemonics.setLocalizedText(bnDbConfigure, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.bnDbConfigure.text")); // NOI18N
150  bnDbConfigure.addActionListener(new java.awt.event.ActionListener() {
151  public void actionPerformed(java.awt.event.ActionEvent evt) {
153  }
154  });
155 
156  javax.swing.GroupLayout pnDatabaseConfigurationLayout = new javax.swing.GroupLayout(pnDatabaseConfiguration);
157  pnDatabaseConfiguration.setLayout(pnDatabaseConfigurationLayout);
158  pnDatabaseConfigurationLayout.setHorizontalGroup(
159  pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
160  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
161  .addContainerGap()
162  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
163  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
164  .addComponent(bnDbConfigure)
165  .addContainerGap())
166  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
167  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
168  .addComponent(lbDbPlatformTypeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
169  .addComponent(lbDbNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
170  .addComponent(lbDbLocationLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
171  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
172  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
173  .addComponent(lbDbNameValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
174  .addComponent(lbDbPlatformValue, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
175  .addComponent(lbDbLocationValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))
176  );
177  pnDatabaseConfigurationLayout.setVerticalGroup(
178  pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
179  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
180  .addGap(7, 7, 7)
181  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
182  .addComponent(lbDbPlatformTypeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
183  .addComponent(lbDbPlatformValue, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
184  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
185  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
186  .addComponent(lbDbNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
187  .addComponent(lbDbNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
188  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
189  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
190  .addComponent(lbDbLocationLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
191  .addComponent(lbDbLocationValue, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
192  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
193  .addComponent(bnDbConfigure)
194  .addGap(8, 8, 8))
195  );
196 
197  org.openide.awt.Mnemonics.setLocalizedText(cbUseCentralRepo, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.cbUseCentralRepo.text")); // NOI18N
198  cbUseCentralRepo.addActionListener(new java.awt.event.ActionListener() {
199  public void actionPerformed(java.awt.event.ActionEvent evt) {
201  }
202  });
203 
204  tbOops.setEditable(false);
205  tbOops.setFont(tbOops.getFont().deriveFont(tbOops.getFont().getStyle() | java.awt.Font.BOLD, 12));
206  tbOops.setText(org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.tbOops.text")); // NOI18N
207  tbOops.setBorder(null);
208 
209  pnCorrelationProperties.setBorder(javax.swing.BorderFactory.createTitledBorder(null, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.pnCorrelationProperties.border.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
210  pnCorrelationProperties.setPreferredSize(new java.awt.Dimension(674, 93));
211 
212  org.openide.awt.Mnemonics.setLocalizedText(bnManageTypes, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.bnManageProperties.text")); // NOI18N
213  bnManageTypes.addActionListener(new java.awt.event.ActionListener() {
214  public void actionPerformed(java.awt.event.ActionEvent evt) {
216  }
217  });
218 
219  correlationPropertiesScrollPane.setBorder(null);
220 
221  correlationPropertiesTextArea.setEditable(false);
222  correlationPropertiesTextArea.setBackground(new java.awt.Color(240, 240, 240));
223  correlationPropertiesTextArea.setColumns(20);
224  correlationPropertiesTextArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
225  correlationPropertiesTextArea.setLineWrap(true);
227  correlationPropertiesTextArea.setText(org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.correlationPropertiesTextArea.text")); // NOI18N
228  correlationPropertiesTextArea.setToolTipText("");
229  correlationPropertiesTextArea.setWrapStyleWord(true);
230  correlationPropertiesTextArea.setBorder(null);
232 
233  javax.swing.GroupLayout pnCorrelationPropertiesLayout = new javax.swing.GroupLayout(pnCorrelationProperties);
234  pnCorrelationProperties.setLayout(pnCorrelationPropertiesLayout);
235  pnCorrelationPropertiesLayout.setHorizontalGroup(
236  pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
237  .addGroup(pnCorrelationPropertiesLayout.createSequentialGroup()
238  .addContainerGap()
239  .addGroup(pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
240  .addComponent(correlationPropertiesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 642, Short.MAX_VALUE)
241  .addGroup(pnCorrelationPropertiesLayout.createSequentialGroup()
242  .addComponent(bnManageTypes)
243  .addGap(0, 0, Short.MAX_VALUE)))
244  .addContainerGap())
245  );
246  pnCorrelationPropertiesLayout.setVerticalGroup(
247  pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
248  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnCorrelationPropertiesLayout.createSequentialGroup()
249  .addGap(7, 7, 7)
250  .addComponent(correlationPropertiesScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
251  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
252  .addComponent(bnManageTypes)
253  .addGap(8, 8, 8))
254  );
255 
256  org.openide.awt.Mnemonics.setLocalizedText(lbCentralRepository, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbCentralRepository.text")); // NOI18N
257 
258  organizationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.organizationPanel.border.title"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 12))); // NOI18N
259 
260  org.openide.awt.Mnemonics.setLocalizedText(manageOrganizationButton, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.manageOrganizationButton.text")); // NOI18N
261  manageOrganizationButton.addActionListener(new java.awt.event.ActionListener() {
262  public void actionPerformed(java.awt.event.ActionEvent evt) {
264  }
265  });
266 
267  organizationScrollPane.setBorder(null);
268 
269  organizationTextArea.setEditable(false);
270  organizationTextArea.setBackground(new java.awt.Color(240, 240, 240));
271  organizationTextArea.setColumns(20);
272  organizationTextArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
273  organizationTextArea.setLineWrap(true);
274  organizationTextArea.setRows(2);
275  organizationTextArea.setText(org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.organizationTextArea.text")); // NOI18N
276  organizationTextArea.setWrapStyleWord(true);
277  organizationTextArea.setBorder(null);
279 
280  javax.swing.GroupLayout organizationPanelLayout = new javax.swing.GroupLayout(organizationPanel);
281  organizationPanel.setLayout(organizationPanelLayout);
282  organizationPanelLayout.setHorizontalGroup(
283  organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
284  .addGroup(organizationPanelLayout.createSequentialGroup()
285  .addContainerGap()
286  .addGroup(organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
287  .addComponent(organizationScrollPane)
288  .addGroup(organizationPanelLayout.createSequentialGroup()
289  .addComponent(manageOrganizationButton)
290  .addGap(0, 0, Short.MAX_VALUE)))
291  .addContainerGap())
292  );
293  organizationPanelLayout.setVerticalGroup(
294  organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
295  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, organizationPanelLayout.createSequentialGroup()
296  .addContainerGap()
297  .addComponent(organizationScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
298  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
299  .addComponent(manageOrganizationButton)
300  .addGap(8, 8, 8))
301  );
302 
303  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
304  this.setLayout(layout);
305  layout.setHorizontalGroup(
306  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
307  .addGroup(layout.createSequentialGroup()
308  .addContainerGap()
309  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
310  .addComponent(tbOops, javax.swing.GroupLayout.Alignment.TRAILING)
311  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
312  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
313  .addComponent(organizationPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
314  .addComponent(lbCentralRepository, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
315  .addComponent(pnCorrelationProperties, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
316  .addComponent(pnDatabaseConfiguration, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
317  .addComponent(cbUseCentralRepo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE))
318  .addContainerGap())))
319  );
320  layout.setVerticalGroup(
321  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
322  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
323  .addComponent(lbCentralRepository)
324  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
325  .addComponent(cbUseCentralRepo)
326  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
327  .addComponent(pnDatabaseConfiguration, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
328  .addGap(0, 0, 0)
329  .addComponent(pnCorrelationProperties, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
330  .addGap(0, 0, 0)
331  .addComponent(organizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
332  .addGap(0, 0, 0)
333  .addComponent(tbOops, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
334  .addContainerGap())
335  );
336  }// </editor-fold>//GEN-END:initComponents
337 
338  private void bnManageTypesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnManageTypesActionPerformed
339  store();
340  ManageCorrelationPropertiesDialog dialog = new ManageCorrelationPropertiesDialog();
341  firePropertyChange(OptionsPanelController.PROP_VALID, null, null);
342  }//GEN-LAST:event_bnManageTypesActionPerformed
343 
344  private void bnDbConfigureActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnDbConfigureActionPerformed
345  store();
347  updateDatabase();
348  load(); // reload db settings content and update buttons
349  if (dialog.wasConfigurationChanged()) {
350  firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
351  }
352  }//GEN-LAST:event_bnDbConfigureActionPerformed
353 
354  private void cbUseCentralRepoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbUseCentralRepoActionPerformed
355  //if saved setting is disabled checkbox should be disabled already
356  store();
357  updateDatabase();
358  load();
359  this.ingestStateUpdated();
360  firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
361  }//GEN-LAST:event_cbUseCentralRepoActionPerformed
362 
363  private void manageOrganizationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_manageOrganizationButtonActionPerformed
364  store();
366  }//GEN-LAST:event_manageOrganizationButtonActionPerformed
367 
368  @Override
369  @Messages({"GlobalSettingsPanel.validationerrMsg.mustConfigure=Configure the database to enable this module."})
370  public void load() {
371  tbOops.setText("");
372  enableAllSubComponents(false);
374  cbUseCentralRepo.setSelected(EamDbUtil.useCentralRepo()); // NON-NLS
375  switch (selectedPlatform) {
376  case POSTGRESQL:
377  PostgresEamDbSettings dbSettingsPg = new PostgresEamDbSettings();
378  lbDbPlatformValue.setText(EamDbPlatformEnum.POSTGRESQL.toString());
379  lbDbNameValue.setText(dbSettingsPg.getDbName());
380  lbDbLocationValue.setText(dbSettingsPg.getHost());
382  break;
383  case SQLITE:
384  SqliteEamDbSettings dbSettingsSqlite = new SqliteEamDbSettings();
385  lbDbPlatformValue.setText(EamDbPlatformEnum.SQLITE.toString());
386  lbDbNameValue.setText(dbSettingsSqlite.getDbName());
387  lbDbLocationValue.setText(dbSettingsSqlite.getDbDirectory());
389  break;
390  default:
391  lbDbPlatformValue.setText(EamDbPlatformEnum.DISABLED.toString());
392  lbDbNameValue.setText("");
393  lbDbLocationValue.setText("");
395  tbOops.setText(Bundle.GlobalSettingsPanel_validationerrMsg_mustConfigure());
396  break;
397  }
398 
399  }
400 
401  @Override
402  public void store() { // Click OK or Apply on Options Panel
404  }
405 
411  public boolean valid() {
412  return !cbUseCentralRepo.isSelected() || !lbDbPlatformValue.getText().equals(DISABLED.toString());
413  }
414 
415  @Override
416  public void saveSettings() { // Click OK on Global Settings Panel
417  store();
418  }
419 
420  @Override
421  @SuppressWarnings("FinalizeDeclaration")
422  protected void finalize() throws Throwable {
423  IngestManager.getInstance().removeIngestJobEventListener(ingestJobEventListener);
424  super.finalize();
425 
426  }
427 
432  private class IngestJobEventPropertyChangeListener implements PropertyChangeListener {
433 
440  @Override
441  public void propertyChange(PropertyChangeEvent event) {
442  if (AutopsyEvent.SourceType.LOCAL == ((AutopsyEvent) event).getSourceType()) {
444  }
445  }
446  };
447 
448  @Messages({"GlobalSettingsPanel.validationErrMsg.ingestRunning=You cannot change settings while ingest is running."})
449  private void ingestStateUpdated() {
450  if (!SwingUtilities.isEventDispatchThread()) {
451  SwingUtilities.invokeLater(() -> {
453  });
454 
455  return;
456  }
457 
459  tbOops.setText(Bundle.GlobalSettingsPanel_validationErrMsg_ingestRunning());
460  cbUseCentralRepo.setEnabled(false);
461  } else if (!cbUseCentralRepo.isEnabled()) {
462  cbUseCentralRepo.setEnabled(true);
463  load();
464  }
465  }
466 
475  private boolean enableAllSubComponents(Boolean enable) {
476  enableDatabaseConfigureButton(cbUseCentralRepo.isSelected() && enable);
477  enableButtonSubComponents(cbUseCentralRepo.isSelected() && enable);
478  return true;
479  }
480 
488  private void enableDatabaseConfigureButton(Boolean enable) {
489  boolean ingestRunning = IngestManager.getInstance().isIngestRunning();
490  pnDatabaseConfiguration.setEnabled(enable && !ingestRunning);
491  bnDbConfigure.setEnabled(enable && !ingestRunning);
492  lbDbLocationLabel.setEnabled(enable && !ingestRunning);
493  lbDbLocationValue.setEnabled(enable && !ingestRunning);
494  lbDbNameLabel.setEnabled(enable && !ingestRunning);
495  lbDbNameValue.setEnabled(enable && !ingestRunning);
496  lbDbPlatformTypeLabel.setEnabled(enable && !ingestRunning);
497  lbDbPlatformValue.setEnabled(enable && !ingestRunning);
498  tbOops.setEnabled(enable && !ingestRunning);
499  }
500 
509  private boolean enableButtonSubComponents(Boolean enable) {
510  boolean ingestRunning = IngestManager.getInstance().isIngestRunning();
511  pnCorrelationProperties.setEnabled(enable && !ingestRunning);
512  bnManageTypes.setEnabled(enable && !ingestRunning);
513  correlationPropertiesTextArea.setEnabled(enable && !ingestRunning);
514  organizationPanel.setEnabled(enable && !ingestRunning);
515  organizationTextArea.setEnabled(enable && !ingestRunning);
516  manageOrganizationButton.setEnabled(enable && !ingestRunning);
517  return true;
518  }
519 
520  // Variables declaration - do not modify//GEN-BEGIN:variables
521  private javax.swing.JButton bnDbConfigure;
522  private javax.swing.JButton bnManageTypes;
523  private javax.swing.JCheckBox cbUseCentralRepo;
524  private javax.swing.JScrollPane correlationPropertiesScrollPane;
525  private javax.swing.JTextArea correlationPropertiesTextArea;
526  private javax.swing.JLabel lbCentralRepository;
527  private javax.swing.JLabel lbDbLocationLabel;
528  private javax.swing.JLabel lbDbLocationValue;
529  private javax.swing.JLabel lbDbNameLabel;
530  private javax.swing.JLabel lbDbNameValue;
531  private javax.swing.JLabel lbDbPlatformTypeLabel;
532  private javax.swing.JLabel lbDbPlatformValue;
533  private javax.swing.JButton manageOrganizationButton;
534  private javax.swing.JPanel organizationPanel;
535  private javax.swing.JScrollPane organizationScrollPane;
536  private javax.swing.JTextArea organizationTextArea;
537  private javax.swing.JPanel pnCorrelationProperties;
538  private javax.swing.JPanel pnDatabaseConfiguration;
539  private javax.swing.JTextField tbOops;
540  // End of variables declaration//GEN-END:variables
541 }
static synchronized IngestManager getInstance()
void removeIngestJobEventListener(final PropertyChangeListener listener)
void addIngestJobEventListener(final PropertyChangeListener listener)
static void setUseCentralRepo(boolean centralRepoCheckBoxIsSelected)
Definition: EamDbUtil.java:311
synchronized static Logger getLogger(String name)
Definition: Logger.java:124

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.