diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
index bc52f30a28..abf63f9c03 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
@@ -26,7 +26,6 @@ IngestMessagePanel.sortByLabel.text=Sort by:
IngestMessagePanel.sortByComboBox.toolTipText=Sort messages by time (chronological order) or message priority
IngestDialogPanel.advancedButton.text=Advanced
AdvancedConfigurationDialog.applyButton.text=Apply
-IngestMessagesToolbar.ingestMessagesButton.text=0
-IngestMessagesToolbar.ingestMessagesButton.toolTipText=Ingest Messages
IngestMessageDetailsPanel.messageDetailsPane.contentType=text/html
IngestMessageDetailsPanel.messageDetailsPane.toolTipText=
+IngestMessagesToolbar.toolTipText=
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.form
index 869f4f0d9f..776d4ca6cd 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.form
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.form
@@ -2,11 +2,14 @@
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.java
index c53d60242c..0043e047f1 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.java
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessagesToolbar.java
@@ -16,11 +16,16 @@
* 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.Font;
+import java.awt.Graphics;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import javax.swing.JButton;
import org.openide.windows.Mode;
import org.openide.windows.WindowManager;
import org.sleuthkit.autopsy.casemodule.Case;
@@ -31,6 +36,8 @@ import org.sleuthkit.autopsy.casemodule.Case;
*/
public class IngestMessagesToolbar extends javax.swing.JPanel {
+ private IngestMessagesButton ingestMessagesButton = new IngestMessagesButton();
+
/** Creates new form IngestMessagesToolbar */
public IngestMessagesToolbar() {
initComponents();
@@ -46,78 +53,73 @@ public class IngestMessagesToolbar extends javax.swing.JPanel {
// //GEN-BEGIN:initComponents
private void initComponents() {
- ingestMessagesButton = new javax.swing.JButton();
-
+ setToolTipText(org.openide.util.NbBundle.getMessage(IngestMessagesToolbar.class, "IngestMessagesToolbar.toolTipText")); // NOI18N
setMaximumSize(new java.awt.Dimension(32767, 25));
- setPreferredSize(new java.awt.Dimension(80, 23));
-
- ingestMessagesButton.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
- ingestMessagesButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/ingest/eye-icon-16.png"))); // NOI18N
- ingestMessagesButton.setText(org.openide.util.NbBundle.getMessage(IngestMessagesToolbar.class, "IngestMessagesToolbar.ingestMessagesButton.text")); // NOI18N
- ingestMessagesButton.setToolTipText(org.openide.util.NbBundle.getMessage(IngestMessagesToolbar.class, "IngestMessagesToolbar.ingestMessagesButton.toolTipText")); // NOI18N
- ingestMessagesButton.setEnabled(false);
- ingestMessagesButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
- ingestMessagesButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
- ingestMessagesButton.setMargin(new java.awt.Insets(2, 0, 2, 2));
- ingestMessagesButton.setMaximumSize(new java.awt.Dimension(65, 23));
- ingestMessagesButton.setMinimumSize(new java.awt.Dimension(65, 23));
- ingestMessagesButton.setPreferredSize(new java.awt.Dimension(65, 23));
- ingestMessagesButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- ingestMessagesButtonActionPerformed(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(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(ingestMessagesButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(10, 10, 10))
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(ingestMessagesButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- );
+ setPreferredSize(new java.awt.Dimension(80, 25));
+ setLayout(new java.awt.BorderLayout());
}// //GEN-END:initComponents
- private void ingestMessagesButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ingestMessagesButtonActionPerformed
- showIngestMessages();
- }//GEN-LAST:event_ingestMessagesButtonActionPerformed
-
// Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JButton ingestMessagesButton;
// End of variables declaration//GEN-END:variables
+ private void customizeButton() {
+ ingestMessagesButton = new IngestMessagesButton();
+ setMaximumSize(new java.awt.Dimension(32767, 25));
+ setPreferredSize(new java.awt.Dimension(80, 25));
+
+ ingestMessagesButton.setFont(new java.awt.Font("Tahoma", 0, 10));
+ ingestMessagesButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/ingest/eye-icon-25.png")));
+ ingestMessagesButton.setToolTipText("Ingest Messages");
+ ingestMessagesButton.setBorder(null);
+ ingestMessagesButton.setBorderPainted(false);
+ ingestMessagesButton.setEnabled(false);
+ ingestMessagesButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ ingestMessagesButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
+ ingestMessagesButton.setMaximumSize(new java.awt.Dimension(44, 26));
+ ingestMessagesButton.setMinimumSize(new java.awt.Dimension(44, 26));
+ ingestMessagesButton.setPreferredSize(new java.awt.Dimension(44, 26));
+ ingestMessagesButton.addActionListener(new java.awt.event.ActionListener() {
+
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ showIngestMessages();
+ }
+ });
+ this.add(ingestMessagesButton, BorderLayout.CENTER);
+ }
private void customizeComponents() {
+
+ customizeButton();
+ this.setBorder(null);
+
IngestMessagePanel.addPropertyChangeSupportListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- final int numberMessages = (Integer)evt.getNewValue();
- ingestMessagesButton.setText(Integer.toString(numberMessages));
+ final int numberMessages = (Integer) evt.getNewValue();
+ //ingestMessagesButton.setText(Integer.toString(numberMessages));
+ //repaint button
+ ingestMessagesButton.setMessages(numberMessages);
+ ingestMessagesButton.repaint();
}
-
});
-
+
Case.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- if(evt.getPropertyName().equals(Case.CASE_CURRENT_CASE))
+ if (evt.getPropertyName().equals(Case.CASE_CURRENT_CASE)) {
setEnabled(evt.getNewValue() != null);
+ }
}
-
});
}
private void showIngestMessages() {
IngestMessageTopComponent tc = IngestMessageTopComponent.findInstance();
-
+
Mode mode = WindowManager.getDefault().findMode("floatingLeftBottom");
if (mode != null) {
//TopComponent[] tcs = mode.getTopComponents();
@@ -126,10 +128,35 @@ public class IngestMessagesToolbar extends javax.swing.JPanel {
//tc.requestActive();
}
}
-
+
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
ingestMessagesButton.setEnabled(enabled);
}
+
+ private static class IngestMessagesButton extends JButton {
+
+ private static final Font messagesFont = new java.awt.Font("Tahoma", 0, 9);
+ private int messages = 0;
+
+ @Override
+ public void paint(Graphics g) {
+ super.paint(g);
+
+ //paint text
+ String messageStr = Integer.toString(messages);
+ final int len = messageStr.length();
+ g.setFont(messagesFont);
+ g.setColor(Color.BLUE);
+ int x = getSize().width - len * 5 - 1;
+ if (x<0)
+ x = 0;
+ g.drawString(messageStr, x, 10);
+ }
+
+ void setMessages(int messages) {
+ this.messages = messages;
+ }
+ }
}
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/eye-icon-25.png b/Ingest/src/org/sleuthkit/autopsy/ingest/eye-icon-25.png
new file mode 100644
index 0000000000..2fed19628e
Binary files /dev/null and b/Ingest/src/org/sleuthkit/autopsy/ingest/eye-icon-25.png differ
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/eye-icon-32.png b/Ingest/src/org/sleuthkit/autopsy/ingest/eye-icon-32.png
new file mode 100644
index 0000000000..3b19632658
Binary files /dev/null and b/Ingest/src/org/sleuthkit/autopsy/ingest/eye-icon-32.png differ