Autopsy  4.7.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-2018 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;
22 import java.awt.EventQueue;
24 import java.beans.PropertyChangeEvent;
25 import java.beans.PropertyChangeListener;
26 import javax.swing.JOptionPane;
27 import javax.swing.SwingUtilities;
28 import org.netbeans.spi.options.OptionsPanelController;
29 import org.openide.util.NbBundle;
30 import org.openide.util.NbBundle.Messages;
40 
44 @SuppressWarnings("PMD.SingularField") // UI widgets cause lots of false positives
45 public final class GlobalSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
46 
47  private static final long serialVersionUID = 1L;
48  private static final Logger logger = Logger.getLogger(GlobalSettingsPanel.class.getName());
49 
51 
56  ingestJobEventListener = new IngestJobEventPropertyChangeListener();
57 
58  initComponents();
59  customizeComponents();
60  addIngestJobEventsListener();
61  }
62 
63  private void customizeComponents() {
64  setName(NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.pnCorrelationProperties.border.title"));
65  }
66 
67  private void addIngestJobEventsListener() {
68  IngestManager.getInstance().addIngestJobEventListener(ingestJobEventListener);
69  ingestStateUpdated();
70  }
71 
72  @Messages({"GlobalSettingsPanel.updateFailed.title=Update failed",
73  "GlobalSettingsPanel.updateFailed.message=Failed to update database. Central repository has been disabled."
74  })
75  private void updateDatabase() {
76 
77  if (EamDbPlatformEnum.getSelectedPlatform().equals(DISABLED)) {
78  return;
79  }
80  setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
81 
82  try {
83  boolean result = EamDbUtil.upgradeDatabase();
84  setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
85  if (!result) {
86  JOptionPane.showMessageDialog(this,
87  NbBundle.getMessage(this.getClass(),
88  "GlobalSettingsPanel.updateFailed.message"),
89  NbBundle.getMessage(this.getClass(),
90  "GlobalSettingsPanel.updateFailed.title"),
91  JOptionPane.WARNING_MESSAGE);
92  }
93  } finally {
94  setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
95  }
96  }
97 
103  @SuppressWarnings("unchecked")
104  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
105  private void initComponents() {
106 
107  jScrollPane1 = new javax.swing.JScrollPane();
108  jPanel1 = new javax.swing.JPanel();
109  lbCentralRepository = new javax.swing.JLabel();
110  cbUseCentralRepo = new javax.swing.JCheckBox();
111  pnDatabaseConfiguration = new javax.swing.JPanel();
112  lbDbPlatformTypeLabel = new javax.swing.JLabel();
113  lbDbNameLabel = new javax.swing.JLabel();
114  lbDbLocationLabel = new javax.swing.JLabel();
115  bnDbConfigure = new javax.swing.JButton();
116  lbDbPlatformValue = new javax.swing.JLabel();
117  lbDbNameValue = new javax.swing.JLabel();
118  lbDbLocationValue = new javax.swing.JLabel();
119  pnCorrelationProperties = new javax.swing.JPanel();
120  bnManageTypes = new javax.swing.JButton();
121  correlationPropertiesScrollPane = new javax.swing.JScrollPane();
122  correlationPropertiesTextArea = new javax.swing.JTextArea();
123  organizationPanel = new javax.swing.JPanel();
124  manageOrganizationButton = new javax.swing.JButton();
125  organizationScrollPane = new javax.swing.JScrollPane();
126  organizationTextArea = new javax.swing.JTextArea();
127  tbOops = new javax.swing.JTextField();
128 
129  setName(""); // NOI18N
130  setPreferredSize(new java.awt.Dimension(1022, 488));
131 
132  jScrollPane1.setBorder(null);
133  jScrollPane1.setPreferredSize(new java.awt.Dimension(1022, 407));
134 
135  jPanel1.setMinimumSize(new java.awt.Dimension(0, 0));
136  jPanel1.setPreferredSize(new java.awt.Dimension(1020, 407));
137 
138  org.openide.awt.Mnemonics.setLocalizedText(lbCentralRepository, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbCentralRepository.text")); // NOI18N
139 
140  org.openide.awt.Mnemonics.setLocalizedText(cbUseCentralRepo, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.cbUseCentralRepo.text")); // NOI18N
141  cbUseCentralRepo.addActionListener(new java.awt.event.ActionListener() {
142  public void actionPerformed(java.awt.event.ActionEvent evt) {
143  cbUseCentralRepoActionPerformed(evt);
144  }
145  });
146 
147  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
148 
149  org.openide.awt.Mnemonics.setLocalizedText(lbDbPlatformTypeLabel, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbDbPlatformTypeLabel.text")); // NOI18N
150 
151  org.openide.awt.Mnemonics.setLocalizedText(lbDbNameLabel, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbDbNameLabel.text")); // NOI18N
152 
153  org.openide.awt.Mnemonics.setLocalizedText(lbDbLocationLabel, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.lbDbLocationLabel.text")); // NOI18N
154 
155  org.openide.awt.Mnemonics.setLocalizedText(bnDbConfigure, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.bnDbConfigure.text")); // NOI18N
156  bnDbConfigure.addActionListener(new java.awt.event.ActionListener() {
157  public void actionPerformed(java.awt.event.ActionEvent evt) {
158  bnDbConfigureActionPerformed(evt);
159  }
160  });
161 
162  javax.swing.GroupLayout pnDatabaseConfigurationLayout = new javax.swing.GroupLayout(pnDatabaseConfiguration);
163  pnDatabaseConfiguration.setLayout(pnDatabaseConfigurationLayout);
164  pnDatabaseConfigurationLayout.setHorizontalGroup(
165  pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
166  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
167  .addContainerGap()
168  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
169  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
170  .addComponent(bnDbConfigure)
171  .addContainerGap())
172  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
173  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
174  .addComponent(lbDbPlatformTypeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
175  .addComponent(lbDbNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
176  .addComponent(lbDbLocationLabel))
177  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
178  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
179  .addComponent(lbDbNameValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
180  .addComponent(lbDbPlatformValue, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
181  .addComponent(lbDbLocationValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))
182  );
183  pnDatabaseConfigurationLayout.setVerticalGroup(
184  pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
185  .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
186  .addGap(7, 7, 7)
187  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
188  .addComponent(lbDbPlatformTypeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
189  .addComponent(lbDbPlatformValue, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
190  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
191  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
192  .addComponent(lbDbNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
193  .addComponent(lbDbNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
194  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
195  .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
196  .addComponent(lbDbLocationLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
197  .addComponent(lbDbLocationValue, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
198  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
199  .addComponent(bnDbConfigure)
200  .addGap(8, 8, 8))
201  );
202 
203  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
204  pnCorrelationProperties.setPreferredSize(new java.awt.Dimension(674, 93));
205 
206  org.openide.awt.Mnemonics.setLocalizedText(bnManageTypes, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.bnManageProperties.text")); // NOI18N
207  bnManageTypes.addActionListener(new java.awt.event.ActionListener() {
208  public void actionPerformed(java.awt.event.ActionEvent evt) {
209  bnManageTypesActionPerformed(evt);
210  }
211  });
212 
213  correlationPropertiesScrollPane.setBorder(null);
214 
215  correlationPropertiesTextArea.setEditable(false);
216  correlationPropertiesTextArea.setBackground(new java.awt.Color(240, 240, 240));
217  correlationPropertiesTextArea.setColumns(20);
218  correlationPropertiesTextArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
219  correlationPropertiesTextArea.setLineWrap(true);
220  correlationPropertiesTextArea.setRows(2);
221  correlationPropertiesTextArea.setText(org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.correlationPropertiesTextArea.text")); // NOI18N
222  correlationPropertiesTextArea.setToolTipText("");
223  correlationPropertiesTextArea.setWrapStyleWord(true);
224  correlationPropertiesTextArea.setBorder(null);
225  correlationPropertiesScrollPane.setViewportView(correlationPropertiesTextArea);
226 
227  javax.swing.GroupLayout pnCorrelationPropertiesLayout = new javax.swing.GroupLayout(pnCorrelationProperties);
228  pnCorrelationProperties.setLayout(pnCorrelationPropertiesLayout);
229  pnCorrelationPropertiesLayout.setHorizontalGroup(
230  pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
231  .addGroup(pnCorrelationPropertiesLayout.createSequentialGroup()
232  .addContainerGap()
233  .addGroup(pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
234  .addComponent(correlationPropertiesScrollPane)
235  .addGroup(pnCorrelationPropertiesLayout.createSequentialGroup()
236  .addComponent(bnManageTypes)
237  .addGap(0, 0, Short.MAX_VALUE)))
238  .addContainerGap())
239  );
240  pnCorrelationPropertiesLayout.setVerticalGroup(
241  pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
242  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnCorrelationPropertiesLayout.createSequentialGroup()
243  .addGap(7, 7, 7)
244  .addComponent(correlationPropertiesScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
245  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
246  .addComponent(bnManageTypes)
247  .addGap(8, 8, 8))
248  );
249 
250  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
251 
252  org.openide.awt.Mnemonics.setLocalizedText(manageOrganizationButton, org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.manageOrganizationButton.text")); // NOI18N
253  manageOrganizationButton.addActionListener(new java.awt.event.ActionListener() {
254  public void actionPerformed(java.awt.event.ActionEvent evt) {
255  manageOrganizationButtonActionPerformed(evt);
256  }
257  });
258 
259  organizationScrollPane.setBorder(null);
260 
261  organizationTextArea.setEditable(false);
262  organizationTextArea.setBackground(new java.awt.Color(240, 240, 240));
263  organizationTextArea.setColumns(20);
264  organizationTextArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
265  organizationTextArea.setLineWrap(true);
266  organizationTextArea.setRows(2);
267  organizationTextArea.setText(org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.organizationTextArea.text")); // NOI18N
268  organizationTextArea.setWrapStyleWord(true);
269  organizationTextArea.setBorder(null);
270  organizationScrollPane.setViewportView(organizationTextArea);
271 
272  javax.swing.GroupLayout organizationPanelLayout = new javax.swing.GroupLayout(organizationPanel);
273  organizationPanel.setLayout(organizationPanelLayout);
274  organizationPanelLayout.setHorizontalGroup(
275  organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
276  .addGroup(organizationPanelLayout.createSequentialGroup()
277  .addContainerGap()
278  .addGroup(organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
279  .addComponent(organizationScrollPane)
280  .addGroup(organizationPanelLayout.createSequentialGroup()
281  .addComponent(manageOrganizationButton)
282  .addGap(0, 0, Short.MAX_VALUE)))
283  .addContainerGap())
284  );
285  organizationPanelLayout.setVerticalGroup(
286  organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
287  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, organizationPanelLayout.createSequentialGroup()
288  .addContainerGap()
289  .addComponent(organizationScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
290  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
291  .addComponent(manageOrganizationButton)
292  .addGap(8, 8, 8))
293  );
294 
295  tbOops.setEditable(false);
296  tbOops.setFont(tbOops.getFont().deriveFont(tbOops.getFont().getStyle() | java.awt.Font.BOLD, 12));
297  tbOops.setText(org.openide.util.NbBundle.getMessage(GlobalSettingsPanel.class, "GlobalSettingsPanel.tbOops.text")); // NOI18N
298  tbOops.setBorder(null);
299 
300  javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
301  jPanel1.setLayout(jPanel1Layout);
302  jPanel1Layout.setHorizontalGroup(
303  jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
304  .addComponent(lbCentralRepository, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
305  .addGroup(jPanel1Layout.createSequentialGroup()
306  .addComponent(cbUseCentralRepo)
307  .addGap(0, 0, Short.MAX_VALUE))
308  .addGroup(jPanel1Layout.createSequentialGroup()
309  .addContainerGap()
310  .addComponent(tbOops, javax.swing.GroupLayout.PREFERRED_SIZE, 974, javax.swing.GroupLayout.PREFERRED_SIZE)
311  .addContainerGap(36, Short.MAX_VALUE))
312  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
313  .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
314  .addComponent(pnDatabaseConfiguration, 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, 1012, Short.MAX_VALUE)
316  .addComponent(organizationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
317  .addContainerGap())
318  );
319  jPanel1Layout.setVerticalGroup(
320  jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
321  .addGroup(jPanel1Layout.createSequentialGroup()
322  .addComponent(lbCentralRepository)
323  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
324  .addComponent(cbUseCentralRepo)
325  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
326  .addComponent(pnDatabaseConfiguration, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
327  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
328  .addComponent(pnCorrelationProperties, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
329  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
330  .addComponent(organizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
331  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
332  .addComponent(tbOops, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
333  .addGap(0, 92, Short.MAX_VALUE))
334  );
335 
336  jScrollPane1.setViewportView(jPanel1);
337 
338  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
339  this.setLayout(layout);
340  layout.setHorizontalGroup(
341  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
342  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
343  );
344  layout.setVerticalGroup(
345  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
346  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 488, Short.MAX_VALUE)
347  );
348  }// </editor-fold>//GEN-END:initComponents
349 
350  private void bnManageTypesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnManageTypesActionPerformed
351  store();
352  ManageCorrelationPropertiesDialog dialog = new ManageCorrelationPropertiesDialog();
353  firePropertyChange(OptionsPanelController.PROP_VALID, null, null);
354  }//GEN-LAST:event_bnManageTypesActionPerformed
355 
356  private void bnDbConfigureActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnDbConfigureActionPerformed
357  store();
359  updateDatabase();
360  load(); // reload db settings content and update buttons
361  if (dialog.wasConfigurationChanged()) {
362  firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
363  }
364  }//GEN-LAST:event_bnDbConfigureActionPerformed
365 
366  private void cbUseCentralRepoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbUseCentralRepoActionPerformed
367  //if saved setting is disabled checkbox should be disabled already
368  store();
369  updateDatabase();
370  load();
371  this.ingestStateUpdated();
372  firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
373  }//GEN-LAST:event_cbUseCentralRepoActionPerformed
374 
375  private void manageOrganizationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_manageOrganizationButtonActionPerformed
376  store();
378  }//GEN-LAST:event_manageOrganizationButtonActionPerformed
379 
380  @Override
381  @Messages({"GlobalSettingsPanel.validationerrMsg.mustConfigure=Configure the database to enable this module."})
382  public void load() {
383  tbOops.setText("");
384  enableAllSubComponents(false);
386  cbUseCentralRepo.setSelected(EamDbUtil.useCentralRepo()); // NON-NLS
387  switch (selectedPlatform) {
388  case POSTGRESQL:
389  PostgresEamDbSettings dbSettingsPg = new PostgresEamDbSettings();
390  lbDbPlatformValue.setText(EamDbPlatformEnum.POSTGRESQL.toString());
391  lbDbNameValue.setText(dbSettingsPg.getDbName());
392  lbDbLocationValue.setText(dbSettingsPg.getHost());
393  enableAllSubComponents(true);
394  break;
395  case SQLITE:
396  SqliteEamDbSettings dbSettingsSqlite = new SqliteEamDbSettings();
397  lbDbPlatformValue.setText(EamDbPlatformEnum.SQLITE.toString());
398  lbDbNameValue.setText(dbSettingsSqlite.getDbName());
399  lbDbLocationValue.setText(dbSettingsSqlite.getDbDirectory());
400  enableAllSubComponents(true);
401  break;
402  default:
403  lbDbPlatformValue.setText(EamDbPlatformEnum.DISABLED.toString());
404  lbDbNameValue.setText("");
405  lbDbLocationValue.setText("");
406  enableDatabaseConfigureButton(cbUseCentralRepo.isSelected());
407  tbOops.setText(Bundle.GlobalSettingsPanel_validationerrMsg_mustConfigure());
408  break;
409  }
410 
411  }
412 
413  @Override
414  public void store() { // Click OK or Apply on Options Panel
415  EamDbUtil.setUseCentralRepo(cbUseCentralRepo.isSelected());
416  }
417 
423  public boolean valid() {
424  return !cbUseCentralRepo.isSelected() || !lbDbPlatformValue.getText().equals(DISABLED.toString());
425  }
426 
427  @Override
428  public void saveSettings() { // Click OK on Global Settings Panel
429  store();
430  }
431 
432  @Override
433  @SuppressWarnings("FinalizeDeclaration")
434  protected void finalize() throws Throwable {
435  IngestManager.getInstance().removeIngestJobEventListener(ingestJobEventListener);
436  super.finalize();
437 
438  }
439 
444  private class IngestJobEventPropertyChangeListener implements PropertyChangeListener {
445 
452  @Override
453  public void propertyChange(PropertyChangeEvent event) {
454  if (isLocalIngestJobEvent(event)) {
455  EventQueue.invokeLater(new Runnable() {
456  @Override
457  public void run() {
458  ingestStateUpdated();
459  }
460  });
461  }
462  }
463  };
464 
474  private boolean isLocalIngestJobEvent(PropertyChangeEvent event) {
475  if (event instanceof AutopsyEvent) {
476  if (((AutopsyEvent) event).getSourceType() == AutopsyEvent.SourceType.LOCAL) {
477  String eventType = event.getPropertyName();
478  return (eventType.equals(IngestManager.IngestJobEvent.STARTED.toString())
479  || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())
480  || eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()));
481  }
482  }
483  return false;
484  }
485 
486  @Messages({"GlobalSettingsPanel.validationErrMsg.ingestRunning=You cannot change settings while ingest is running."})
487  private void ingestStateUpdated() {
488  if (!SwingUtilities.isEventDispatchThread()) {
489  SwingUtilities.invokeLater(() -> {
490  ingestStateUpdated();
491  });
492 
493  return;
494  }
495 
497  tbOops.setText(Bundle.GlobalSettingsPanel_validationErrMsg_ingestRunning());
498  cbUseCentralRepo.setEnabled(false);
499  enableAllSubComponents(false);
500  } else if (!cbUseCentralRepo.isEnabled()) {
501  cbUseCentralRepo.setEnabled(true);
502  load();
503  }
504  }
505 
514  private boolean enableAllSubComponents(Boolean enable) {
515  enableDatabaseConfigureButton(cbUseCentralRepo.isSelected() && enable);
516  enableButtonSubComponents(cbUseCentralRepo.isSelected() && enable);
517  return true;
518  }
519 
527  private void enableDatabaseConfigureButton(Boolean enable) {
528  boolean ingestRunning = IngestManager.getInstance().isIngestRunning();
529  pnDatabaseConfiguration.setEnabled(enable && !ingestRunning);
530  bnDbConfigure.setEnabled(enable && !ingestRunning);
531  lbDbLocationLabel.setEnabled(enable && !ingestRunning);
532  lbDbLocationValue.setEnabled(enable && !ingestRunning);
533  lbDbNameLabel.setEnabled(enable && !ingestRunning);
534  lbDbNameValue.setEnabled(enable && !ingestRunning);
535  lbDbPlatformTypeLabel.setEnabled(enable && !ingestRunning);
536  lbDbPlatformValue.setEnabled(enable && !ingestRunning);
537  tbOops.setEnabled(enable && !ingestRunning);
538  }
539 
548  private boolean enableButtonSubComponents(Boolean enable) {
549  boolean ingestRunning = IngestManager.getInstance().isIngestRunning();
550  pnCorrelationProperties.setEnabled(enable && !ingestRunning);
551  bnManageTypes.setEnabled(enable && !ingestRunning);
552  correlationPropertiesTextArea.setEnabled(enable && !ingestRunning);
553  organizationPanel.setEnabled(enable && !ingestRunning);
554  organizationTextArea.setEnabled(enable && !ingestRunning);
555  manageOrganizationButton.setEnabled(enable && !ingestRunning);
556  return true;
557  }
558 
559  // Variables declaration - do not modify//GEN-BEGIN:variables
560  private javax.swing.JButton bnDbConfigure;
561  private javax.swing.JButton bnManageTypes;
562  private javax.swing.JCheckBox cbUseCentralRepo;
563  private javax.swing.JScrollPane correlationPropertiesScrollPane;
564  private javax.swing.JTextArea correlationPropertiesTextArea;
565  private javax.swing.JPanel jPanel1;
566  private javax.swing.JScrollPane jScrollPane1;
567  private javax.swing.JLabel lbCentralRepository;
568  private javax.swing.JLabel lbDbLocationLabel;
569  private javax.swing.JLabel lbDbLocationValue;
570  private javax.swing.JLabel lbDbNameLabel;
571  private javax.swing.JLabel lbDbNameValue;
572  private javax.swing.JLabel lbDbPlatformTypeLabel;
573  private javax.swing.JLabel lbDbPlatformValue;
574  private javax.swing.JButton manageOrganizationButton;
575  private javax.swing.JPanel organizationPanel;
576  private javax.swing.JScrollPane organizationScrollPane;
577  private javax.swing.JTextArea organizationTextArea;
578  private javax.swing.JPanel pnCorrelationProperties;
579  private javax.swing.JPanel pnDatabaseConfiguration;
580  private javax.swing.JTextField tbOops;
581  // End of variables declaration//GEN-END:variables
582 }
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: Mon Jun 18 2018
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.