mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-15 01:07:42 +00:00
Add more change listeners for UserPreferences
This commit is contained in:
parent
b3867eb4ff
commit
f771ca1634
@ -33,7 +33,8 @@ public final class UserPreferences {
|
||||
public static final String HIDE_KNOWN_FILES_IN_DATA_SOURCES_TREE = "HideKnownFilesInDataSourcesTree"; //NON-NLS
|
||||
public static final String HIDE_KNOWN_FILES_IN_VIEWS_TREE = "HideKnownFilesInViewsTree"; //NON-NLS
|
||||
public static final String DISPLAY_TIMES_IN_LOCAL_TIME = "DisplayTimesInLocalTime"; //NON-NLS
|
||||
|
||||
public static final String NUMBER_OF_FILE_INGEST_THREADS = "NumberOfFileingestThreads"; //NON-NLS
|
||||
|
||||
// Prevent instantiation.
|
||||
private UserPreferences() {
|
||||
}
|
||||
@ -77,4 +78,12 @@ public final class UserPreferences {
|
||||
public static void setDisplayTimesInLocalTime(boolean value) {
|
||||
preferences.putBoolean(DISPLAY_TIMES_IN_LOCAL_TIME, value);
|
||||
}
|
||||
|
||||
public static int numberOfFileIngestThreads() {
|
||||
return preferences.getInt(NUMBER_OF_FILE_INGEST_THREADS, 2);
|
||||
}
|
||||
|
||||
public static void setNumberOfFileIngestThreads(int value) {
|
||||
preferences.putInt(NUMBER_OF_FILE_INGEST_THREADS, value);
|
||||
}
|
||||
}
|
||||
|
@ -20,10 +20,12 @@ package org.sleuthkit.autopsy.corecomponents;
|
||||
|
||||
import javax.swing.DefaultComboBoxModel;
|
||||
import org.sleuthkit.autopsy.core.UserPreferences;
|
||||
import org.sleuthkit.autopsy.ingest.IngestManager;
|
||||
|
||||
/**
|
||||
* Options panel that allow users to set application preferences.
|
||||
*/
|
||||
final class AutopsyOptionsPanel extends javax.swing.JPanel {
|
||||
|
||||
|
||||
AutopsyOptionsPanel(AutopsyOptionsPanelController controller) {
|
||||
initComponents();
|
||||
numberOfFileIngestThreadsComboBox.setModel(new DefaultComboBoxModel<>(new Integer[]{1, 2, 4, 8, 16}));
|
||||
@ -39,7 +41,7 @@ final class AutopsyOptionsPanel extends javax.swing.JPanel {
|
||||
boolean useLocalTime = UserPreferences.displayTimesInLocalTime();
|
||||
useLocalTimeRB.setSelected(useLocalTime);
|
||||
useGMTTimeRB.setSelected(!useLocalTime);
|
||||
numberOfFileIngestThreadsComboBox.setSelectedItem(IngestManager.getNumberOfFileIngestThreads());
|
||||
numberOfFileIngestThreadsComboBox.setSelectedItem(UserPreferences.numberOfFileIngestThreads());
|
||||
}
|
||||
|
||||
void store() {
|
||||
@ -47,7 +49,7 @@ final class AutopsyOptionsPanel extends javax.swing.JPanel {
|
||||
UserPreferences.setHideKnownFilesInDataSourcesTree(dataSourcesHideKnownCB.isSelected());
|
||||
UserPreferences.setHideKnownFilesInViewsTree(viewsHideKnownCB.isSelected());
|
||||
UserPreferences.setDisplayTimesInLocalTime(useLocalTimeRB.isSelected());
|
||||
IngestManager.setNumberOfFileIngestThreads((Integer) numberOfFileIngestThreadsComboBox.getSelectedItem());
|
||||
UserPreferences.setNumberOfFileIngestThreads((Integer) numberOfFileIngestThreadsComboBox.getSelectedItem());
|
||||
}
|
||||
|
||||
boolean valid() {
|
||||
@ -161,7 +163,6 @@ final class AutopsyOptionsPanel extends javax.swing.JPanel {
|
||||
.addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.ButtonGroup buttonGroup1;
|
||||
private javax.swing.ButtonGroup buttonGroup3;
|
||||
|
@ -139,7 +139,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat
|
||||
refreshContentTreeSafe();
|
||||
break;
|
||||
case UserPreferences.HIDE_KNOWN_FILES_IN_VIEWS_TREE:
|
||||
// RJCTODO: There does not appear to be a way to refresh the Views subtree
|
||||
// TODO: Need a way to refresh the Views subtree
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -29,16 +29,17 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.logging.Level;
|
||||
import java.util.prefs.PreferenceChangeEvent;
|
||||
import java.util.prefs.PreferenceChangeListener;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.netbeans.api.progress.ProgressHandle;
|
||||
import org.netbeans.api.progress.ProgressHandleFactory;
|
||||
import org.openide.util.Cancellable;
|
||||
import org.openide.util.NbPreferences;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
import org.sleuthkit.datamodel.Content;
|
||||
import java.util.prefs.Preferences;
|
||||
import javax.swing.JOptionPane;
|
||||
import org.sleuthkit.autopsy.core.UserPreferences;
|
||||
|
||||
/**
|
||||
* Manages the execution of ingest jobs.
|
||||
@ -46,12 +47,10 @@ import javax.swing.JOptionPane;
|
||||
public class IngestManager {
|
||||
|
||||
private static final int MAX_NUMBER_OF_DATA_SOURCE_INGEST_THREADS = 1;
|
||||
private static final String NUMBER_OF_FILE_INGEST_THREADS_KEY = "NumberOfFileingestThreads"; //NON-NLS
|
||||
private static final int MIN_NUMBER_OF_FILE_INGEST_THREADS = 1;
|
||||
private static final int MAX_NUMBER_OF_FILE_INGEST_THREADS = 16;
|
||||
private static final int DEFAULT_NUMBER_OF_FILE_INGEST_THREADS = 2;
|
||||
private static final Logger logger = Logger.getLogger(IngestManager.class.getName());
|
||||
private static final Preferences userPreferences = NbPreferences.forModule(IngestManager.class);
|
||||
private static final IngestManager instance = new IngestManager();
|
||||
private final PropertyChangeSupport ingestJobEventPublisher = new PropertyChangeSupport(IngestManager.class);
|
||||
private final PropertyChangeSupport ingestModuleEventPublisher = new PropertyChangeSupport(IngestManager.class);
|
||||
@ -82,10 +81,23 @@ public class IngestManager {
|
||||
*/
|
||||
private IngestManager() {
|
||||
startDataSourceIngestThread();
|
||||
int numberOfFileIngestThreads = getNumberOfFileIngestThreads();
|
||||
int numberOfFileIngestThreads = UserPreferences.numberOfFileIngestThreads();
|
||||
if ((numberOfFileIngestThreads < MIN_NUMBER_OF_FILE_INGEST_THREADS) || (numberOfFileIngestThreads > MAX_NUMBER_OF_FILE_INGEST_THREADS)) {
|
||||
numberOfFileIngestThreads = DEFAULT_NUMBER_OF_FILE_INGEST_THREADS;
|
||||
UserPreferences.setNumberOfFileIngestThreads(numberOfFileIngestThreads);
|
||||
}
|
||||
for (int i = 0; i < numberOfFileIngestThreads; ++i) {
|
||||
startFileIngestThread();
|
||||
}
|
||||
|
||||
UserPreferences.addChangeListener(new PreferenceChangeListener() {
|
||||
@Override
|
||||
public void preferenceChange(PreferenceChangeEvent evt) {
|
||||
if (evt.getKey().equals(UserPreferences.NUMBER_OF_FILE_INGEST_THREADS)) {
|
||||
setNumberOfFileIngestThreads();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,13 +127,6 @@ public class IngestManager {
|
||||
return MAX_NUMBER_OF_FILE_INGEST_THREADS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of file ingest threads the ingest manager will use.
|
||||
*/
|
||||
public synchronized static int getNumberOfFileIngestThreads() {
|
||||
return userPreferences.getInt(NUMBER_OF_FILE_INGEST_THREADS_KEY, DEFAULT_NUMBER_OF_FILE_INGEST_THREADS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the number of file ingest threads the ingest manager will use to
|
||||
* no more than MAX_NUMBER_OF_FILE_INGEST_THREADS and no less than
|
||||
@ -130,12 +135,12 @@ public class IngestManager {
|
||||
*
|
||||
* @param numberOfThreads The desired number of file ingest threads.
|
||||
*/
|
||||
public synchronized static void setNumberOfFileIngestThreads(int numberOfThreads) {
|
||||
public synchronized static void setNumberOfFileIngestThreads() {
|
||||
int numberOfThreads = UserPreferences.numberOfFileIngestThreads();
|
||||
if ((numberOfThreads < MIN_NUMBER_OF_FILE_INGEST_THREADS) || (numberOfThreads > MAX_NUMBER_OF_FILE_INGEST_THREADS)) {
|
||||
numberOfThreads = DEFAULT_NUMBER_OF_FILE_INGEST_THREADS;
|
||||
UserPreferences.setNumberOfFileIngestThreads(numberOfThreads);
|
||||
}
|
||||
userPreferences.putInt(NUMBER_OF_FILE_INGEST_THREADS_KEY, numberOfThreads);
|
||||
|
||||
if (instance.fileIngestThreads.size() != numberOfThreads) {
|
||||
if (instance.fileIngestThreads.size() > numberOfThreads) {
|
||||
Long[] threadIds = instance.fileIngestThreads.keySet().toArray(new Long[instance.fileIngestThreads.size()]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user