Autopsy  3.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
AutopsyOptionsPanel.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2013-2014 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.corecomponents;
20 
21 import javax.swing.DefaultComboBoxModel;
22 import org.openide.util.NbBundle;
24 
28 final class AutopsyOptionsPanel extends javax.swing.JPanel {
29 
30  AutopsyOptionsPanel(AutopsyOptionsPanelController controller) {
31  initComponents();
32  int availableProcessors = Runtime.getRuntime().availableProcessors();
33  Integer fileIngestThreadCountChoices[];
34  int recommendedFileIngestThreadCount;
35  if (availableProcessors >= 16) {
36  fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6, 8, 12, 16};
37  if (availableProcessors >= 18) {
38  recommendedFileIngestThreadCount = 16;
39  } else {
40  recommendedFileIngestThreadCount = 12;
41  }
42  } else if (availableProcessors >= 12 && availableProcessors <= 15) {
43  fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6, 8, 12};
44  if (availableProcessors >= 14) {
45  recommendedFileIngestThreadCount = 12;
46  } else {
47  recommendedFileIngestThreadCount = 8;
48  }
49  } else if (availableProcessors >= 8 && availableProcessors <= 11) {
50  fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6, 8};
51  if (availableProcessors >= 10) {
52  recommendedFileIngestThreadCount = 8;
53  } else {
54  recommendedFileIngestThreadCount = 6;
55  }
56  } else if (availableProcessors >= 6 && availableProcessors <= 7) {
57  fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6};
58  recommendedFileIngestThreadCount = 4;
59  } else if (availableProcessors >= 4 && availableProcessors <= 5) {
60  fileIngestThreadCountChoices = new Integer[]{1, 2, 4};
61  recommendedFileIngestThreadCount = 2;
62  } else if (availableProcessors >= 2 && availableProcessors <= 3) {
63  fileIngestThreadCountChoices = new Integer[]{1, 2};
64  recommendedFileIngestThreadCount = 1;
65  } else {
66  fileIngestThreadCountChoices = new Integer[]{1};
67  recommendedFileIngestThreadCount = 1;
68  }
69  numberOfFileIngestThreadsComboBox.setModel(new DefaultComboBoxModel<>(fileIngestThreadCountChoices));
70  restartRequiredLabel.setText(NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.restartRequiredLabel.text", recommendedFileIngestThreadCount));
71  // TODO listen to changes in form fields and call controller.changed()
72  }
73 
74  void load() {
75  boolean keepPreferredViewer = UserPreferences.keepPreferredContentViewer();
76  keepCurrentViewerRB.setSelected(keepPreferredViewer);
77  useBestViewerRB.setSelected(!keepPreferredViewer);
78  dataSourcesHideKnownCB.setSelected(UserPreferences.hideKnownFilesInDataSourcesTree());
79  viewsHideKnownCB.setSelected(UserPreferences.hideKnownFilesInViewsTree());
80  boolean useLocalTime = UserPreferences.displayTimesInLocalTime();
81  useLocalTimeRB.setSelected(useLocalTime);
82  useGMTTimeRB.setSelected(!useLocalTime);
83  numberOfFileIngestThreadsComboBox.setSelectedItem(UserPreferences.numberOfFileIngestThreads());
84  }
85 
86  void store() {
87  UserPreferences.setKeepPreferredContentViewer(keepCurrentViewerRB.isSelected());
88  UserPreferences.setHideKnownFilesInDataSourcesTree(dataSourcesHideKnownCB.isSelected());
89  UserPreferences.setHideKnownFilesInViewsTree(viewsHideKnownCB.isSelected());
90  UserPreferences.setDisplayTimesInLocalTime(useLocalTimeRB.isSelected());
91  UserPreferences.setNumberOfFileIngestThreads((Integer) numberOfFileIngestThreadsComboBox.getSelectedItem());
92  }
93 
94  boolean valid() {
95  return true;
96  }
97 
103  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
104  private void initComponents() {
105 
106  buttonGroup1 = new javax.swing.ButtonGroup();
107  buttonGroup3 = new javax.swing.ButtonGroup();
108  buttonGroupProcTimeOut = new javax.swing.ButtonGroup();
109  useBestViewerRB = new javax.swing.JRadioButton();
110  keepCurrentViewerRB = new javax.swing.JRadioButton();
111  jLabelSelectFile = new javax.swing.JLabel();
112  jLabelTimeDisplay = new javax.swing.JLabel();
113  useLocalTimeRB = new javax.swing.JRadioButton();
114  useGMTTimeRB = new javax.swing.JRadioButton();
115  jLabelHideKnownFiles = new javax.swing.JLabel();
116  dataSourcesHideKnownCB = new javax.swing.JCheckBox();
117  viewsHideKnownCB = new javax.swing.JCheckBox();
118  jLabelNumThreads = new javax.swing.JLabel();
119  numberOfFileIngestThreadsComboBox = new javax.swing.JComboBox<Integer>();
120  restartRequiredLabel = new javax.swing.JLabel();
121 
122  buttonGroup1.add(useBestViewerRB);
123  useBestViewerRB.setSelected(true);
124  org.openide.awt.Mnemonics.setLocalizedText(useBestViewerRB, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.useBestViewerRB.text")); // NOI18N
125  useBestViewerRB.setToolTipText(org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.useBestViewerRB.toolTipText")); // NOI18N
126 
127  buttonGroup1.add(keepCurrentViewerRB);
128  org.openide.awt.Mnemonics.setLocalizedText(keepCurrentViewerRB, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.keepCurrentViewerRB.text")); // NOI18N
129  keepCurrentViewerRB.setToolTipText(org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.keepCurrentViewerRB.toolTipText")); // NOI18N
130 
131  org.openide.awt.Mnemonics.setLocalizedText(jLabelSelectFile, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.jLabelSelectFile.text")); // NOI18N
132 
133  org.openide.awt.Mnemonics.setLocalizedText(jLabelTimeDisplay, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.jLabelTimeDisplay.text")); // NOI18N
134 
135  buttonGroup3.add(useLocalTimeRB);
136  useLocalTimeRB.setSelected(true);
137  org.openide.awt.Mnemonics.setLocalizedText(useLocalTimeRB, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.useLocalTimeRB.text")); // NOI18N
138 
139  buttonGroup3.add(useGMTTimeRB);
140  org.openide.awt.Mnemonics.setLocalizedText(useGMTTimeRB, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.useGMTTimeRB.text")); // NOI18N
141 
142  org.openide.awt.Mnemonics.setLocalizedText(jLabelHideKnownFiles, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.jLabelHideKnownFiles.text")); // NOI18N
143 
144  org.openide.awt.Mnemonics.setLocalizedText(dataSourcesHideKnownCB, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.dataSourcesHideKnownCB.text")); // NOI18N
145 
146  org.openide.awt.Mnemonics.setLocalizedText(viewsHideKnownCB, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.viewsHideKnownCB.text")); // NOI18N
147 
148  org.openide.awt.Mnemonics.setLocalizedText(jLabelNumThreads, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.jLabelNumThreads.text")); // NOI18N
149 
150  restartRequiredLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/warning16.png"))); // NOI18N
151  org.openide.awt.Mnemonics.setLocalizedText(restartRequiredLabel, org.openide.util.NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.restartRequiredLabel.text")); // NOI18N
152 
153  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
154  this.setLayout(layout);
155  layout.setHorizontalGroup(
156  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
157  .addGroup(layout.createSequentialGroup()
158  .addContainerGap()
159  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
160  .addGroup(layout.createSequentialGroup()
161  .addGap(10, 10, 10)
162  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
163  .addComponent(keepCurrentViewerRB)
164  .addComponent(useBestViewerRB)
165  .addComponent(dataSourcesHideKnownCB)
166  .addComponent(viewsHideKnownCB)
167  .addGroup(layout.createSequentialGroup()
168  .addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
169  .addGap(18, 18, 18)
170  .addComponent(restartRequiredLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
171  .addContainerGap())))
172  .addGroup(layout.createSequentialGroup()
173  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
174  .addComponent(jLabelHideKnownFiles)
175  .addComponent(jLabelTimeDisplay)
176  .addGroup(layout.createSequentialGroup()
177  .addGap(10, 10, 10)
178  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
179  .addComponent(useLocalTimeRB)
180  .addComponent(useGMTTimeRB)))
181  .addComponent(jLabelSelectFile)
182  .addComponent(jLabelNumThreads))
183  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
184  );
185  layout.setVerticalGroup(
186  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
187  .addGroup(layout.createSequentialGroup()
188  .addComponent(jLabelSelectFile)
189  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
190  .addComponent(useBestViewerRB)
191  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
192  .addComponent(keepCurrentViewerRB)
193  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
194  .addComponent(jLabelHideKnownFiles)
195  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
196  .addComponent(dataSourcesHideKnownCB)
197  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
198  .addComponent(viewsHideKnownCB)
199  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
200  .addComponent(jLabelTimeDisplay)
201  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
202  .addComponent(useLocalTimeRB)
203  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
204  .addComponent(useGMTTimeRB)
205  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
206  .addComponent(jLabelNumThreads)
207  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
208  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
209  .addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
210  .addComponent(restartRequiredLabel))
211  .addContainerGap(155, Short.MAX_VALUE))
212  );
213  }// </editor-fold>//GEN-END:initComponents
214 
215  // Variables declaration - do not modify//GEN-BEGIN:variables
216  private javax.swing.ButtonGroup buttonGroup1;
217  private javax.swing.ButtonGroup buttonGroup3;
218  private javax.swing.ButtonGroup buttonGroupProcTimeOut;
219  private javax.swing.JCheckBox dataSourcesHideKnownCB;
220  private javax.swing.JLabel jLabelHideKnownFiles;
221  private javax.swing.JLabel jLabelNumThreads;
222  private javax.swing.JLabel jLabelSelectFile;
223  private javax.swing.JLabel jLabelTimeDisplay;
224  private javax.swing.JRadioButton keepCurrentViewerRB;
225  private javax.swing.JComboBox<Integer> numberOfFileIngestThreadsComboBox;
226  private javax.swing.JLabel restartRequiredLabel;
227  private javax.swing.JRadioButton useBestViewerRB;
228  private javax.swing.JRadioButton useGMTTimeRB;
229  private javax.swing.JRadioButton useLocalTimeRB;
230  private javax.swing.JCheckBox viewsHideKnownCB;
231  // End of variables declaration//GEN-END:variables
232 }

Copyright © 2012-2015 Basis Technology. Generated on: Mon Oct 19 2015
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.