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)