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