fix off by factor of 1000 bug in times, use the event id not the fileID

This commit is contained in:
jmillman 2016-05-25 11:27:29 -04:00
parent 37a2c07a98
commit 536d772502
3 changed files with 19 additions and 9 deletions

View File

@ -48,4 +48,8 @@ public class MergedEvent {
public Collection<Long> getEventIDs() { public Collection<Long> getEventIDs() {
return eventTypeMap.values(); return eventTypeMap.values();
} }
public Long getRepresentitiveEventID() {
return eventTypeMap.values().stream().findFirst().get();
}
} }

View File

@ -398,7 +398,7 @@ public class EventDB {
for (int i = 0; i < eventIDs.size(); i++) { for (int i = 0; i < eventIDs.size(); i++) {
eventMap.put(eventTypes.get(i), eventIDs.get(i)); eventMap.put(eventTypes.get(i), eventIDs.get(i));
} }
results.add(new MergedEvent(rs.getLong("time"), rs.getString("full_description"), rs.getLong("file_id"),eventMap)); results.add(new MergedEvent(rs.getLong("time")*1000, rs.getString("full_description"), rs.getLong("file_id"),eventMap));
} }
} catch (SQLException sqlEx) { } catch (SQLException sqlEx) {

View File

@ -64,7 +64,7 @@ import org.sleuthkit.autopsy.timeline.explorernodes.EventNode;
import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskCoreException;
/** /**
* The inner component that makes up the Lsit view. Manages the table. * The inner component that makes up the List view. Manages the table.
*/ */
class ListTimeline extends BorderPane { class ListTimeline extends BorderPane {
@ -91,7 +91,8 @@ class ListTimeline extends BorderPane {
private TableColumn<MergedEvent, MergedEvent> knownColumn; private TableColumn<MergedEvent, MergedEvent> knownColumn;
private final TimeLineController controller; private final TimeLineController controller;
private ObservableList<Long> selectedEventIDs = FXCollections.observableArrayList();
private final ObservableList<Long> selectedEventIDs = FXCollections.observableArrayList();
/** /**
* Constructor * Constructor
@ -143,6 +144,7 @@ class ListTimeline extends BorderPane {
selectedEventIDs.setAll(Iterables.getFirst(table.getSelectionModel().getSelectedItem().getEventIDs(), 0L)); selectedEventIDs.setAll(Iterables.getFirst(table.getSelectionModel().getSelectedItem().getEventIDs(), 0L));
} else { } else {
selectedEventIDs.setAll(table.getSelectionModel().getSelectedItems().stream() selectedEventIDs.setAll(table.getSelectionModel().getSelectedItems().stream()
.filter(Objects::nonNull)
.flatMap(mEvent -> mEvent.getEventIDs().stream()) .flatMap(mEvent -> mEvent.getEventIDs().stream())
.collect(Collectors.toSet())); .collect(Collectors.toSet()));
} }
@ -195,7 +197,7 @@ class ListTimeline extends BorderPane {
} }
/** /**
* TableCell to show the sub type of an event. * TableCell to show the (sub) type of an event.
*/ */
private class EventTypeCell extends EventTableCell { private class EventTypeCell extends EventTableCell {
@ -224,8 +226,7 @@ class ListTimeline extends BorderPane {
s += "C"; s += "C";
break; break;
default: default:
throw new AssertionError(type.name()); throw new UnsupportedOperationException("Unknown FileSystemType: " + type.name());
} }
} else { } else {
s += "_"; s += "_";
@ -299,7 +300,7 @@ class ListTimeline extends BorderPane {
event = null; event = null;
} else { } else {
//stash the event in the cell for derived classed to use. //stash the event in the cell for derived classed to use.
event = controller.getEventsModel().getEventById(item.getFileID()); event = controller.getEventsModel().getEventById(item.getRepresentitiveEventID());
} }
} }
} }
@ -311,6 +312,11 @@ class ListTimeline extends BorderPane {
private SingleEvent event; private SingleEvent event;
/**
* Get the SingleEvent this row represents.
*
* @return The SingleEvent this row represents.
*/
SingleEvent getEvent() { SingleEvent getEvent() {
return event; return event;
} }
@ -324,10 +330,10 @@ class ListTimeline extends BorderPane {
if (empty || item == null) { if (empty || item == null) {
event = null; event = null;
} else { } else {
event = controller.getEventsModel().getEventById(item.getFileID()); event = controller.getEventsModel().getEventById(item.getRepresentitiveEventID());
//make context menu //make context menu
try { try {
EventNode node = EventNode.createEventNode(item.getFileID(), controller.getEventsModel()); EventNode node = EventNode.createEventNode(event.getEventID(), controller.getEventsModel());
List<MenuItem> menuItems = new ArrayList<>(); List<MenuItem> menuItems = new ArrayList<>();
//for each actions avaialable on node, make a menu item. //for each actions avaialable on node, make a menu item.