Autopsy
3.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
|
Inherits XYChart< DateTime, AggregateEvent >, and org.sleuthkit.autopsy.timeline.ui.TimeLineChart< X >.
Classes | |
class | DetailIntervalSelector |
class | StartTimeComparator |
Public Member Functions | |
void | clearIntervalSelector () |
synchronized SimpleBooleanProperty | getBandByType () |
synchronized void | setController (TimeLineController controller) |
void | setModel (FilteredEventsModel filteredEvents) |
IntervalSelector< DateTime > | newIntervalSelector (double x, Axis< DateTime > axis) |
DateTime | getDateTimeForPosition (double x) |
IntervalSelector<?extends DateTime > | getIntervalSelector () |
void | setIntervalSelector (IntervalSelector<?extends DateTime > newIntervalSelector) |
synchronized SimpleBooleanProperty | getOneEventPerRow () |
synchronized SimpleBooleanProperty | getTruncateAll () |
TimeLineController | getController () |
FilteredEventsModel | getFilteredEvents () |
ContextMenu | getChartContextMenu () |
void | setIntervalSelector (IntervalSelector<?extends X > newIntervalSelector) |
IntervalSelector< X > | newIntervalSelector (double x, Axis< X > axis) |
void | setModel (final FilteredEventsModel filteredEvents) |
Protected Member Functions | |
synchronized void | dataItemAdded (Series< DateTime, AggregateEvent > series, int i, Data< DateTime, AggregateEvent > data) |
synchronized void | dataItemChanged (Data< DateTime, AggregateEvent > data) |
synchronized void | dataItemRemoved (Data< DateTime, AggregateEvent > data, Series< DateTime, AggregateEvent > series) |
void | layoutChildren () |
synchronized void | layoutPlotChildren () |
synchronized void | seriesAdded (Series< DateTime, AggregateEvent > series, int i) |
synchronized void | seriesRemoved (Series< DateTime, AggregateEvent > series) |
void | requestChartLayout () |
Private Member Functions | |
void | checkNode (AggregateEventNode node, Predicate< AggregateEventNode > p, List< AggregateEventNode > nodes) |
void | clearGuideLine () |
synchronized double | layoutNodes (final List< Node > nodes, final double minY, final double xOffset) |
void | layoutProjectionMap () |
double | getParentXForValue (DateTime dt) |
Private Attributes | |
final SimpleBooleanProperty | bandByType = new SimpleBooleanProperty(false) |
ContextMenu | chartContextMenu |
TimeLineController | controller |
FilteredEventsModel | filteredEvents |
final SimpleObjectProperty< DescriptionVisibility > | descrVisibility = new SimpleObjectProperty<>(DescriptionVisibility.SHOWN) |
Line | guideLine |
IntervalSelector<?extends DateTime > | intervalSelector |
final InvalidationListener | layoutInvalidationListener |
final ReadOnlyDoubleWrapper | maxY = new ReadOnlyDoubleWrapper(0.0) |
final Group | nodeGroup = new Group() |
final Map< AggregateEvent, AggregateEventNode > | nodeMap |
final SimpleBooleanProperty | oneEventPerRow = new SimpleBooleanProperty(false) |
final ObservableMap< AggregateEventNode, Line > | projectionMap = FXCollections.observableHashMap() |
boolean | requiresLayout = true |
final ObservableList< Series< DateTime, AggregateEvent > > | seriesList = FXCollections.<Series<DateTime, AggregateEvent>>observableArrayList() |
final ObservableList< Series< DateTime, AggregateEvent > > | sortedSeriesList |
final SimpleBooleanProperty | truncateAll = new SimpleBooleanProperty(false) |
final SimpleDoubleProperty | truncateWidth = new SimpleDoubleProperty(200.0) |
Static Private Attributes | |
static final int | PROJECTED_LINE_Y_OFFSET = 5 |
static final int | PROJECTED_LINE_STROKE_WIDTH = 5 |
static final int | DEFAULT_ROW_HEIGHT = 24 |
Custom implementation of XYChart to graph events on a horizontal timeline.
The horizontal DateAxis controls the tick-marks and the horizontal layout of the nodes representing events. The vertical NumberAxis does nothing (although a custom implementation could help with the vertical layout?)
Series help organize events for the banding by event type, we could add a node to contain each band if we need a place for per band controls.
//TODO: refactor the projected lines to a separate class. -jm
Definition at line 92 of file EventDetailChart.java.
|
private |
Definition at line 505 of file EventDetailChart.java.
References org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.getEvent(), and org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.getSubNodePane().
|
private |
Definition at line 517 of file EventDetailChart.java.
void org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.clearIntervalSelector | ( | ) |
clear any references to previous interval selectors , including removing the interval selector from the ui / scene-graph
Implements org.sleuthkit.autopsy.timeline.ui.TimeLineChart< X >.
Definition at line 304 of file EventDetailChart.java.
|
protected |
Definition at line 382 of file EventDetailChart.java.
References org.sleuthkit.autopsy.timeline.events.AggregateEvent.getSpan().
|
protected |
Definition at line 397 of file EventDetailChart.java.
|
protected |
Definition at line 403 of file EventDetailChart.java.
synchronized SimpleBooleanProperty org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getBandByType | ( | ) |
Definition at line 309 of file EventDetailChart.java.
ContextMenu org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getChartContextMenu | ( | ) |
Definition at line 646 of file EventDetailChart.java.
TimeLineController org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getController | ( | ) |
Definition at line 632 of file EventDetailChart.java.
Referenced by org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.loadSubClusters().
DateTime org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getDateTimeForPosition | ( | double | x | ) |
get the DateTime along the x-axis that corresponds to the given x-coordinate in the coordinate system of this EventDetailChart
x | a x-coordinate in the space of this EventDetailChart |
Definition at line 349 of file EventDetailChart.java.
FilteredEventsModel org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getFilteredEvents | ( | ) |
Definition at line 639 of file EventDetailChart.java.
Referenced by org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.loadSubClusters().
IntervalSelector<? extends DateTime> org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getIntervalSelector | ( | ) |
Implements org.sleuthkit.autopsy.timeline.ui.TimeLineChart< X >.
Definition at line 354 of file EventDetailChart.java.
synchronized SimpleBooleanProperty org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getOneEventPerRow | ( | ) |
Definition at line 364 of file EventDetailChart.java.
|
private |
Definition at line 625 of file EventDetailChart.java.
synchronized SimpleBooleanProperty org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.getTruncateAll | ( | ) |
Definition at line 368 of file EventDetailChart.java.
|
protected |
Definition at line 410 of file EventDetailChart.java.
|
private |
layout the nodes in the given list, starting form the given minimum y coordinate.
nodes | |
minY |
Definition at line 529 of file EventDetailChart.java.
References org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.getEvent(), org.sleuthkit.autopsy.timeline.events.AggregateEvent.getSpan(), org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.getSubNodePane(), org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.setDescriptionWidth(), and org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.setSpanWidth().
|
protected |
Layout the nodes representing events via the following algorithm.
we start with a list of nodes (each representing an event) - sort the list of nodes by span start time of the underlying event - initialize empty map (maxXatY) from y-position to max used x-value - for each node: – autosize the node (based on text label) – get the event's start and end positions from the dateaxis – size the capsule representing event duration – starting from the top of the chart: — (1)check if maxXatY is to the left of the start position: ----—if maxXatY less than start position , good, put the current node here, mark end position as maxXatY, go to next node ----—if maxXatY greater than start position, increment y position, do ----------—check(1) again until maxXatY less than start position
Definition at line 431 of file EventDetailChart.java.
|
private |
|
inherited |
derived classes should implement this so as to supply an appropriate subclass of IntervalSelector
x | the initial x position of the new interval selector |
axis | the axis the new interval selector will be over |
IntervalSelector<DateTime> org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.newIntervalSelector | ( | double | x, |
Axis< DateTime > | axis | ||
) |
Definition at line 333 of file EventDetailChart.java.
|
protected |
Definition at line 696 of file EventDetailChart.java.
Referenced by org.sleuthkit.autopsy.timeline.ui.detailview.AggregateEventNode.loadSubClusters().
|
protected |
Definition at line 461 of file EventDetailChart.java.
|
protected |
Definition at line 470 of file EventDetailChart.java.
synchronized void org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.setController | ( | TimeLineController | controller | ) |
Implements org.sleuthkit.autopsy.timeline.TimeLineView.
Definition at line 314 of file EventDetailChart.java.
References org.sleuthkit.autopsy.timeline.TimeLineController.getEventsModel().
|
inherited |
void org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.setIntervalSelector | ( | IntervalSelector<?extends DateTime > | newIntervalSelector | ) |
Definition at line 359 of file EventDetailChart.java.
|
inherited |
Implemented in org.sleuthkit.autopsy.timeline.ui.TimeLineResultView.
void org.sleuthkit.autopsy.timeline.ui.detailview.EventDetailChart.setModel | ( | FilteredEventsModel | filteredEvents | ) |
Definition at line 320 of file EventDetailChart.java.
References org.sleuthkit.autopsy.timeline.events.FilteredEventsModel.getRequestedZoomParamters(), and org.sleuthkit.autopsy.timeline.TimeLineController.selectEventIDs().
|
private |
true == layout each event type in its own band, false == mix all the events together during layout
Definition at line 100 of file EventDetailChart.java.
|
private |
Definition at line 103 of file EventDetailChart.java.
|
private |
Definition at line 105 of file EventDetailChart.java.
|
staticprivate |
Definition at line 611 of file EventDetailChart.java.
|
private |
how much detail of the description to show in the ui
Definition at line 110 of file EventDetailChart.java.
|
private |
Definition at line 107 of file EventDetailChart.java.
|
private |
a user position-able vertical line to help the compare events
Definition at line 113 of file EventDetailChart.java.
|
private |
Definition at line 118 of file EventDetailChart.java.
|
private |
listener that triggers layout pass
Definition at line 121 of file EventDetailChart.java.
|
private |
the maximum y value used so far during the most recent layout pass
Definition at line 130 of file EventDetailChart.java.
|
private |
the group that all event nodes are added to. This facilitates scrolling by allowing a single translation of this group.
Definition at line 136 of file EventDetailChart.java.
|
private |
map from event to node
Definition at line 139 of file EventDetailChart.java.
|
private |
true == enforce that no two events can share the same 'row', leading to sparser but possibly clearer layout. false == put unrelated events in the same 'row', creating a denser more compact layout
Definition at line 153 of file EventDetailChart.java.
|
staticprivate |
Definition at line 96 of file EventDetailChart.java.
|
staticprivate |
Definition at line 94 of file EventDetailChart.java.
|
private |
Definition at line 155 of file EventDetailChart.java.
|
private |
flag indicating whether this chart actually needs a layout pass
Definition at line 159 of file EventDetailChart.java.
|
private |
list of series of data added to this chart TODO: replace this with a map from name to series? -jm
Definition at line 168 of file EventDetailChart.java.
|
private |
Definition at line 170 of file EventDetailChart.java.
|
private |
true == truncate all the labels to the greater of the size of their timespan indicator or the value of truncateWidth. false == don't truncate the labels, alow them to extend past the timespan indicator and off the edge of the screen
Definition at line 180 of file EventDetailChart.java.
|
private |
the width to truncate all labels to if truncateAll is true. adjustable via slider if truncateAll is true
Definition at line 184 of file EventDetailChart.java.
Copyright © 2012-2015 Basis Technology. Generated on: Mon Oct 19 2015
This work is licensed under a
Creative Commons Attribution-Share Alike 3.0 United States License.