From c53636c8ef86ddd99ea730402f6b5b9b1b6598da Mon Sep 17 00:00:00 2001 From: sidheshenator Date: Tue, 7 Jul 2015 11:18:49 -0400 Subject: [PATCH 1/3] Current open case not displayed in Open Recent Cases --- .../casemodule/OpenRecentCasePanel.java | 3 -- .../autopsy/casemodule/RecentCases.java | 42 +++++++++++++++---- .../autopsy/casemodule/UpdateRecentCases.java | 3 +- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java index 36277a8a5a..5469480c4b 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java @@ -18,9 +18,6 @@ */ package org.sleuthkit.autopsy.casemodule; -import java.awt.Dimension; -import java.awt.Event; -import java.awt.EventQueue; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java b/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java index 641d7d75eb..8649e487e5 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java @@ -30,6 +30,7 @@ import java.util.LinkedList; import java.util.List; import java.util.logging.Level; import javax.swing.JMenuItem; +import org.apache.commons.lang.ArrayUtils; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; import org.openide.util.actions.CallableSystemAction; @@ -45,7 +46,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; */ final class RecentCases extends CallableSystemAction implements Presenter.Menu { - static final int LENGTH = 5; + static final int LENGTH = 6; static final String NAME_PROP_KEY = "LBL_RecentCase_Name"; //NON-NLS static final String PATH_PROP_KEY = "LBL_RecentCase_Path"; //NON-NLS static final RecentCase BLANK_RECENTCASE = new RecentCase("", ""); @@ -358,7 +359,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; /** * Gets the recent case names. * - * @return caseNames An array String[LENGTH], newest case first, with any + * @return caseNames An array String[LENGTH - 1], newest case first, with any * extra spots filled with "" */ public String[] getRecentCaseNames() { @@ -366,9 +367,20 @@ import org.sleuthkit.autopsy.coreutils.Logger; Iterator mostRecentFirst = recentCases.descendingIterator(); int i = 0; + String currentCaseName = null; + try { + currentCaseName = Case.getCurrentCase().getName(); + } catch (IllegalStateException ex) { + // in case there is no current case. + } + while (mostRecentFirst.hasNext()) { - caseNames[i] = mostRecentFirst.next().name; - i++; + String name = mostRecentFirst.next().name; + if ((currentCaseName != null && !name.equals(currentCaseName)) || currentCaseName == null) { + // exclude currentCaseName from the caseNames[] + caseNames[i] = name; + i++; + } } while (i < caseNames.length) { @@ -376,23 +388,34 @@ import org.sleuthkit.autopsy.coreutils.Logger; i++; } - return caseNames; + // return last 5 case names + return (String[]) ArrayUtils.subarray(caseNames, 0, LENGTH - 1); } /** * Gets the recent case paths. * - * @return casePaths An array String[LENGTH], newest case first, with any + * @return casePaths An array String[LENGTH - 1], newest case first, with any * extra spots filled with "" */ public String[] getRecentCasePaths() { String[] casePaths = new String[LENGTH]; + String currentCasePath = null; + try { + currentCasePath = Case.getCurrentCase().getName(); + } catch (IllegalStateException ex) { + // in case there is no current case. + } Iterator mostRecentFirst = recentCases.descendingIterator(); int i = 0; while (mostRecentFirst.hasNext()) { - casePaths[i] = mostRecentFirst.next().path; - i++; + String path = mostRecentFirst.next().path; + if ((currentCasePath != null && !path.equals(currentCasePath)) || currentCasePath == null) { + // exclude currentCasePath from the casePaths[] + casePaths[i] = path; + i++; + } } while (i < casePaths.length) { @@ -400,7 +423,8 @@ import org.sleuthkit.autopsy.coreutils.Logger; i++; } - return casePaths; + // return last 5 case paths + return (String[]) ArrayUtils.subarray(casePaths, 0, LENGTH - 1); } /** diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java b/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java index 0355fc20fe..8476d17aa8 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java @@ -36,7 +36,8 @@ import org.openide.util.actions.SystemAction; /** the constructor */ UpdateRecentCases(){ - length = RecentCases.LENGTH; + // display last 5 cases. + length = RecentCases.LENGTH - 1; } /** From 809394e60fcf6ab21ef9ea3d3e7c821a27deacf1 Mon Sep 17 00:00:00 2001 From: sidheshenator Date: Fri, 7 Aug 2015 13:07:47 -0400 Subject: [PATCH 2/3] misc fix to RecentCases open recent case panel --- .../sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java | 8 ++++---- .../src/org/sleuthkit/autopsy/casemodule/RecentCases.java | 4 ++-- .../sleuthkit/autopsy/casemodule/UpdateRecentCases.java | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java index 5469480c4b..21a987c474 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java @@ -198,10 +198,10 @@ class OpenRecentCasePanel extends javax.swing.JPanel { try { if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) { JOptionPane.showMessageDialog(null, - NbBundle.getMessage(this.getClass(), + NbBundle.getMessage(OpenRecentCasePanel.class, "OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg", caseName), - NbBundle.getMessage(this.getClass(), + NbBundle.getMessage(OpenRecentCasePanel.class, "OpenRecentCasePanel.openCase.msgDlg.err"), JOptionPane.ERROR_MESSAGE); RecentCases.getInstance().removeRecentCase(caseName, casePath); // remove the recent case if it doesn't exist anymore @@ -263,10 +263,10 @@ class OpenRecentCasePanel extends javax.swing.JPanel { switch (column) { case 0: - colName = NbBundle.getMessage(this.getClass(), "OpenRecentCasePanel.colName.caseName"); + colName = NbBundle.getMessage(OpenRecentCasePanel.class, "OpenRecentCasePanel.colName.caseName"); break; case 1: - colName = NbBundle.getMessage(this.getClass(), "OpenRecentCasePanel.colName.path"); + colName = NbBundle.getMessage(OpenRecentCasePanel.class, "OpenRecentCasePanel.colName.path"); break; default: ; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java b/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java index 8649e487e5..f12cafdefd 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java @@ -402,7 +402,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; String[] casePaths = new String[LENGTH]; String currentCasePath = null; try { - currentCasePath = Case.getCurrentCase().getName(); + currentCasePath = Case.getCurrentCase().getConfigFilePath(); } catch (IllegalStateException ex) { // in case there is no current case. } @@ -442,7 +442,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; @Override public String getName() { //return NbBundle.getMessage(RecentCases.class, "CTL_RecentCases"); - return NbBundle.getMessage(this.getClass(), "RecentCases.getName.text"); + return NbBundle.getMessage(RecentCases.class, "RecentCases.getName.text"); } /** diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java b/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java index 8476d17aa8..4677925ab5 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/UpdateRecentCases.java @@ -69,14 +69,14 @@ import org.openide.util.actions.SystemAction; if(hasRecentCase){ comps[length] = new JSeparator(); JMenuItem clearMenu = new JMenuItem( - NbBundle.getMessage(this.getClass(), "UpdateRecentCases.menuItem.clearRecentCases.text")); + NbBundle.getMessage(UpdateRecentCases.class, "UpdateRecentCases.menuItem.clearRecentCases.text")); clearMenu.addActionListener(SystemAction.get(RecentCases.class)); comps[length+1] = clearMenu; } // otherwise, just create a disabled empty menu else{ comps = new JComponent[1]; - JMenuItem emptyMenu = new JMenuItem(NbBundle.getMessage(this.getClass(), "UpdateRecentCases.menuItem.empty")); + JMenuItem emptyMenu = new JMenuItem(NbBundle.getMessage(UpdateRecentCases.class, "UpdateRecentCases.menuItem.empty")); emptyMenu.addActionListener(new RecentItems("", "")); comps[0] = emptyMenu; comps[0].setEnabled(false); From 0cbed2d9f36fb64ce239416833981574b146b57f Mon Sep 17 00:00:00 2001 From: sidheshenator Date: Wed, 12 Aug 2015 11:21:11 -0400 Subject: [PATCH 3/3] Replaced instance.getClass() by Class.class - NbBundle.getMessage() --- .../org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java index 995246fd72..4152380491 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/OpenRecentCasePanel.java @@ -198,10 +198,10 @@ class OpenRecentCasePanel extends javax.swing.JPanel { try { if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) { JOptionPane.showMessageDialog(null, - NbBundle.getMessage(this.getClass(), + NbBundle.getMessage(OpenRecentCasePanel.class, "OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg", caseName), - NbBundle.getMessage(this.getClass(), + NbBundle.getMessage(OpenRecentCasePanel.class, "OpenRecentCasePanel.openCase.msgDlg.err"), JOptionPane.ERROR_MESSAGE); RecentCases.getInstance().removeRecentCase(caseName, casePath); // remove the recent case if it doesn't exist anymore