19 package org.sleuthkit.autopsy.corecomponents;
21 import java.util.ArrayList;
22 import java.util.Collection;
23 import java.util.Collections;
24 import java.util.List;
25 import java.util.logging.Level;
26 import javax.swing.JComponent;
27 import org.openide.explorer.ExplorerManager;
28 import org.openide.explorer.ExplorerUtils;
29 import org.openide.nodes.Node;
30 import org.openide.util.NbBundle;
31 import org.openide.windows.Mode;
32 import org.openide.windows.RetainLocation;
33 import org.openide.windows.TopComponent;
34 import org.openide.windows.WindowManager;
70 @RetainLocation(
"editor")
74 private static final List<String> activeComponentIds = Collections.synchronizedList(
new ArrayList<String>());
100 initInstance(description, node, childNodeCount, resultViewTopComponent);
101 return resultViewTopComponent;
125 initInstance(description, node, childNodeCount, resultViewTopComponent);
126 return resultViewTopComponent;
147 return resultViewTopComponent;
162 resultViewTopComponent.
open();
163 resultViewTopComponent.
setNode(node);
164 resultViewTopComponent.
setPath(description);
165 resultViewTopComponent.requestActive();
190 initInstance(description, node, childNodeCount, newDataResult);
191 return newDataResult;
213 this(
true, title, null, Collections.emptyList(), null);
238 this.isMain = isMain;
239 this.explorerManager =
new ExplorerManager();
240 associateLookup(ExplorerUtils.createLookup(explorerManager, getActionMap()));
241 this.customModeName = mode;
242 this.dataResultPanel =
new DataResultPanel(title, isMain, viewers, contentViewTopComponent);
244 customizeComponent(title);
253 putClientProperty(TopComponent.PROP_CLOSING_DISABLED, isMain);
254 putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED,
true);
255 putClientProperty(TopComponent.PROP_DRAGGING_DISABLED,
true);
256 activeComponentIds.add(title);
261 return explorerManager;
271 return new ArrayList<>(activeComponentIds);
276 if (customModeName == null) {
277 return TopComponent.PERSISTENCE_NEVER;
279 return TopComponent.PERSISTENCE_ALWAYS;
285 if (customModeName != null) {
286 Mode mode = WindowManager.getDefault().findMode(customModeName);
288 logger.log(Level.INFO,
"Found custom mode, setting: {0}", customModeName);
291 logger.log(Level.WARNING,
"Could not find mode: {0}, will dock into the default one", customModeName);
304 super.componentOpened();
305 this.dataResultPanel.
open();
310 super.componentActivated();
318 final Node[] nodeList = explorerManager.getSelectedNodes();
321 if (nodeList.length == 1) {
322 selectedNode = nodeList[0];
335 if (selectedNode != dataContentTopComponent.getNode()) {
336 dataContentTopComponent.
setNode(selectedNode);
342 super.componentClosed();
343 activeComponentIds.remove(this.getName());
344 dataResultPanel.close();
359 dataResultPanel.
setNode(selectedNode);
369 dataResultPanel.
setPath(pathText);
385 return (!this.isMain) || openCase.
hasData() ==
false;
415 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
416 this.setLayout(layout);
417 layout.setHorizontalGroup(
418 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
419 .addComponent(dataResultPanelLocal, javax.swing.GroupLayout.DEFAULT_SIZE, 967, Short.MAX_VALUE)
421 layout.setVerticalGroup(
422 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
423 .addComponent(dataResultPanelLocal, javax.swing.GroupLayout.DEFAULT_SIZE, 579, Short.MAX_VALUE)
448 this(
false, title, null, Collections.emptyList(), null);
void setNumberOfChildNodes(Integer numberOfChildNodes)
final DataResultPanel dataResultPanel
static final KeyStroke BOOKMARK_SHORTCUT
List< DataResultViewer > getViewers()
void resetTabs(Node node)
static Case getOpenCase()
void setNode(Node selectedNode)
static DataResultTopComponent createInstance(String title, String description, Node node, int childNodeCount, Collection< DataResultViewer > viewers)
void customizeComponent(String title)
void setTitle(String title)
void setPath(String description)
static DataResultTopComponent createInstance(String title, String description, Node node, int childNodeCount)
static List< String > getActiveComponentIds()
void setNode(Node rootNode)
List< DataResultViewer > getViewers()
static synchronized DataContentTopComponent findInstance()
DataResultTopComponent(boolean isMain, String title, String mode, Collection< DataResultViewer > viewers, DataContentTopComponent contentViewTopComponent)
static void initInstance(String description, Node node, int childNodeCount, DataResultTopComponent resultViewTopComponent)
void setSelectedNodes(Node[] selectedNodes)
final ExplorerManager explorerManager
DataResultTopComponent(boolean isMain, String title)
final String customModeName
void componentActivated()
synchronized static Logger getLogger(String name)
DataResultTopComponent(String title)
ExplorerManager getExplorerManager()
void setSelectedNodes(Node[] selected)
void setPath(String pathText)
static DataResultTopComponent createInstance(String title, String mode, String description, Node node, int childNodeCount, DataContentTopComponent contentViewTopComponent)
void setNumberOfChildNodes(int childNodeCount)
static DataResultTopComponent createInstance(String title)
void setNode(Node selectedNode)