diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java b/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java index c908f3b35d..0ecfec0b30 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Installer.java @@ -31,6 +31,7 @@ import org.openide.modules.ModuleInstall; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.casemodule.StartupWindowProvider; import org.sleuthkit.autopsy.coreutils.Logger; +import org.sleuthkit.autopsy.coreutils.ModuleSettings; /** * Manages this module's life cycle. Opens the startup dialog during startup. @@ -72,6 +73,8 @@ public class Installer extends ModuleInstall { private void setLookAndFeel() { if (System.getProperty("os.name").toLowerCase().contains("mac")) { //NON-NLS setOSXLookAndFeel(); + }else if (System.getProperty("os.name").toLowerCase().contains("nux")){ + setUnixLookAndFeel(); } } @@ -111,4 +114,24 @@ public class Installer extends ModuleInstall { UIManager.put(entry.getKey(), entry.getValue()); }); } + + private void setModuleSettings(String value) { + if (ModuleSettings.configExists("timeline")) { + ModuleSettings.setConfigSetting("timeline", "enable_timeline", value); + } else { + ModuleSettings.makeConfigFile("timeline"); + ModuleSettings.setConfigSetting("timeline", "enable_timeline", value); + } + } + + private void setUnixLookAndFeel(){ + try { + UIManager.put("swing.boldMetal", Boolean.FALSE); + UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); + setModuleSettings("true"); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { + logger.log(Level.WARNING, "Error setting crossplatform look-and-feel, setting default look-and-feel",ex); + setModuleSettings("false"); + } + } } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java b/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java index 4d81571db0..aca5c4e7f7 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java @@ -36,6 +36,7 @@ import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.core.Installer; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; +import org.sleuthkit.autopsy.coreutils.ModuleSettings; import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.BlackboardArtifact; @@ -97,7 +98,10 @@ public final class OpenTimelineAction extends CallableSystemAction { } } setEnabled(false); - } else { + }else if("false".equals(ModuleSettings.getConfigSetting("timeline", "enable_timeline"))) { + Platform.runLater(PromptDialogManager::showTimeLineDisabledMessage); + setEnabled(false); + }else { showTimeline(); } } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java b/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java index a216c9366a..a379fc7d8d 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/PromptDialogManager.java @@ -222,5 +222,20 @@ public final class PromptDialogManager { dialog.setHeaderText(Bundle.PromptDialogManager_showTooManyFiles_headerText()); dialog.showAndWait(); } + + @NbBundle.Messages({ + "PromptDialogManager.showTimeLineDisabledMessage.contentText=" + + "Timeline functionality is not available for Linux yet." + + " Timeline will be disabled. ", + "PromptDialogManager.showTimeLineDisabledMessage.headerText="}) + static void showTimeLineDisabledMessage() { + Alert dialog = new Alert(Alert.AlertType.INFORMATION, + Bundle.PromptDialogManager_showTimeLineDisabledMessage_contentText(), ButtonType.OK); + dialog.initModality(Modality.APPLICATION_MODAL); + dialog.setTitle(Bundle.Timeline_dialogs_title()); + setDialogIcons(dialog); + dialog.setHeaderText(Bundle.PromptDialogManager_showTimeLineDisabledMessage_headerText()); + dialog.showAndWait(); + } } diff --git a/ruleset.xml b/ruleset.xml index 558f99fc38..17e957e8e2 100644 --- a/ruleset.xml +++ b/ruleset.xml @@ -185,7 +185,8 @@ - +