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

ingest inbox: improved column resizing, rearranged columns, force window closed when app starts, increased initial size

This commit is contained in:
unknown
2012-03-02 15:36:05 -05:00
parent 24a3648b83
commit 96afe7d0e6
7 changed files with 61 additions and 45 deletions

View File

@@ -1,8 +1,8 @@
build.xml.data.CRC32=8af55c54
build.xml.data.CRC32=41cda326
build.xml.script.CRC32=7d5a04db
build.xml.stylesheet.CRC32=a56c6a5b@1.46.2
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=8af55c54
nbproject/build-impl.xml.data.CRC32=41cda326
nbproject/build-impl.xml.script.CRC32=8b2da6d1
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.46.2

View File

@@ -62,18 +62,14 @@ public class IngestMessageMainPanel extends JLayeredPane {
@Override
public void componentShown(ComponentEvent e) {
//doResize();
}
@Override
public void componentResized(ComponentEvent e) {
//we need to handle resizing ourselves due to absence of layout manager
//in layered layout
Dimension dim = getSize();
messagePanel.setPreferredSize(dim);
detailsPanel.setPreferredSize(dim);
messagePanel.setBounds(0, 0, dim.width, dim.height);
detailsPanel.setBounds(0, 0, dim.width, dim.height);
revalidate();
doResize();
}
});
@@ -85,6 +81,15 @@ public class IngestMessageMainPanel extends JLayeredPane {
this.setOpaque(true);
}
void doResize() {
Dimension dim = getSize();
messagePanel.setPreferredSize(dim);
detailsPanel.setPreferredSize(dim);
messagePanel.setBounds(0, 0, dim.width, dim.height);
detailsPanel.setBounds(0, 0, dim.width, dim.height);
revalidate();
}
IngestMessagePanel getMessagePanel() {
return messagePanel;
}

View File

@@ -60,7 +60,7 @@
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection code="tableModel" type="code"/>
</Property>
<Property name="autoResizeMode" type="int" value="3"/>
<Property name="autoResizeMode" type="int" value="0"/>
<Property name="autoscrolls" type="boolean" value="false"/>
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
<Color id="Hand Cursor"/>

View File

@@ -22,6 +22,7 @@ import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
@@ -54,6 +55,7 @@ class IngestMessagePanel extends javax.swing.JPanel {
private static Font notVisitedFont = new Font("Arial", Font.BOLD, 11);
private static Color ERROR_COLOR = new Color(255, 90, 90);
private int lastRowSelected = -1;
private boolean resized = false;
private enum COLUMN {
@@ -113,7 +115,7 @@ class IngestMessagePanel extends javax.swing.JPanel {
messageTable.setBackground(new java.awt.Color(221, 221, 235));
messageTable.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
messageTable.setModel(tableModel);
messageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_LAST_COLUMN);
messageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
messageTable.setAutoscrolls(false);
messageTable.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
messageTable.setGridColor(new java.awt.Color(204, 204, 204));
@@ -192,7 +194,6 @@ class IngestMessagePanel extends javax.swing.JPanel {
jScrollPane1.setWheelScrollingEnabled(true);
messageTable.setAutoscrolls(false);
//messageTable.setTableHeader(null);
messageTable.setShowHorizontalLines(false);
messageTable.setShowVerticalLines(false);
@@ -204,43 +205,45 @@ class IngestMessagePanel extends javax.swing.JPanel {
//column.setCellRenderer(new MessageTableRenderer());
column.setCellRenderer(renderer);
}
setTableSize(messageTable.getSize().width);
messageTable.setCellSelectionEnabled(false);
messageTable.setColumnSelectionAllowed(false);
messageTable.setRowSelectionAllowed(true);
messageTable.getSelectionModel().addListSelectionListener(new MessageVisitedSelection());
}
@Override
public void setPreferredSize(Dimension dmnsn) {
super.setPreferredSize(dmnsn);
final int width = messageTable.getSize().width;
setTableSize(width);
setTableSize(messageTable.getParent().getSize());
}
@Override
public void setSize(Dimension dmnsn) {
super.setSize(dmnsn);
final int width = messageTable.getSize().width;
setTableSize(width);
}
private void setTableSize(int width) {
for (int i = 0; i < 3; i++) {
void setTableSize(Dimension d) {
for (int i = 0; i < 3; ++i) {
TableColumn column = messageTable.getColumnModel().getColumn(i);
if (i == 0) {
column.setPreferredWidth(((int) (width * 0.66)));
column.setPreferredWidth(((int) (d.width * 0.23)));
} else if (i == 1) {
column.setPreferredWidth(((int) (width * 0.10)));
column.setPreferredWidth(((int) (d.width * 0.10)));
} else {
column.setPreferredWidth(((int) (width * 0.23)));
column.setPreferredWidth(((int) (d.width * 0.66)));
}
}
}
@Override
public void paint(Graphics g) {
super.paint(g);
//workaround to force initial resize when window fully initialized
if (resized == false) {
mainPanel.doResize();
resized = true;
}
}
public void addMessage(IngestMessage m) {
final int origMsgGroups = tableModel.getNumberUnreadGroups();
tableModel.addMessage(m);
@@ -331,13 +334,13 @@ class IngestMessagePanel extends javax.swing.JPanel {
switch (column) {
case 0:
colName = "Subject";
colName = "Module";
break;
case 1:
colName = "Num";
break;
case 2:
colName = "Module";
colName = "Subject";
break;
default:
;
@@ -353,12 +356,6 @@ class IngestMessagePanel extends javax.swing.JPanel {
switch (columnIndex) {
case 0:
ret = (Object) entry.messageGroup.getSubject();
break;
case 1:
ret = (Object) entry.messageGroup.getCount();
break;
case 2:
Object service = entry.messageGroup.getSource();
if (service == null) {
ret = "";
@@ -366,6 +363,12 @@ class IngestMessagePanel extends javax.swing.JPanel {
ret = (Object) entry.messageGroup.getSource().getName();
}
break;
case 1:
ret = (Object) entry.messageGroup.getCount();
break;
case 2:
ret = (Object) entry.messageGroup.getSubject();
break;
default:
logger.log(Level.SEVERE, "Invalid table column index: " + columnIndex);
break;
@@ -571,10 +574,11 @@ class IngestMessagePanel extends javax.swing.JPanel {
IngestMessage first = messages.get(0);
//make sure uniqness agrees
/*
if (!message.getSource().equals(first.getSource())
|| !message.getUniqueKey().equals(first.getUniqueKey())) {
throw new IllegalArgumentException("Tried to add a message to a wrong message group.");
}
} */
messages.add(message);
++count;
@@ -586,10 +590,11 @@ class IngestMessagePanel extends javax.swing.JPanel {
IngestMessage first = messages.get(0);
IngestMessage firstG = group.messages.get(0);
//make sure uniqness agrees
/*
if (!firstG.getSource().equals(first.getSource())
|| !firstG.getUniqueKey().equals(first.getUniqueKey())) {
throw new IllegalArgumentException("Tried to add a message to a wrong message group.");
}
} */
for (IngestMessage m : group.getMessages()) {
messages.add(m);
@@ -694,7 +699,7 @@ class IngestMessagePanel extends javax.swing.JPanel {
final Component cell = super.getTableCellRendererComponent(
table, value, false, false, row, column);
if (column == 0) {
if (column == 2) {
String val = (String) table.getModel().getValueAt(row, column);
setToolTipText(val);
//setText(val);

View File

@@ -98,10 +98,12 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
@Override
public void componentOpened() {
//logger.log(Level.INFO, "OPENED");
super.componentOpened();
//create manager instance
if (manager == null) {
manager = IngestManager.getDefault();
}
}
@Override
@@ -136,7 +138,7 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
}
mode.dockInto(this);
this.open();
}
}
}
@Override
@@ -149,8 +151,7 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
@Override
protected void componentActivated() {
//logger.log(Level.INFO, "ACTIVATED");
super.componentActivated();
super.componentActivated();
}
@Override

View File

@@ -35,9 +35,12 @@ public class Installer extends ModuleInstall {
logger.log(Level.INFO, "Initializing ingest manager");
final IngestManager manager = IngestManager.getDefault();
WindowManager.getDefault().invokeWhenUIReady(new Runnable() {
@Override
public void run() {
manager.initUI();
//force ingest inbox closed, even if previous state was open
//IngestMessageTopComponent.findInstance().close();
}
});
@@ -45,7 +48,9 @@ public class Installer extends ModuleInstall {
@Override
public boolean closing() {
//force ingest inbox closed on exit and save state as such
IngestMessageTopComponent.findInstance().close();
return true;
}
}

View File

@@ -12,7 +12,7 @@
<constraints>
<path orientation="horizontal" number="100" weight="0.5"/>
</constraints>
<bounds x="7" y="909" width="300" height="200" />
<bounds x="7" y="909" width="400" height="250" />
<frame state="0"/>
<!-- <active-tc id="IngestMessageTopComponent" /> -->
<empty-behavior permanent="true"/>