19 package org.sleuthkit.autopsy.centralrepository.optionspanel;
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;
63 setName(NbBundle.getMessage(
GlobalSettingsPanel.class,
"GlobalSettingsPanel.pnCorrelationProperties.border.title"));
71 @Messages({
"GlobalSettingsPanel.updateFailed.title=Update failed",
72 "GlobalSettingsPanel.updateFailed.message=Failed to update database. Central repository has been disabled."
79 setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
83 setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
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);
93 setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
102 @SuppressWarnings(
"unchecked")
107 jPanel1 =
new javax.swing.JPanel();
126 tbOops =
new javax.swing.JTextField();
129 setPreferredSize(
new java.awt.Dimension(1022, 488));
132 jScrollPane1.setPreferredSize(
new java.awt.Dimension(1022, 407));
134 jPanel1.setMinimumSize(
new java.awt.Dimension(0, 0));
135 jPanel1.setPreferredSize(
new java.awt.Dimension(1020, 407));
141 public void actionPerformed(java.awt.event.ActionEvent evt) {
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)));
155 bnDbConfigure.addActionListener(
new java.awt.event.ActionListener() {
156 public void actionPerformed(java.awt.event.ActionEvent evt) {
163 pnDatabaseConfigurationLayout.setHorizontalGroup(
164 pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
165 .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
167 .addGroup(pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
168 .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
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)
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)))))
182 pnDatabaseConfigurationLayout.setVerticalGroup(
183 pnDatabaseConfigurationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
184 .addGroup(pnDatabaseConfigurationLayout.createSequentialGroup()
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)
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)));
206 bnManageTypes.addActionListener(
new java.awt.event.ActionListener() {
207 public void actionPerformed(java.awt.event.ActionEvent evt) {
228 pnCorrelationPropertiesLayout.setHorizontalGroup(
229 pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
230 .addGroup(pnCorrelationPropertiesLayout.createSequentialGroup()
232 .addGroup(pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
234 .addGroup(pnCorrelationPropertiesLayout.createSequentialGroup()
236 .addGap(0, 0, Short.MAX_VALUE)))
239 pnCorrelationPropertiesLayout.setVerticalGroup(
240 pnCorrelationPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
241 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnCorrelationPropertiesLayout.createSequentialGroup()
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)
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)));
253 public void actionPerformed(java.awt.event.ActionEvent evt) {
271 javax.swing.GroupLayout organizationPanelLayout =
new javax.swing.GroupLayout(
organizationPanel);
273 organizationPanelLayout.setHorizontalGroup(
274 organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
275 .addGroup(organizationPanelLayout.createSequentialGroup()
277 .addGroup(organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
279 .addGroup(organizationPanelLayout.createSequentialGroup()
281 .addGap(0, 0, Short.MAX_VALUE)))
284 organizationPanelLayout.setVerticalGroup(
285 organizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
286 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, organizationPanelLayout.createSequentialGroup()
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)
294 tbOops.setEditable(
false);
295 tbOops.setFont(
tbOops.getFont().deriveFont(
tbOops.getFont().getStyle() | java.awt.Font.BOLD, 12));
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()
306 .addGap(0, 0, Short.MAX_VALUE))
307 .addGroup(jPanel1Layout.createSequentialGroup()
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))
318 jPanel1Layout.setVerticalGroup(
319 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
320 .addGroup(jPanel1Layout.createSequentialGroup()
322 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
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))
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)
343 layout.setVerticalGroup(
344 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
345 .addComponent(
jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 488, Short.MAX_VALUE)
351 ManageCorrelationPropertiesDialog dialog =
new ManageCorrelationPropertiesDialog();
352 firePropertyChange(OptionsPanelController.PROP_VALID, null, null);
360 if (dialog.wasConfigurationChanged()) {
361 firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
371 firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
380 @Messages({
"GlobalSettingsPanel.validationerrMsg.mustConfigure=Configure the database to enable this module."})
386 switch (selectedPlatform) {
406 tbOops.setText(Bundle.GlobalSettingsPanel_validationerrMsg_mustConfigure());
432 @SuppressWarnings(
"FinalizeDeclaration")
454 EventQueue.invokeLater(
new Runnable() {
475 if (((AutopsyEvent) event).getSourceType() == AutopsyEvent.SourceType.LOCAL) {
476 String eventType =
event.getPropertyName();
485 @Messages({
"GlobalSettingsPanel.validationErrMsg.ingestRunning=You cannot change settings while ingest is running."})
487 if (!SwingUtilities.isEventDispatchThread()) {
488 SwingUtilities.invokeLater(() -> {
496 tbOops.setText(Bundle.GlobalSettingsPanel_validationErrMsg_ingestRunning());
536 tbOops.setEnabled(enable && !ingestRunning);
final IngestJobEventPropertyChangeListener ingestJobEventListener
javax.swing.JLabel lbDbLocationValue
javax.swing.JButton bnManageTypes
static synchronized IngestManager getInstance()
javax.swing.JScrollPane organizationScrollPane
void bnManageTypesActionPerformed(java.awt.event.ActionEvent evt)
static boolean useCentralRepo()
static boolean upgradeDatabase()
boolean isIngestRunning()
boolean isLocalIngestJobEvent(PropertyChangeEvent event)
void customizeComponents()
void cbUseCentralRepoActionPerformed(java.awt.event.ActionEvent evt)
javax.swing.JPanel pnDatabaseConfiguration
javax.swing.JPanel organizationPanel
void removeIngestJobEventListener(final PropertyChangeListener listener)
javax.swing.JTextArea correlationPropertiesTextArea
void ingestStateUpdated()
javax.swing.JCheckBox cbUseCentralRepo
void enableDatabaseConfigureButton(Boolean enable)
javax.swing.JTextField tbOops
javax.swing.JButton bnDbConfigure
javax.swing.JScrollPane correlationPropertiesScrollPane
void addIngestJobEventListener(final PropertyChangeListener listener)
javax.swing.JTextArea organizationTextArea
boolean enableButtonSubComponents(Boolean enable)
javax.swing.JPanel jPanel1
javax.swing.JLabel lbDbPlatformTypeLabel
javax.swing.JButton manageOrganizationButton
javax.swing.JScrollPane jScrollPane1
static void setUseCentralRepo(boolean centralRepoCheckBoxIsSelected)
static final Logger logger
javax.swing.JLabel lbDbNameValue
static final long serialVersionUID
javax.swing.JLabel lbCentralRepository
boolean enableAllSubComponents(Boolean enable)
void propertyChange(PropertyChangeEvent event)
synchronized static Logger getLogger(String name)
javax.swing.JLabel lbDbPlatformValue
javax.swing.JLabel lbDbLocationLabel
void addIngestJobEventsListener()
void manageOrganizationButtonActionPerformed(java.awt.event.ActionEvent evt)
void bnDbConfigureActionPerformed(java.awt.event.ActionEvent evt)
javax.swing.JLabel lbDbNameLabel
javax.swing.JPanel pnCorrelationProperties