mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 18:17:43 +00:00
Reverted DataResultViewerTable to original state and added a comment to KnownAndSlackFilter.
This commit is contained in:
parent
07a375bd12
commit
81e0823ba8
@ -18,8 +18,6 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.corecomponents;
|
||||
|
||||
import com.google.common.eventbus.EventBus;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import java.awt.Component;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.FontMetrics;
|
||||
@ -28,7 +26,6 @@ import java.awt.dnd.DnDConstants;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.beans.FeatureDescriptor;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyVetoException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
@ -41,8 +38,6 @@ import java.util.TreeSet;
|
||||
import java.util.logging.Level;
|
||||
import java.util.prefs.Preferences;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.InputVerifier;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.ListSelectionModel;
|
||||
import static javax.swing.SwingConstants.CENTER;
|
||||
@ -66,10 +61,6 @@ import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.nodes.Node.Property;
|
||||
import org.openide.nodes.NodeEvent;
|
||||
import org.openide.nodes.NodeListener;
|
||||
import org.openide.nodes.NodeMemberEvent;
|
||||
import org.openide.nodes.NodeReorderEvent;
|
||||
import org.openide.util.ImageUtilities;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.NbPreferences;
|
||||
@ -79,10 +70,6 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.ThreadConfined;
|
||||
import org.sleuthkit.autopsy.datamodel.NodeProperty;
|
||||
import org.sleuthkit.autopsy.datamodel.NodeSelectionInfo;
|
||||
import org.sleuthkit.autopsy.datamodel.BaseChildFactory;
|
||||
import org.sleuthkit.autopsy.datamodel.BaseChildFactory.PageChangeEvent;
|
||||
import org.sleuthkit.autopsy.datamodel.BaseChildFactory.PageCountChangeEvent;
|
||||
import org.sleuthkit.autopsy.datamodel.BaseChildFactory.PagingDestroyedEvent;
|
||||
|
||||
/**
|
||||
* A tabular result viewer that displays the children of the given root node
|
||||
@ -108,7 +95,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
private static final ImageIcon INTERESTING_SCORE_ICON = new ImageIcon(ImageUtilities.loadImage(YELLOW_CIRCLE_ICON_PATH, false));
|
||||
private static final ImageIcon NOTABLE_ICON_SCORE = new ImageIcon(ImageUtilities.loadImage(RED_CIRCLE_ICON_PATH, false));
|
||||
@NbBundle.Messages("DataResultViewerTable.firstColLbl=Name")
|
||||
static protected final String FIRST_COLUMN_LABEL = Bundle.DataResultViewerTable_firstColLbl();
|
||||
static private final String FIRST_COLUMN_LABEL = Bundle.DataResultViewerTable_firstColLbl();
|
||||
private final String title;
|
||||
private final Map<String, ETableColumn> columnMap;
|
||||
private final Map<Integer, Property<?>> propertiesMap;
|
||||
@ -116,8 +103,6 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
private final TableListener outlineViewListener;
|
||||
private final IconRendererTableListener iconRendererListener;
|
||||
private Node rootNode;
|
||||
private final Map<String, PagingSupport> pagingSupportMap = new HashMap<>();
|
||||
private PagingSupport pagingSupport = null;
|
||||
|
||||
/**
|
||||
* Constructs a tabular result viewer that displays the children of the
|
||||
@ -159,15 +144,11 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
this.columnMap = new HashMap<>();
|
||||
this.propertiesMap = new TreeMap<>();
|
||||
|
||||
this.pagingSupport = new PagingSupport();
|
||||
|
||||
/*
|
||||
* Execute the code generated by the GUI builder.
|
||||
*/
|
||||
initComponents();
|
||||
|
||||
this.pagingSupport.updateControls();
|
||||
|
||||
/*
|
||||
* Configure the child OutlineView (explorer view) component.
|
||||
*/
|
||||
@ -271,40 +252,6 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
*/
|
||||
if (rootNode != null && rootNode.getChildren().getNodesCount() > 0) {
|
||||
this.rootNode = rootNode;
|
||||
pagingSupport = pagingSupportMap.get(rootNode.getName());
|
||||
if (pagingSupport == null) {
|
||||
EventBus bus = BaseChildFactory.nodeNameToEventBusMap.get(rootNode.getName());
|
||||
pagingSupport = new PagingSupport();
|
||||
pagingSupport.registerWithEventBus(bus);
|
||||
pagingSupportMap.put(rootNode.getName(), pagingSupport);
|
||||
}
|
||||
pagingSupport.updateControls();
|
||||
|
||||
rootNode.addNodeListener(new NodeListener() {
|
||||
@Override
|
||||
public void childrenAdded(NodeMemberEvent nme) {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
setCursor(null);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void childrenRemoved(NodeMemberEvent nme) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void childrenReordered(NodeReorderEvent nre) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void nodeDestroyed(NodeEvent ne) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChange(PropertyChangeEvent evt) {
|
||||
}
|
||||
});
|
||||
|
||||
this.getExplorerManager().setRootContext(this.rootNode);
|
||||
setupTable();
|
||||
} else {
|
||||
@ -718,107 +665,6 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
}
|
||||
}
|
||||
|
||||
private class PagingSupport {
|
||||
|
||||
private int currentPage;
|
||||
private int totalPages;
|
||||
private EventBus eb;
|
||||
|
||||
PagingSupport() {
|
||||
currentPage = 1;
|
||||
totalPages = 0;
|
||||
eb = null;
|
||||
}
|
||||
|
||||
void reset() {
|
||||
currentPage = 1;
|
||||
totalPages = 0;
|
||||
|
||||
if (eb != null) {
|
||||
eb.unregister(this);
|
||||
eb = null;
|
||||
}
|
||||
updateControls();
|
||||
}
|
||||
|
||||
void registerWithEventBus(EventBus bus) {
|
||||
if (eb == bus) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (bus != null) {
|
||||
eb = bus;
|
||||
eb.register(this);
|
||||
}
|
||||
|
||||
updateControls();
|
||||
}
|
||||
|
||||
void nextPage() {
|
||||
currentPage++;
|
||||
postPageChangeEvent();
|
||||
}
|
||||
|
||||
void previousPage() {
|
||||
currentPage--;
|
||||
postPageChangeEvent();
|
||||
}
|
||||
|
||||
void gotoPage() {
|
||||
currentPage = Integer.decode(gotoPageTextField.getText());
|
||||
postPageChangeEvent();
|
||||
}
|
||||
|
||||
void postPageChangeEvent() {
|
||||
if (eb != null) {
|
||||
eb.post(new PageChangeEvent(currentPage));
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||
}
|
||||
updateControls();
|
||||
}
|
||||
|
||||
boolean isValidPage() {
|
||||
if (gotoPageTextField.getText().length() > 0) {
|
||||
Integer value = Integer.decode(gotoPageTextField.getText());
|
||||
return value >= 1 && value <= totalPages;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void subscribeToPageCountChange(PageCountChangeEvent event) {
|
||||
if (event != null) {
|
||||
totalPages = event.getPageCount();
|
||||
updateControls();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void subscribeToPagingDestroyedEvent(PagingDestroyedEvent event) {
|
||||
if (eb != null) {
|
||||
pagingSupportMap.remove(eb.identifier());
|
||||
}
|
||||
}
|
||||
|
||||
private void updateControls() {
|
||||
if (totalPages == 0) {
|
||||
pagePrevButton.setEnabled(false);
|
||||
pageNextButton.setEnabled(false);
|
||||
pageNumLabel.setText("");
|
||||
gotoPageTextField.setText("");
|
||||
gotoPageTextField.setEnabled(false);
|
||||
} else {
|
||||
pageNumLabel.setText(NbBundle.getMessage(this.getClass(), "DataResultViewerThumbnail.pageNumbers.curOfTotal",
|
||||
Integer.toString(currentPage), Integer.toString(totalPages)));
|
||||
|
||||
pageNextButton.setEnabled(!(currentPage == totalPages));
|
||||
pagePrevButton.setEnabled(!(currentPage == 1));
|
||||
gotoPageTextField.setEnabled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Listener which sets the custom icon renderer on columns which contain
|
||||
* icons instead of text when a column is added.
|
||||
@ -1187,133 +1033,21 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
pageLabel = new javax.swing.JLabel();
|
||||
pageNumLabel = new javax.swing.JLabel();
|
||||
pagesLabel = new javax.swing.JLabel();
|
||||
pagePrevButton = new javax.swing.JButton();
|
||||
pageNextButton = new javax.swing.JButton();
|
||||
outlineView = new OutlineView(DataResultViewerTable.FIRST_COLUMN_LABEL);
|
||||
gotoPageLabel = new javax.swing.JLabel();
|
||||
gotoPageTextField = new javax.swing.JTextField();
|
||||
|
||||
pageLabel.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.pageLabel.text")); // NOI18N
|
||||
|
||||
pageNumLabel.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.pageNumLabel.text")); // NOI18N
|
||||
|
||||
pagesLabel.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.pagesLabel.text")); // NOI18N
|
||||
|
||||
pagePrevButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back.png"))); // NOI18N
|
||||
pagePrevButton.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.pagePrevButton.text")); // NOI18N
|
||||
pagePrevButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back_disabled.png"))); // NOI18N
|
||||
pagePrevButton.setFocusable(false);
|
||||
pagePrevButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
pagePrevButton.setMargin(new java.awt.Insets(2, 0, 2, 0));
|
||||
pagePrevButton.setPreferredSize(new java.awt.Dimension(55, 23));
|
||||
pagePrevButton.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back_hover.png"))); // NOI18N
|
||||
pagePrevButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||
pagePrevButton.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
pagePrevButtonActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
pageNextButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward.png"))); // NOI18N
|
||||
pageNextButton.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.pageNextButton.text")); // NOI18N
|
||||
pageNextButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward_disabled.png"))); // NOI18N
|
||||
pageNextButton.setFocusable(false);
|
||||
pageNextButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
||||
pageNextButton.setMargin(new java.awt.Insets(2, 0, 2, 0));
|
||||
pageNextButton.setMaximumSize(new java.awt.Dimension(27, 23));
|
||||
pageNextButton.setMinimumSize(new java.awt.Dimension(27, 23));
|
||||
pageNextButton.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward_hover.png"))); // NOI18N
|
||||
pageNextButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
|
||||
pageNextButton.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
pageNextButtonActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
gotoPageLabel.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.gotoPageLabel.text")); // NOI18N
|
||||
|
||||
gotoPageTextField.setText(org.openide.util.NbBundle.getMessage(DataResultViewerTable.class, "DataResultViewerTable.gotoPageTextField.text")); // NOI18N
|
||||
gotoPageTextField.setInputVerifier(new InputVerifier() {
|
||||
@Override
|
||||
public boolean verify(JComponent input) {
|
||||
return pagingSupport.isValidPage();
|
||||
}});
|
||||
gotoPageTextField.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
gotoPageTextFieldActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(outlineView, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addContainerGap(373, Short.MAX_VALUE)
|
||||
.addComponent(pageLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(pageNumLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(pagesLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(pagePrevButton, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(pageNextButton, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(gotoPageLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(gotoPageTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {pageNextButton, pagePrevButton});
|
||||
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(pageLabel)
|
||||
.addComponent(pageNumLabel)
|
||||
.addComponent(pagesLabel)
|
||||
.addComponent(pagePrevButton, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(pageNextButton, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(gotoPageLabel)
|
||||
.addComponent(gotoPageTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(outlineView, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {pageNextButton, pagePrevButton});
|
||||
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void pagePrevButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pagePrevButtonActionPerformed
|
||||
pagingSupport.previousPage();
|
||||
}//GEN-LAST:event_pagePrevButtonActionPerformed
|
||||
|
||||
private void pageNextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pageNextButtonActionPerformed
|
||||
pagingSupport.nextPage();
|
||||
}//GEN-LAST:event_pageNextButtonActionPerformed
|
||||
|
||||
private void gotoPageTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gotoPageTextFieldActionPerformed
|
||||
pagingSupport.gotoPage();
|
||||
}//GEN-LAST:event_gotoPageTextFieldActionPerformed
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(outlineView, javax.swing.GroupLayout.DEFAULT_SIZE, 691, Short.MAX_VALUE)
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(outlineView, javax.swing.GroupLayout.DEFAULT_SIZE, 366, Short.MAX_VALUE)
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JLabel gotoPageLabel;
|
||||
private javax.swing.JTextField gotoPageTextField;
|
||||
private org.openide.explorer.view.OutlineView outlineView;
|
||||
private javax.swing.JLabel pageLabel;
|
||||
private javax.swing.JButton pageNextButton;
|
||||
private javax.swing.JLabel pageNumLabel;
|
||||
private javax.swing.JButton pagePrevButton;
|
||||
private javax.swing.JLabel pagesLabel;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,8 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
import org.sleuthkit.datamodel.TskData;
|
||||
|
||||
/**
|
||||
*
|
||||
* Predicate that can be used to filter known and/or slack files from
|
||||
* Content collections based on user preferences.
|
||||
*/
|
||||
class KnownAndSlackFilter<T extends Content> implements Predicate<T> {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user