This commit is contained in:
U-BASIS\dgrove 2018-02-15 12:04:34 -05:00
parent cd980d223e
commit eb25ec3d80

View File

@ -1,7 +1,7 @@
/* /*
* Autopsy Forensic Browser * Autopsy Forensic Browser
* *
* Copyright 2011-2017 Basis Technology Corp. * Copyright 2011-2018 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> org * Contact: carrier <at> sleuthkit <dot> org
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
@ -18,13 +18,9 @@
*/ */
package org.sleuthkit.autopsy.corecomponents; package org.sleuthkit.autopsy.corecomponents;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import javax.swing.JComponent; import javax.swing.JComponent;
import org.openide.explorer.ExplorerManager; import org.openide.explorer.ExplorerManager;
@ -61,18 +57,16 @@ import org.sleuthkit.autopsy.coreutils.Logger;
* DataResultPanel. * DataResultPanel.
*/ */
@RetainLocation("editor") @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 static final Logger logger = Logger.getLogger(DataResultTopComponent.class.getName());
private final ExplorerManager explorerManager = new ExplorerManager(); private final ExplorerManager explorerManager = new ExplorerManager();
private final DataResultPanel dataResultPanel; //embedded component with all the logic private final DataResultPanel dataResultPanel; //embedded component with all the logic
private int dataContentTabIndex = 0;
private boolean isMain; private boolean isMain;
private String customModeName; private String customModeName;
//keep track of tcs opened for menu presenters //keep track of tcs opened for menu presenters
private static final List<String> activeComponentIds = Collections.synchronizedList(new ArrayList<String>()); private static final List<String> activeComponentIds = Collections.synchronizedList(new ArrayList<String>());
private static final Map<String, Integer> dataContentTabIndexes = Collections.synchronizedMap(new HashMap<String, Integer>());
/** /**
* Create a new data result top component * Create a new data result top component
@ -105,38 +99,24 @@ public class DataResultTopComponent extends TopComponent implements DataResult,
initComponents(); initComponents();
customizeComponent(isMain, name); customizeComponent(isMain, name);
} }
@Override
public boolean requestFocusInWindow() {
return super.requestFocusInWindow();
}
@Override @Override
public void componentActivated() { public void componentActivated() {
super.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(); DataContentTopComponent dataContentTopComponent = DataContentTopComponent.findInstance();
Node[] nodeList = explorerManager.getSelectedNodes(); Node[] nodeList = explorerManager.getSelectedNodes();
if (nodeList.length == 1) { if (nodeList.length == 1) {
dataContentTopComponent.setNode(nodeList[0]); dataContentTopComponent.setNode(nodeList[0]);
} else { } else {
dataContentTopComponent.setNode(null); 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) { 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_CLOSING_DISABLED, isMain); // set option to close compoment in GUI
putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true); putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true);
putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true); putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true);
addFocusListener(this);
activeComponentIds.add(title); activeComponentIds.add(title);
} }
@ -380,14 +359,4 @@ public class DataResultTopComponent extends TopComponent implements DataResult,
void setNumMatches(int matches) { void setNumMatches(int matches) {
this.dataResultPanel.setNumMatches(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");
}
} }