From 73bb9d26aebfed816df07f3779dc80059716683a Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Wed, 14 Feb 2018 13:48:46 -0500 Subject: [PATCH 1/4] Fixes for data content sync with data result tab. --- .../DataResultTopComponent.java | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java index e511112536..674a52bbf8 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java @@ -18,9 +18,13 @@ */ package org.sleuthkit.autopsy.corecomponents; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Level; import javax.swing.JComponent; import org.openide.explorer.ExplorerManager; @@ -57,16 +61,18 @@ import org.sleuthkit.autopsy.coreutils.Logger; * DataResultPanel. */ @RetainLocation("editor") -public class DataResultTopComponent extends TopComponent implements DataResult, ExplorerManager.Provider { +public class DataResultTopComponent extends TopComponent implements DataResult, FocusListener, ExplorerManager.Provider { private static final Logger logger = Logger.getLogger(DataResultTopComponent.class.getName()); private final ExplorerManager explorerManager = new ExplorerManager(); private final DataResultPanel dataResultPanel; //embedded component with all the logic + private int dataContentTabIndex = 0; private boolean isMain; private String customModeName; //keep track of tcs opened for menu presenters private static final List activeComponentIds = Collections.synchronizedList(new ArrayList()); + private static final Map dataContentTabIndexes = Collections.synchronizedMap(new HashMap()); /** * Create a new data result top component @@ -99,6 +105,39 @@ public class DataResultTopComponent extends TopComponent implements DataResult, initComponents(); customizeComponent(isMain, name); } + + @Override + public boolean requestFocusInWindow() { + return super.requestFocusInWindow(); + } + + @Override + public void componentActivated() { + super.componentActivated(); + + DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); + Node[] nodeList = explorerManager.getSelectedNodes(); + + if (nodeList.length == 1) { + dataContentTopComponent.setNode(nodeList[0]); + } else { + dataContentTopComponent.setNode(null); + } + + int selectedIndex = dataContentTopComponent.getTabPanels().getSelectedIndex(); + dataContentTabIndexes.put(dataResultPanel.getName(), selectedIndex); + } + + @Override + public void componentHidden() { + super.componentHidden(); + + DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); + Integer selectedIndex = dataContentTabIndexes.get(dataResultPanel.getName()); + if (selectedIndex != null) { + dataContentTopComponent.getTabPanels().setSelectedIndex(selectedIndex); + } + } private void customizeComponent(boolean isMain, String title) { this.isMain = isMain; @@ -114,6 +153,7 @@ public class DataResultTopComponent extends TopComponent implements DataResult, putClientProperty(TopComponent.PROP_CLOSING_DISABLED, isMain); // set option to close compoment in GUI putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true); putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true); + addFocusListener(this); activeComponentIds.add(title); } @@ -340,4 +380,14 @@ public class DataResultTopComponent extends TopComponent implements DataResult, void setNumMatches(int matches) { this.dataResultPanel.setNumMatches(matches); } + + @Override + public void focusGained(FocusEvent fe) { + System.out.println("focusGained"); + } + + @Override + public void focusLost(FocusEvent fe) { + System.out.println("focusLost"); + } } From eb25ec3d809436d28c0d62b45a180e3b66826e9f Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 15 Feb 2018 12:04:34 -0500 Subject: [PATCH 2/4] Cleanup. --- .../DataResultTopComponent.java | 51 ++++--------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java index 674a52bbf8..6e4ceeb18f 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2017 Basis Technology Corp. + * Copyright 2011-2018 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,13 +18,9 @@ */ package org.sleuthkit.autopsy.corecomponents; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.logging.Level; import javax.swing.JComponent; import org.openide.explorer.ExplorerManager; @@ -61,18 +57,16 @@ import org.sleuthkit.autopsy.coreutils.Logger; * DataResultPanel. */ @RetainLocation("editor") -public class DataResultTopComponent extends TopComponent implements DataResult, FocusListener, ExplorerManager.Provider { +public class DataResultTopComponent extends TopComponent implements DataResult, ExplorerManager.Provider { private static final Logger logger = Logger.getLogger(DataResultTopComponent.class.getName()); private final ExplorerManager explorerManager = new ExplorerManager(); private final DataResultPanel dataResultPanel; //embedded component with all the logic - private int dataContentTabIndex = 0; private boolean isMain; private String customModeName; //keep track of tcs opened for menu presenters private static final List activeComponentIds = Collections.synchronizedList(new ArrayList()); - private static final Map dataContentTabIndexes = Collections.synchronizedMap(new HashMap()); /** * Create a new data result top component @@ -105,38 +99,24 @@ public class DataResultTopComponent extends TopComponent implements DataResult, initComponents(); customizeComponent(isMain, name); } - - @Override - public boolean requestFocusInWindow() { - return super.requestFocusInWindow(); - } - + @Override public void componentActivated() { super.componentActivated(); - + + /* + * Syncronize the data content viewer to show the currently selected + * item in the data results if only one is selected, or show nothing + * otherwise. + */ DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); Node[] nodeList = explorerManager.getSelectedNodes(); - + if (nodeList.length == 1) { dataContentTopComponent.setNode(nodeList[0]); } else { dataContentTopComponent.setNode(null); } - - int selectedIndex = dataContentTopComponent.getTabPanels().getSelectedIndex(); - dataContentTabIndexes.put(dataResultPanel.getName(), selectedIndex); - } - - @Override - public void componentHidden() { - super.componentHidden(); - - DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); - Integer selectedIndex = dataContentTabIndexes.get(dataResultPanel.getName()); - if (selectedIndex != null) { - dataContentTopComponent.getTabPanels().setSelectedIndex(selectedIndex); - } } private void customizeComponent(boolean isMain, String title) { @@ -153,7 +133,6 @@ public class DataResultTopComponent extends TopComponent implements DataResult, putClientProperty(TopComponent.PROP_CLOSING_DISABLED, isMain); // set option to close compoment in GUI putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true); putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true); - addFocusListener(this); activeComponentIds.add(title); } @@ -380,14 +359,4 @@ public class DataResultTopComponent extends TopComponent implements DataResult, void setNumMatches(int matches) { this.dataResultPanel.setNumMatches(matches); } - - @Override - public void focusGained(FocusEvent fe) { - System.out.println("focusGained"); - } - - @Override - public void focusLost(FocusEvent fe) { - System.out.println("focusLost"); - } } From 818f8a22065403d77f5a51f3e161b658bd71c433 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 15 Feb 2018 12:15:49 -0500 Subject: [PATCH 3/4] Changed method ordering. --- .../DataResultTopComponent.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java index 6e4ceeb18f..bb2d0ae142 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java @@ -100,25 +100,6 @@ public class DataResultTopComponent extends TopComponent implements DataResult, customizeComponent(isMain, name); } - @Override - public void componentActivated() { - super.componentActivated(); - - /* - * Syncronize the data content viewer to show the currently selected - * item in the data results if only one is selected, or show nothing - * otherwise. - */ - DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); - Node[] nodeList = explorerManager.getSelectedNodes(); - - if (nodeList.length == 1) { - dataContentTopComponent.setNode(nodeList[0]); - } else { - dataContentTopComponent.setNode(null); - } - } - private void customizeComponent(boolean isMain, String title) { this.isMain = isMain; this.customModeName = null; @@ -290,6 +271,25 @@ public class DataResultTopComponent extends TopComponent implements DataResult, this.dataResultPanel.open(); } + @Override + public void componentActivated() { + super.componentActivated(); + + /* + * Syncronize the data content viewer to show the currently selected + * item in the data results if only one is selected, or show nothing + * otherwise. + */ + DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); + Node[] nodeList = explorerManager.getSelectedNodes(); + + if (nodeList.length == 1) { + dataContentTopComponent.setNode(nodeList[0]); + } else { + dataContentTopComponent.setNode(null); + } + } + @Override public void componentClosed() { super.componentClosed(); From 67dc40b4f8ef49ff54e4473ad0e4e0f8d640c0e8 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dgrove" Date: Thu, 15 Feb 2018 12:57:43 -0500 Subject: [PATCH 4/4] Cleanup. --- .../autopsy/corecomponents/DataResultTopComponent.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java index bb2d0ae142..eb9f8dad5b 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java @@ -280,8 +280,8 @@ public class DataResultTopComponent extends TopComponent implements DataResult, * item in the data results if only one is selected, or show nothing * otherwise. */ - DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); - Node[] nodeList = explorerManager.getSelectedNodes(); + final DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance(); + final Node[] nodeList = explorerManager.getSelectedNodes(); if (nodeList.length == 1) { dataContentTopComponent.setNode(nodeList[0]);