From decffdb631ba7e5777a06b847940ae77f65c162a Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Fri, 18 Jan 2013 14:34:29 -0500 Subject: [PATCH 1/3] Fixed bug that did not show the correct number of files in the results view for a given day. --- .../sleuthkit/autopsy/timeline/Simile2.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java index 1bf710fa2e..f1ba42180d 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java @@ -35,6 +35,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; @@ -413,9 +414,20 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar { //data.getNode().setScaleX(2); data.getNode().addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler() { + MonthEpoch myme = me; + + BarChart.Data mydata = data; @Override public void handle(MouseEvent e) { - final FsContentRootNode d = new FsContentRootNode("Test Root", (((MonthEpoch) data.getExtraValue()).getDays().get(Integer.valueOf(((String) data.getXValue()).split("-")[1]) - 1)).getEvents()); + int day = (Integer.valueOf(((String) data.getXValue()).split("-")[1])); + DayEpoch de = myme.getDay(day); + List afs = Collections.EMPTY_LIST; + if (de != null) { + afs = de.getEvents(); + } else { + logger.log(Level.SEVERE, "There were no events for the clicked-on day."); + } + final FsContentRootNode d = new FsContentRootNode("Test Root", afs); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { @@ -562,6 +574,17 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar { return numFiles; } + public DayEpoch getDay(int dayNum) { + DayEpoch de = null; + for (DayEpoch d : days) { + if (d.dayNum == dayNum) { + de = d; + break; + } + } + return de; + } + public void add(AbstractFile af, int day) { DayEpoch dayEpoch = null; for (DayEpoch de : days) { From 3b12f206585290bf9e7d22068b4d95c0ac46401f Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Fri, 18 Jan 2013 15:18:31 -0500 Subject: [PATCH 2/3] Delete unneeded member variable. --- Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java index f1ba42180d..80ff089e70 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java @@ -415,8 +415,7 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar { data.getNode().addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler() { MonthEpoch myme = me; - - BarChart.Data mydata = data; + @Override public void handle(MouseEvent e) { int day = (Integer.valueOf(((String) data.getXValue()).split("-")[1])); From 6971793c1d3bbb6ac47e4d195411ed5b790d322e Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Fri, 18 Jan 2013 16:27:49 -0500 Subject: [PATCH 3/3] Fixed bug that did not show days of the month that contained no data. Now all days of the month are shown even if there is no data. --- .../org/sleuthkit/autopsy/timeline/Simile2.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java b/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java index 80ff089e70..d2bc04444f 100644 --- a/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java +++ b/Timeline/src/org/sleuthkit/autopsy/timeline/Simile2.java @@ -403,7 +403,7 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar { final NumberAxis yAxis = new NumberAxis(); xAxis.setLabel("Day of Month"); yAxis.setLabel("Number of Events"); - ObservableList bcData = makeObservableListByMonthAllDays(me); + ObservableList bcData = makeObservableListByMonthAllDays(me, ye.getYear()); BarChart.Series series = new BarChart.Series(bcData); series.setName(me.getMonthName() + " " + ye.getYear()); @@ -441,10 +441,13 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar { return bc; } - private ObservableList makeObservableListByMonthAllDays(final MonthEpoch me) { + private ObservableList makeObservableListByMonthAllDays(final MonthEpoch me, int year) { ObservableList bcData = FXCollections.observableArrayList(); - for (DayEpoch day : me.getDays()) { - BarChart.Data d = new BarChart.Data(me.month + 1 + "-" + String.valueOf(day.dayNum), day.files.size()); + int totalDays = me.getTotalNumDays(year); + for (int i = 1; i <= totalDays; ++i) { + DayEpoch day = me.getDay(i); + int numFiles = day == null ? 0 : day.getNumFiles(); + BarChart.Data d = new BarChart.Data(me.month + 1 + "-" + i, numFiles); d.setExtraValue(me); bcData.add(d); } @@ -564,6 +567,12 @@ public class Simile2 extends CallableSystemAction implements Presenter.Toolbar { return month; } + public int getTotalNumDays(int year) { + Calendar cal = Calendar.getInstance(); + cal.set(year, month, 1); + return cal.getActualMaximum(Calendar.DAY_OF_MONTH); + } + @Override public int getNumFiles() { int numFiles = 0;