diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
index 3e58d9c932..b195fc434e 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
@@ -22,7 +22,7 @@ IngestTopComponent.refreshFreqLabel.text=Refresh frequency
IngestDialogPanel.freqSliderLabel.text=Refresh interval (minutes)
IngestDialogPanel.freqSliderLabel.toolTipText=null
IngestDialogPanel.freqSlider.toolTipText=Maximum time in minutes for ingest modules to refresh and report data to user.
Lower value presents data more frequently but may impact performance and lenghten the overall ingest run.
Higher value is improves performance, but data will be refreshed less frequently (recommended for an unattended run).
The value can be adjusted only when no ingest module is currently running
-IngestMessagePanel.viewArtifactButton.toolTipText=Open in a viewer
-IngestMessagePanel.viewArtifactButton.text=View Artifact
-IngestMessagePanel.detailsViewerPane.contentType=text/html
-IngestMessagePanel.viewContentButton.text=View Content
+IngestMessageDetailsPanel.backButton.text=B
+IngestMessageDetailsPanel.viewArtifactButton.text=View Artifact
+IngestMessageDetailsPanel.viewContentButton.text=View Content
+IngestMessageDetailsPanel.messageDetailsPane.contentType=text/html
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form
new file mode 100644
index 0000000000..beaa9205bf
--- /dev/null
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form
@@ -0,0 +1,96 @@
+
+
+
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java
new file mode 100644
index 0000000000..13dc708666
--- /dev/null
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java
@@ -0,0 +1,180 @@
+/*
+ * Autopsy Forensic Browser
+ *
+ * Copyright 2011 Basis Technology Corp.
+ * Contact: carrier sleuthkit org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.sleuthkit.autopsy.ingest;
+
+import org.openide.util.Lookup;
+import org.sleuthkit.autopsy.corecomponentinterfaces.BlackboardResultViewer;
+import org.sleuthkit.datamodel.BlackboardArtifact;
+
+/**
+ * Details panel within IngestMessagePanel
+ */
+class IngestMessageDetailsPanel extends javax.swing.JPanel {
+
+ private IngestMessageMainPanel mainPanel;
+
+ /** Creates new form IngestMessageDetailsPanel */
+ IngestMessageDetailsPanel(IngestMessageMainPanel mainPanel) {
+ this.mainPanel = mainPanel;
+ initComponents();
+ customizeComponents();
+ }
+
+ private void customizeComponents() {
+ messageDetailsPane.setContentType("text/html");
+ viewArtifactButton.setEnabled(false);
+ viewContentButton.setEnabled(false);
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ backButton = new javax.swing.JButton();
+ viewArtifactButton = new javax.swing.JButton();
+ viewContentButton = new javax.swing.JButton();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ messageDetailsPane = new javax.swing.JEditorPane();
+
+ backButton.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.backButton.text")); // NOI18N
+ backButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ backButtonActionPerformed(evt);
+ }
+ });
+
+ viewArtifactButton.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.viewArtifactButton.text")); // NOI18N
+ viewArtifactButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ viewArtifactButtonActionPerformed(evt);
+ }
+ });
+
+ viewContentButton.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.viewContentButton.text")); // NOI18N
+ viewContentButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ viewContentButtonActionPerformed(evt);
+ }
+ });
+
+ messageDetailsPane.setBackground(new java.awt.Color(221, 221, 235));
+ messageDetailsPane.setContentType(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.messageDetailsPane.contentType")); // NOI18N
+ messageDetailsPane.setEditable(false);
+ jScrollPane1.setViewportView(messageDetailsPane);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(backButton)
+ .addGap(18, 18, 18)
+ .addComponent(viewArtifactButton)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(viewContentButton)
+ .addContainerGap(28, Short.MAX_VALUE))
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 285, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(backButton)
+ .addComponent(viewArtifactButton)
+ .addComponent(viewContentButton))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE))
+ );
+ }// //GEN-END:initComponents
+
+ private void viewContentButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewContentButtonActionPerformed
+ viewContent(evt);
+ }//GEN-LAST:event_viewContentButtonActionPerformed
+
+ private void viewArtifactButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewArtifactButtonActionPerformed
+ viewArtifact(evt);
+ }//GEN-LAST:event_viewArtifactButtonActionPerformed
+
+ private void backButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backButtonActionPerformed
+ mainPanel.showMessages();
+ }//GEN-LAST:event_backButtonActionPerformed
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton backButton;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JEditorPane messageDetailsPane;
+ private javax.swing.JButton viewArtifactButton;
+ private javax.swing.JButton viewContentButton;
+ // End of variables declaration//GEN-END:variables
+
+ private void viewArtifact(java.awt.event.ActionEvent evt) {
+
+ final IngestMessage message = mainPanel.getMessagePanel().getSelectedMessage();
+ if (message != null) {
+ BlackboardArtifact art = message.getData();
+ if (art != null) {
+ BlackboardResultViewer v = Lookup.getDefault().lookup(BlackboardResultViewer.class);
+ v.viewArtifact(art);
+ }
+ }
+
+ }
+
+ private void viewContent(java.awt.event.ActionEvent evt) {
+
+ final IngestMessage message = mainPanel.getMessagePanel().getSelectedMessage();
+ if (message != null) {
+ BlackboardArtifact art = message.getData();
+ if (art != null) {
+ BlackboardResultViewer v = Lookup.getDefault().lookup(BlackboardResultViewer.class);
+ v.viewArtifactContent(art);
+ }
+ }
+ }
+
+
+ void showDetails(int rowNumber) {
+ final IngestMessage message = mainPanel.getMessagePanel().getMessage(rowNumber);
+ if (message != null) {
+ String details = message.getDetails();
+ if (details != null) {
+ this.messageDetailsPane.setText(details);
+ } else {
+ this.messageDetailsPane.setText("");
+ }
+ if (message.getData() != null) {
+ viewArtifactButton.setEnabled(true);
+ viewContentButton.setEnabled(true);
+ } else {
+ viewArtifactButton.setEnabled(false);
+ viewContentButton.setEnabled(false);
+ }
+ } else {
+ viewArtifactButton.setEnabled(false);
+ viewContentButton.setEnabled(false);
+ messageDetailsPane.setText("");
+ }
+ }
+
+
+}
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageMainPanel.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageMainPanel.form
new file mode 100644
index 0000000000..e8a37cb403
--- /dev/null
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageMainPanel.form
@@ -0,0 +1,34 @@
+
+
+
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageMainPanel.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageMainPanel.java
new file mode 100644
index 0000000000..e4d005d41a
--- /dev/null
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageMainPanel.java
@@ -0,0 +1,156 @@
+/*
+ * Autopsy Forensic Browser
+ *
+ * Copyright 2011 Basis Technology Corp.
+ * Contact: carrier sleuthkit org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.sleuthkit.autopsy.ingest;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
+import java.util.logging.Logger;
+import javax.swing.JLayeredPane;
+
+/**
+ * the main layered pane container for messages table (IngestMessagePanel)
+ * and details view (IngestMessageDetailsPanel)
+ */
+public class IngestMessageMainPanel extends javax.swing.JPanel {
+
+ private IngestMessagePanel messagePanel;
+ private IngestMessageDetailsPanel detailsPanel;
+ private Logger logger = Logger.getLogger(IngestMessageMainPanel.class.getName());
+
+ /** Creates new form IngestMessageMainPanel */
+ public IngestMessageMainPanel() {
+ initComponents();
+ customizeComponents();
+ }
+
+ private void customizeComponents() {
+ messagePanel = new IngestMessagePanel(this);
+ detailsPanel = new IngestMessageDetailsPanel(this);
+
+ //we need to handle resizing ourselves due to absence of layout manager
+ //in layered layout
+ this.addComponentListener(new ComponentListener() {
+
+ @Override
+ public void componentHidden(ComponentEvent e) {
+ }
+
+ @Override
+ public void componentMoved(ComponentEvent e) {
+ }
+
+ @Override
+ public void componentShown(ComponentEvent e) {
+
+ }
+
+ @Override
+ public void componentResized(ComponentEvent e) {
+ setSize();
+ }
+ });
+
+ layeredPane.add(messagePanel, JLayeredPane.PALETTE_LAYER);
+ layeredPane.add(detailsPanel, JLayeredPane.DEFAULT_LAYER);
+
+ //TODO handle the initial size better so it resizes to current tc size
+ //(somehow the initial tc size is not set correctly)
+ //setBackground(Color.red);
+ //layeredPane.setBackground(Color.GREEN);
+ //messagePanel.setBackground(Color.blue);
+ Dimension dim = getPreferredSize();
+ messagePanel.setSize(dim);
+ detailsPanel.setSize(dim);
+
+ //messagePanel.setBounds(0, 0, dim.width, dim.height);
+ // detailsPanel.setBounds(0, 0, dim.width, dim.height);
+
+ this.setOpaque(true);
+ }
+
+ private void setSize() {
+ //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);
+
+ }
+
+ IngestMessagePanel getMessagePanel() {
+ return messagePanel;
+ }
+
+ IngestMessageDetailsPanel getDetailsPanel() {
+ return detailsPanel;
+ }
+
+ void showMessages() {
+ layeredPane.setLayer(detailsPanel, JLayeredPane.DEFAULT_LAYER);
+ layeredPane.setLayer(messagePanel, JLayeredPane.PALETTE_LAYER);
+ }
+
+ void showDetails(int rowNumber) {
+ detailsPanel.showDetails(rowNumber);
+
+ layeredPane.setLayer(detailsPanel, JLayeredPane.PALETTE_LAYER);
+ layeredPane.setLayer(messagePanel, JLayeredPane.DEFAULT_LAYER);
+
+ }
+
+ public void addMessage(IngestMessage ingestMessage) {
+ messagePanel.addMessage(ingestMessage);
+ }
+
+ public void clearMessages() {
+ messagePanel.clearMessages();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ layeredPane = new javax.swing.JLayeredPane();
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(layeredPane, javax.swing.GroupLayout.DEFAULT_SIZE, 454, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(layeredPane, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE)
+ );
+ }// //GEN-END:initComponents
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLayeredPane layeredPane;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.form
index fa69076fa3..75c355a3d0 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.form
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.form
@@ -19,28 +19,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -90,48 +74,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java
index a25c33423f..1389d7f1be 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java
@@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.ingest;
import java.awt.Color;
import java.awt.Component;
+import java.awt.Dimension;
import java.awt.Font;
import java.util.ArrayList;
import java.util.List;
@@ -32,28 +33,42 @@ import javax.swing.event.ListSelectionListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
-import org.openide.util.Lookup;
-import org.sleuthkit.autopsy.corecomponentinterfaces.BlackboardResultViewer;
import org.sleuthkit.autopsy.ingest.IngestMessage.*;
-import org.sleuthkit.datamodel.BlackboardArtifact;
/**
* Notification window showing messages from services to user
*
*/
-public class IngestMessagePanel extends javax.swing.JPanel {
+class IngestMessagePanel extends javax.swing.JPanel {
private MessageTableModel tableModel;
+ private IngestMessageMainPanel mainPanel;
private static Font visitedFont = new Font("Arial", Font.PLAIN, 11);
private static Font notVisitedFont = new Font("Arial", Font.BOLD, 11);
private int lastRowSelected = -1;
/** Creates new form IngestMessagePanel */
- public IngestMessagePanel() {
+ public IngestMessagePanel(IngestMessageMainPanel mainPanel) {
+ this.mainPanel = mainPanel;
tableModel = new MessageTableModel();
initComponents();
customizeComponents();
}
+
+ int getLastRowSelected() {
+ return this.lastRowSelected;
+ }
+
+ IngestMessage getSelectedMessage() {
+ if (lastRowSelected < 0)
+ return null;
+
+ return tableModel.getMessage(lastRowSelected);
+ }
+
+ IngestMessage getMessage(int rowNumber) {
+ return tableModel.getMessage(rowNumber);
+ }
/** This method is called from within the constructor to
* initialize the form.
@@ -66,10 +81,6 @@ public class IngestMessagePanel extends javax.swing.JPanel {
jScrollPane1 = new javax.swing.JScrollPane();
messageTable = new javax.swing.JTable();
- jScrollPane2 = new javax.swing.JScrollPane();
- detailsViewerPane = new javax.swing.JEditorPane();
- viewArtifactButton = new javax.swing.JButton();
- viewContentButton = new javax.swing.JButton();
setOpaque(false);
@@ -90,89 +101,28 @@ public class IngestMessagePanel extends javax.swing.JPanel {
messageTable.getTableHeader().setReorderingAllowed(false);
jScrollPane1.setViewportView(messageTable);
- detailsViewerPane.setBackground(new java.awt.Color(221, 221, 235));
- detailsViewerPane.setContentType(org.openide.util.NbBundle.getMessage(IngestMessagePanel.class, "IngestMessagePanel.detailsViewerPane.contentType")); // NOI18N
- detailsViewerPane.setEditable(false);
- jScrollPane2.setViewportView(detailsViewerPane);
-
- viewArtifactButton.setText(org.openide.util.NbBundle.getMessage(IngestMessagePanel.class, "IngestMessagePanel.viewArtifactButton.text")); // NOI18N
- viewArtifactButton.setToolTipText(org.openide.util.NbBundle.getMessage(IngestMessagePanel.class, "IngestMessagePanel.viewArtifactButton.toolTipText")); // NOI18N
- viewArtifactButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- viewArtifactButtonActionPerformed(evt);
- }
- });
-
- viewContentButton.setText(org.openide.util.NbBundle.getMessage(IngestMessagePanel.class, "IngestMessagePanel.viewContentButton.text")); // NOI18N
- viewContentButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- viewContentButtonActionPerformed(evt);
- }
- });
-
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap(106, Short.MAX_VALUE)
- .addComponent(viewArtifactButton)
- .addGap(18, 18, 18)
- .addComponent(viewContentButton))
- .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(viewContentButton)
- .addComponent(viewArtifactButton))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
);
}// //GEN-END:initComponents
- private void viewArtifactButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewArtifactButtonActionPerformed
- if (lastRowSelected < 0) {
- return;
- }
- final IngestMessage message = tableModel.getMessage(lastRowSelected);
- if (message != null) {
- BlackboardArtifact art = message.getData();
- if (art != null) {
- BlackboardResultViewer v = Lookup.getDefault().lookup(BlackboardResultViewer.class);
- v.viewArtifact(art);
- }
- }
-
- }//GEN-LAST:event_viewArtifactButtonActionPerformed
-
- private void viewContentButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewContentButtonActionPerformed
- if (lastRowSelected < 0) {
- return;
- }
- final IngestMessage message = tableModel.getMessage(lastRowSelected);
- if (message != null) {
- BlackboardArtifact art = message.getData();
- if (art != null) {
- BlackboardResultViewer v = Lookup.getDefault().lookup(BlackboardResultViewer.class);
- v.viewArtifactContent(art);
- }
- }
- }//GEN-LAST:event_viewContentButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JEditorPane detailsViewerPane;
private javax.swing.JScrollPane jScrollPane1;
- private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable messageTable;
- private javax.swing.JButton viewArtifactButton;
- private javax.swing.JButton viewContentButton;
// End of variables declaration//GEN-END:variables
private void customizeComponents() {
+ mainPanel.setOpaque(true);
+ jScrollPane1.setOpaque(true);
+ messageTable.setOpaque(false);
+
jScrollPane1.setWheelScrollingEnabled(true);
messageTable.setAutoscrolls(true);
@@ -184,7 +134,7 @@ public class IngestMessagePanel extends javax.swing.JPanel {
//customize column witdhs
//messageTable.setSize(260, 260);
- messageTable.setSize(messageTable.getParent().getPreferredSize());
+ //messageTable.setSize(messageTable.getParent().getPreferredSize());
final int width = messageTable.getSize().width;
TableColumn column = null;
for (int i = 0; i < 2; i++) {
@@ -201,12 +151,14 @@ public class IngestMessagePanel extends javax.swing.JPanel {
messageTable.setColumnSelectionAllowed(false);
messageTable.setRowSelectionAllowed(true);
messageTable.getSelectionModel().addListSelectionListener(new MessageVisitedSelection());
-
- detailsViewerPane.setContentType("text/html");
- viewArtifactButton.setEnabled(false);
- viewContentButton.setEnabled(false);
-
}
+
+ @Override
+ public void setSize(Dimension d) {
+ super.setSize(d);
+ messageTable.setSize(d);
+ }
+
public void addMessage(IngestMessage m) {
tableModel.addMessage(m);
@@ -223,28 +175,6 @@ public class IngestMessagePanel extends javax.swing.JPanel {
lastRowSelected = rowNumber;
}
- private void updateDetails(int rowNumber) {
- final IngestMessage message = tableModel.getMessage(rowNumber);
- if (message != null) {
- String details = message.getDetails();
- if (details != null) {
- this.detailsViewerPane.setText(details);
- } else {
- this.detailsViewerPane.setText("");
- }
- if (message.getData() != null) {
- viewArtifactButton.setEnabled(true);
- viewContentButton.setEnabled(true);
- } else {
- viewArtifactButton.setEnabled(false);
- viewContentButton.setEnabled(false);
- }
- } else {
- viewArtifactButton.setEnabled(false);
- viewContentButton.setEnabled(false);
- detailsViewerPane.setText("");
- }
- }
private class MessageTableModel extends AbstractTableModel {
//data
@@ -453,11 +383,12 @@ public class IngestMessagePanel extends javax.swing.JPanel {
}
if (selected != -1) {
setVisited(selected);
- updateDetails(selected);
+ mainPanel.showDetails(selected);
}
}
}
}
+
}
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.form
index b8a67a0dd3..37e264e504 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.form
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.form
@@ -16,12 +16,12 @@
-
+
-
+
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java
index ab795b5570..7dcfce0ae4 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageTopComponent.java
@@ -19,6 +19,7 @@
package org.sleuthkit.autopsy.ingest;
import java.awt.BorderLayout;
+import java.awt.Color;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
@@ -41,7 +42,7 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
private static IngestMessageTopComponent instance;
private static final Logger logger = Logger.getLogger(IngestMessageTopComponent.class.getName());
- private IngestMessagePanel messagePanel;
+ private IngestMessageMainPanel messagePanel;
private IngestManager manager;
private static String PREFERRED_ID = "IngestMessageTopComponent";
@@ -86,11 +87,11 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 385, Short.MAX_VALUE)
+ .addGap(0, 332, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 362, Short.MAX_VALUE)
+ .addGap(0, 210, Short.MAX_VALUE)
);
}// //GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
@@ -103,6 +104,8 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
if (manager == null) {
manager = IngestManager.getDefault();
}
+
+ //messagePanel.setSize(this.getSize());
}
@Override
@@ -131,6 +134,8 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
mode.dockInto(this);
this.open();
}
+
+ //messagePanel.setSize(this.getSize());
}
@Override
@@ -216,11 +221,12 @@ public final class IngestMessageTopComponent extends TopComponent implements Ing
private void customizeComponents() {
//custom GUI setup not done by builder
-
- messagePanel = new IngestMessagePanel();
- messagePanel.setOpaque(false);
+ messagePanel = new IngestMessageMainPanel();
+ messagePanel.setOpaque(true);
setLayout(new BorderLayout());
add(messagePanel, BorderLayout.CENTER);
+
+ //this.setBackground(Color.yellow);
}
/**
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestTopComponent.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestTopComponent.form
deleted file mode 100644
index 9da2a9ccfc..0000000000
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestTopComponent.form
+++ /dev/null
@@ -1,182 +0,0 @@
-
-
-
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestTopComponent.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestTopComponent.java
deleted file mode 100644
index 15de3e3e84..0000000000
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestTopComponent.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2011 Basis Technology Corp.
- * Contact: carrier sleuthkit org
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.sleuthkit.autopsy.ingest;
-
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
-import org.openide.util.NbBundle;
-import org.openide.windows.TopComponent;
-import org.sleuthkit.autopsy.casemodule.Case;
-import org.sleuthkit.autopsy.corecomponentinterfaces.DataExplorer;
-import org.sleuthkit.datamodel.Image;
-
-/**
- * Top component explorer for the Ingest module.
- */
-public final class IngestTopComponent extends TopComponent implements DataExplorer {
-
- private static IngestTopComponent instance;
- private static final Logger logger = Logger.getLogger(IngestTopComponent.class.getName());
- private IngestMessagePanel messagePanel;
-
- private IngestTopComponent() {
- initComponents();
- // customizeComponents();
- //registerListeners();
- setName(NbBundle.getMessage(IngestTopComponent.class, "CTL_IngestTopComponent"));
- setToolTipText(NbBundle.getMessage(IngestTopComponent.class, "HINT_IngestTopComponent"));
- //putClientProperty(TopComponent.PROP_UNDOCKING_DISABLED, Boolean.TRUE);
- putClientProperty(TopComponent.PROP_CLOSING_DISABLED, Boolean.TRUE);
-
- }
-
- public static synchronized IngestTopComponent getDefault() {
- if (instance == null) {
- instance = new IngestTopComponent();
- }
- return instance;
- }
-
- @Override
- public TopComponent getTopComponent() {
- return this;
- }
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- logger.log(Level.INFO, "Unhandled property change: " + evt.getPropertyName());
- }
-
- @Override
- public int getPersistenceType() {
- return TopComponent.PERSISTENCE_NEVER;
- }
-
-
- private void customizeComponents() {
- //custom GUI setup not done by builder
-
- messagePanel = new IngestMessagePanel();
-
- messagePanel.setOpaque(false);
- messageFrame.setOpaque(false);
- messageFrame.addComponentListener(new ComponentAdapter() {
-
- @Override
- public void componentResized(ComponentEvent e) {
-
- super.componentResized(e);
- messageFrame.setPreferredSize(messageFrame.getSize());
- }
- });
-
- //make messageframe on top
- this.setComponentZOrder(controlPanel, 1);
- messageFrame.setContentPane(messagePanel);
- messageFrame.pack();
- messageFrame.setVisible(true);
-
- }
-
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
- // //GEN-BEGIN:initComponents
- private void initComponents() {
-
- mainScrollPane = new javax.swing.JScrollPane();
- mainPanel = new javax.swing.JPanel();
- messageFrame = new javax.swing.JInternalFrame();
- controlPanel = new javax.swing.JPanel();
- refreshFreqLabel = new javax.swing.JLabel();
- mainProgressBar = new javax.swing.JProgressBar();
- ingestProgressLabel = new javax.swing.JLabel();
-
- mainScrollPane.setPreferredSize(new java.awt.Dimension(322, 749));
-
- mainPanel.setPreferredSize(new java.awt.Dimension(322, 749));
-
- messageFrame.setBorder(new javax.swing.border.LineBorder(javax.swing.UIManager.getDefaults().getColor("InternalFrame.inactiveTitleBackground"), 3, true));
- messageFrame.setMaximizable(true);
- messageFrame.setResizable(true);
- messageFrame.setTitle(org.openide.util.NbBundle.getMessage(IngestTopComponent.class, "IngestTopComponent.messageFrame.title")); // NOI18N
- messageFrame.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
- messageFrame.setFrameIcon(null);
- messageFrame.setOpaque(true);
- messageFrame.setPreferredSize(new java.awt.Dimension(280, 260));
- messageFrame.setVisible(true);
-
- javax.swing.GroupLayout messageFrameLayout = new javax.swing.GroupLayout(messageFrame.getContentPane());
- messageFrame.getContentPane().setLayout(messageFrameLayout);
- messageFrameLayout.setHorizontalGroup(
- messageFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 274, Short.MAX_VALUE)
- );
- messageFrameLayout.setVerticalGroup(
- messageFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 231, Short.MAX_VALUE)
- );
-
- org.openide.awt.Mnemonics.setLocalizedText(refreshFreqLabel, org.openide.util.NbBundle.getMessage(IngestTopComponent.class, "IngestTopComponent.refreshFreqLabel.text")); // NOI18N
-
- org.openide.awt.Mnemonics.setLocalizedText(ingestProgressLabel, org.openide.util.NbBundle.getMessage(IngestTopComponent.class, "IngestTopComponent.ingestProgressLabel.text")); // NOI18N
-
- javax.swing.GroupLayout controlPanelLayout = new javax.swing.GroupLayout(controlPanel);
- controlPanel.setLayout(controlPanelLayout);
- controlPanelLayout.setHorizontalGroup(
- controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(controlPanelLayout.createSequentialGroup()
- .addGroup(controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(controlPanelLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(mainProgressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 248, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(controlPanelLayout.createSequentialGroup()
- .addGap(90, 90, 90)
- .addComponent(ingestProgressLabel)))
- .addContainerGap(22, Short.MAX_VALUE))
- .addGroup(controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(controlPanelLayout.createSequentialGroup()
- .addGap(74, 74, 74)
- .addComponent(refreshFreqLabel)
- .addContainerGap(116, Short.MAX_VALUE)))
- );
- controlPanelLayout.setVerticalGroup(
- controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(controlPanelLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(mainProgressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(ingestProgressLabel)
- .addContainerGap(524, Short.MAX_VALUE))
- .addGroup(controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(controlPanelLayout.createSequentialGroup()
- .addGap(555, 555, 555)
- .addComponent(refreshFreqLabel)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- );
-
- javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
- mainPanel.setLayout(mainPanelLayout);
- mainPanelLayout.setHorizontalGroup(
- mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(mainPanelLayout.createSequentialGroup()
- .addGap(10, 10, 10)
- .addComponent(controlPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addContainerGap(48, Short.MAX_VALUE))
- .addGroup(mainPanelLayout.createSequentialGroup()
- .addComponent(messageFrame, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(58, Short.MAX_VALUE))
- );
- mainPanelLayout.setVerticalGroup(
- mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(mainPanelLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(controlPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(27, 27, 27)
- .addComponent(messageFrame, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(415, 415, 415))
- );
-
- mainScrollPane.setViewportView(mainPanel);
-
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
- this.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE)
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 771, Short.MAX_VALUE)
- );
- }// //GEN-END:initComponents
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JPanel controlPanel;
- private javax.swing.JLabel ingestProgressLabel;
- private javax.swing.JPanel mainPanel;
- private javax.swing.JProgressBar mainProgressBar;
- private javax.swing.JScrollPane mainScrollPane;
- private javax.swing.JInternalFrame messageFrame;
- private javax.swing.JLabel refreshFreqLabel;
- // End of variables declaration//GEN-END:variables
-
- @Override
- public void componentOpened() {
- logger.log(Level.INFO, "IngestTopComponent opened()");
- // IngestManager.getDefault(); //create initial instance
-
- }
-
- @Override
- public void componentClosed() {
- logger.log(Level.INFO, "IngestTopComponent closed()");
-
- }
-
- void writeProperties(java.util.Properties p) {
- // better to version settings since initial version as advocated at
- // http://wiki.apidesign.org/wiki/PropertyFiles
- p.setProperty("version", "1.0");
-
- }
-
- void readProperties(java.util.Properties p) {
- String version = p.getProperty("version");
-
- }
-
-
-
-
-}
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/floatingLeftBottomWsmode.xml b/Ingest/src/org/sleuthkit/autopsy/ingest/floatingLeftBottomWsmode.xml
index 6a1a962387..6909c42876 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/floatingLeftBottomWsmode.xml
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/floatingLeftBottomWsmode.xml
@@ -9,10 +9,10 @@
-
+
-
+