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;
53 if (instance == null) {
68 UIManager.put(
"ViewTabDisplayerUI",
"org.sleuthkit.autopsy.corecomponents.NoTabsTabDisplayerUI");
69 UIManager.put(DefaultTabbedContainerUI.KEY_VIEW_CONTENT_BORDER, BorderFactory.createEmptyBorder());
70 UIManager.put(
"TabbedPane.contentBorderInsets",
new Insets(0, 0, 0, 0));
77 WindowManager.getDefault().invokeWhenUIReady(() -> {
78 Collection<? extends OptionProcessor> processors = Lookup.getDefault().lookupAll(OptionProcessor.class);
79 for (OptionProcessor processor : processors) {
81 OpenFromArguments argsProcessor = (OpenFromArguments) processor;
87 }
catch (Exception ex) {
88 logger.log(Level.SEVERE, String.format(
"Error opening case with metadata file path %s", caseFile), ex);
108 String caseDirName = null;
116 logger.log(Level.SEVERE, String.format(
"Error closing case with case directory %s", (null != caseDirName ? caseDirName :
"?")), ex);
117 }
catch (IllegalStateException ignored) {
126 if (System.getProperty(
"os.name").toLowerCase().contains(
"mac")) {
138 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
139 }
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
140 logger.log(Level.WARNING,
"Error setting OS-X look-and-feel", ex);
144 final String[] UI_MENU_ITEM_KEYS =
new String[]{
"MenuBarUI",};
145 Map<Object, Object> uiEntries =
new TreeMap<>();
146 for (String key : UI_MENU_ITEM_KEYS) {
147 uiEntries.put(key, UIManager.get(key));
151 for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
152 if (
"Nimbus".equals(info.getName())) {
154 UIManager.setLookAndFeel(info.getClassName());
155 }
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
156 logger.log(Level.WARNING,
"Error setting OS-X look-and-feel", ex);
163 uiEntries.entrySet().stream().forEach((entry) -> {
164 UIManager.put(entry.getKey(), entry.getValue());
static Installer instance
String getCaseDirectory()
static final Logger logger
static synchronized Installer getDefault()
static final long serialVersionUID
static void open(String caseMetadataFilePath)
static Case getCurrentCase()
synchronized static Logger getLogger(String name)
static StartupWindowProvider getInstance()
static boolean isCaseOpen()