19 package org.sleuthkit.autopsy.corecomponents;
21 import java.awt.Insets;
23 import java.util.Collection;
25 import java.util.TreeMap;
26 import java.util.logging.Level;
27 import javax.swing.BorderFactory;
28 import javax.swing.UIManager;
29 import javax.swing.UIManager.LookAndFeelInfo;
30 import javax.swing.UnsupportedLookAndFeelException;
31 import org.netbeans.spi.sendopts.OptionProcessor;
32 import org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI;
33 import org.openide.modules.ModuleInstall;
34 import org.openide.util.Lookup;
35 import org.openide.windows.WindowManager;
51 if (instance == null) {
66 UIManager.put(
"ViewTabDisplayerUI",
"org.sleuthkit.autopsy.corecomponents.NoTabsTabDisplayerUI");
67 UIManager.put(DefaultTabbedContainerUI.KEY_VIEW_CONTENT_BORDER, BorderFactory.createEmptyBorder());
68 UIManager.put(
"TabbedPane.contentBorderInsets",
new Insets(0, 0, 0, 0));
75 WindowManager.getDefault().invokeWhenUIReady(() -> {
76 Collection<? extends OptionProcessor> processors = Lookup.getDefault().lookupAll(OptionProcessor.class);
77 for (OptionProcessor processor : processors) {
79 OpenFromArguments argsProcessor = (OpenFromArguments) processor;
81 if (caseFile != null && !caseFile.equals(
"") && caseFile.endsWith(
".aut") &&
new File(caseFile).exists()) {
85 }
catch (Exception ex) {
86 logger.log(Level.SEVERE, String.format(
"Error opening case with metadata file path %s", caseFile), ex);
106 String caseDirName = null;
114 logger.log(Level.SEVERE, String.format(
"Error closing case with case directory %s", (null != caseDirName ? caseDirName :
"?")), ex);
115 }
catch (IllegalStateException ignored) {
124 if (System.getProperty(
"os.name").toLowerCase().contains(
"mac")) {
136 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
137 }
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
138 logger.log(Level.WARNING,
"Error setting OS-X look-and-feel", ex);
142 final String[] UI_MENU_ITEM_KEYS =
new String[]{
"MenuBarUI",};
143 Map<Object, Object> uiEntries =
new TreeMap<>();
144 for (String key : UI_MENU_ITEM_KEYS) {
145 uiEntries.put(key, UIManager.get(key));
149 for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
150 if (
"Nimbus".equals(info.getName())) {
152 UIManager.setLookAndFeel(info.getClassName());
153 }
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
154 logger.log(Level.WARNING,
"Error setting OS-X look-and-feel", ex);
161 uiEntries.entrySet().stream().forEach((entry) -> {
162 UIManager.put(entry.getKey(), entry.getValue());
static Installer instance
String getCaseDirectory()
static final Logger logger
static synchronized Installer getDefault()
static void invokeStartupDialog()
static final long serialVersionUID
static void open(String caseMetadataFilePath)
static Case getCurrentCase()
synchronized static Logger getLogger(String name)
static boolean isCaseOpen()