1
0
mirror of https://github.com/elisspace/autopsy.git synced 2026-09-06 02:24:30 +00:00

integrate result panel into timeline

result panel fixes
This commit is contained in:
adam-m
2013-01-22 18:10:44 -05:00
parent 20124f8ff5
commit d6f1bcf45d
4 changed files with 34 additions and 31 deletions

View File

@@ -65,8 +65,10 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
/**
* Creates new form DataResultPanel
*/
public DataResultPanel(boolean isMain, String title) {
DataResultPanel(boolean isMain, String title) {
this();
setName(title);
this.isMain = isMain;
this.title = title;
@@ -82,8 +84,10 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
* @param customContentViewer custom content viewer to send selection events
* to
*/
public DataResultPanel(String name, DataContentTopComponent customContentViewer) {
this(false, name);
DataResultPanel(String title, DataContentTopComponent customContentViewer) {
this(false, title);
setName(title);
//custom content viewer tc to setup for every result viewer
this.customContentViewer = customContentViewer; //TODO change to content panel
@@ -102,7 +106,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
DataResultPanel newDataResult = new DataResultPanel(false, title);
createInstanceCommon(pathText, givenNode, totalMatches, newDataResult);
newDataResult.open();
return newDataResult;
}
@@ -121,6 +125,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
DataResultPanel newDataResult = new DataResultPanel(title, dataContentWindow);
createInstanceCommon(pathText, givenNode, totalMatches, newDataResult);
newDataResult.open();
return newDataResult;
}
@@ -132,7 +137,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
newDataResult.setPath(pathText);
}
public void componentOpened() {
void open() {
// Add all the DataContentViewer to the tabbed pannel.
// (Only when the it's opened at the first time: tabCount = 0)
int totalTabs = this.dataResultTabbedPanel.getTabCount();
@@ -151,7 +156,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
}
}
if (this.preferredID().equals(DEFAULT_PREFERRED_ID)) {
if (isMain) {
// if no node selected on DataExplorer, clear the field
if (rootNode == null) {
setNode(rootNode);
@@ -159,11 +164,12 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
}
this.setVisible(true);
}
public void componentClosed() {
void close() {
pcs.firePropertyChange(REMOVE_FILESEARCH, "", this); // notify to remove this from the menu
// try to remove any references to this class
@@ -191,15 +197,14 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
this.pcs = null;
this.removeAll();
}
this.setVisible(true);
}
protected String preferredID() {
if (this.isMain) {
return DEFAULT_PREFERRED_ID;
} else {
return this.getName();
}
return this.getName();
}
@Override

View File

@@ -18,25 +18,14 @@
*/
package org.sleuthkit.autopsy.corecomponents;
import java.awt.Cursor;
import java.beans.PropertyChangeListener;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
import org.openide.nodes.Node;
import org.openide.util.Lookup;
import org.openide.windows.Mode;
import org.openide.windows.WindowManager;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataContent;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
import org.sleuthkit.autopsy.coreutils.Logger;
/**
@@ -48,6 +37,7 @@ public class DataResultTopComponent extends TopComponent implements DataResult {
private DataResultPanel dataResultPanel; //embedded component with all the logic
private boolean isMain;
private String customModeName;
/**
* Create a new data result top component
@@ -76,7 +66,7 @@ public class DataResultTopComponent extends TopComponent implements DataResult {
* @param customContentViewer custom content viewer to send selection events
* to
*/
public DataResultTopComponent(String name, String mode, DataContentTopComponent customContentViewer) {
DataResultTopComponent(String name, String mode, DataContentTopComponent customContentViewer) {
super();
this.customModeName = mode;
@@ -204,12 +194,12 @@ public class DataResultTopComponent extends TopComponent implements DataResult {
@Override
public void componentOpened() {
this.dataResultPanel.componentOpened();
this.dataResultPanel.open();
}
@Override
public void componentClosed() {
dataResultPanel.componentClosed();
dataResultPanel.close();
}
@Override

View File

@@ -304,6 +304,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
if (content != null) {
// get the fontmetrics
final Graphics graphics = ov.getGraphics();
if (graphics != null) { //TODO check why null and if this works
final FontMetrics metrics = graphics.getFontMetrics();
// for the "Name" column
@@ -315,6 +316,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
int colWidth = Math.min(getMaxColumnWidth(colIndex, metrics, margin, 8, props, content), 350);
ov.getOutline().getColumnModel().getColumn(colIndex).setPreferredWidth(colWidth);
}
}
}
// if there's no content just auto resize all columns

View File

@@ -33,7 +33,6 @@ import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
@@ -82,10 +81,10 @@ import org.openide.util.actions.CallableSystemAction;
import org.openide.util.actions.Presenter;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.corecomponents.DataContentTopComponent;
import org.sleuthkit.autopsy.corecomponents.DataResultPanel;
import org.sleuthkit.autopsy.corecomponents.DataResultTopComponent;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
import org.sleuthkit.autopsy.datamodel.AbstractFsContentNode;
import org.sleuthkit.autopsy.datamodel.DirectoryNode;
import org.sleuthkit.autopsy.datamodel.DisplayableItemNode;
import org.sleuthkit.autopsy.datamodel.DisplayableItemNodeVisitor;
@@ -126,7 +125,7 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar {
private ComboBox<String> dropdown_SelectYears; //Dropdown box for selecting years. Useful when the charts' scale means some years are unclickable, despite having events.
private final Stack<BarChart> stack_PrevCharts = new Stack<BarChart>(); //Stack for storing drill-up information.
private BarChart chart_TopLevel; //the topmost chart, used for resetting to default view.
private DataResultTopComponent dataResult;
private DataResultPanel dataResult;
private DataContentTopComponent dataContent;
//Swing components and JavafX components don't play super well together
@@ -139,7 +138,7 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar {
dataContent = DataContentTopComponent.createUndocked("Content", Node.EMPTY);
dataContent.setSize(1, 1);
dataContent.setAlignmentX(Component.LEFT_ALIGNMENT);
dataResult = DataResultTopComponent.createInstance("Timeline Results", "timeline", "", Node.EMPTY, 0, dataContent);
dataResult = DataResultPanel.createInstance("Timeline Results", "", Node.EMPTY, 0, dataContent);
dataResult.setAlignmentX(Component.LEFT_ALIGNMENT);
dataResult.setPreferredSize(new Dimension(700, 300));
logger.log(Level.INFO, "Successfully created viewers");
@@ -669,7 +668,14 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar {
if (file.isDir()) {
n = new DirectoryNode((Directory) file);
} else {
n = new FileNode((File) file);
n = new FileNode((File) file) {
@Override
public boolean isLeafTypeNode() {
return false;
}
};
}
return n;
}