mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-19 19:14:55 +00:00
fix off by factor of 1000 bug in times, use the event id not the fileID
This commit is contained in:
parent
37a2c07a98
commit
536d772502
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user