Autopsy  4.15.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, > Class Template Referenceabstract

Inherits org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.

Inherited by org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane, and org.sleuthkit.autopsy.timeline.ui.detailview.DetailViewPane.

Classes

class  TwoPartDateTime
 

Public Member Functions

Pane getContextLabelPane ()
 
Region getSpacer ()
 
Pane getSpecificLabelPane ()
 
void handleRefreshRequested (RefreshRequestedEvent event)
 
boolean needsRefresh ()
 
ReadOnlyBooleanProperty needsRefreshProperty ()
 

Static Public Member Functions

static Tooltip getDefaultTooltip ()
 

Protected Member Functions

 AbstractTimelineChart (TimeLineController controller)
 
void applySelectionEffect (NodeType node)
 
abstract void applySelectionEffect (NodeType node, Boolean applied)
 
abstract void clearData ()
 
final void createSeries ()
 
abstract double getAxisMargin ()
 
ChartType getChart ()
 
TimeLineController getController ()
 
EventsModel getEventsModel ()
 
abstract Task< Boolean > getNewUpdateTask ()
 
ObservableList< NodeType > getSelectedNodes ()
 
final XYChart.Series< X, Y > getSeries (final TimelineEventType eventType)
 
abstract ImmutableList< Node > getSettingsControls ()
 
abstract String getTickMarkLabel (X tickValue)
 
abstract double getTickSpacing ()
 
abstract ImmutableList< Node > getTimeNavigationControls ()
 
abstract ViewMode getViewMode ()
 
abstract Axis< X > getXAxis ()
 
abstract Axis< Y > getYAxis ()
 
abstract boolean hasCustomTimeNavigationControls ()
 
abstract Boolean isTickBold (X value)
 
synchronized void layoutDateLabels ()
 
final synchronized void refresh ()
 
void removeSelectionEffect (NodeType node)
 
void setChart (ChartType chart)
 

Protected Attributes

final ObservableList< XYChart.Series< X, Y > > dataSeries = FXCollections.<XYChart.Series<X, Y>>observableArrayList()
 
final Map< TimelineEventType, XYChart.Series< X, Y > > eventTypeToSeriesMap = new HashMap<>()
 

Private Member Functions

synchronized void addContextLabel (String labelText, double labelWidth, double labelX)
 
synchronized void addSpecificLabel (String labelText, double labelWidth, double labelX, boolean bold)
 

Private Attributes

ChartType chart
 
final Pane contextLabelPane = new Pane()
 
final ObservableList< NodeType > selectedNodes = FXCollections.observableArrayList()
 
final Region spacer = new Region()
 
final Pane specificLabelPane = new Pane()
 

Static Private Attributes

static final Tooltip DEFAULT_TOOLTIP = new Tooltip(Bundle.AbstractTimelineChart_defaultTooltip_text())
 
static final Logger logger = Logger.getLogger(AbstractTimelineChart.class.getName())
 
static final Border ONLY_LEFT_BORDER = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(0, 0, 0, 1)))
 

Detailed Description

Abstract base class for TimeLineChart based views.

Parameters
<X>The type of data plotted along the x axis
<Y>The type of data plotted along the y axis
<NodeType>The type of nodes used to represent data items
<ChartType>The type of the TimeLineChart<X> this class uses to plot the data. Must extend Region.

TODO: this is becoming (too?) closely tied to the notion that their is a XYChart doing the rendering. Is this a good idea? -jm

TODO: pull up common history context menu items out of derived classes? -jm

Definition at line 73 of file AbstractTimelineChart.java.

Constructor & Destructor Documentation

Constructor

Parameters
controllerThe TimelineController for this view.

Definition at line 257 of file AbstractTimelineChart.java.

Member Function Documentation

synchronized void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.addContextLabel ( String  labelText,
double  labelWidth,
double  labelX 
)
private

Add a Label Node to the contextual label container for the decluttered axis labels.

Parameters
labelTextThe String to add.
labelWidthThe width, in pixels, of the space to use for the label
labelXThe horizontal position, in pixels, in the specificPane of the text

Definition at line 421 of file AbstractTimelineChart.java.

synchronized void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.addSpecificLabel ( String  labelText,
double  labelWidth,
double  labelX,
boolean  bold 
)
private

Add a Text Node to the specific label container for the decluttered axis labels.

Parameters
labelTextThe String to add.
labelWidthThe width, in pixels, of the space available for the text.
labelXThe horizontal position, in pixels, in the specificPane of the text.
boldTrue if the text should be bold, false otherwise.

Definition at line 390 of file AbstractTimelineChart.java.

void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.applySelectionEffect ( NodeType  node)
protected
abstract void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.applySelectionEffect ( NodeType  node,
Boolean  applied 
)
abstractprotected

Apply this view's 'selection effect' to the given node, if applied is true. If applied is false, remove the affect

Parameters
nodeThe node to apply the 'effect' to
appliedTrue if the effect should be applied, false if the effect should not
abstract void org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.clearData ( )
abstractprotectedinherited
final void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.createSeries ( )
protected
abstract double org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getAxisMargin ( )
abstractprotected

Get the total amount of space (in pixels) the x-axis uses to pad the left and right sides. This value is used to keep decluttered axis aligned correctly.

Returns
The x-axis margin (in pixels)

Referenced by org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< String, Number, Node, EventCountsChart >.AbstractTimelineChart().

ChartType org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getChart ( )
protected
Pane org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getContextLabelPane ( )
TimeLineController org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.getController ( )
protectedinherited
static Tooltip org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getDefaultTooltip ( )
static

Get the tool tip to use for this view when no more specific Tooltip is needed.

Returns
The default Tooltip.

Definition at line 87 of file AbstractTimelineChart.java.

Referenced by org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane.CountsViewPane().

EventsModel org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.getEventsModel ( )
protectedinherited
abstract Task<Boolean> org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.getNewUpdateTask ( )
abstractprotectedinherited

Get a new background Task that fetches the appropriate data and loads it into this view.

Returns
A new task to execute on a background thread to reload this view with different data.

Referenced by org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.refresh().

ObservableList<NodeType> org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getSelectedNodes ( )
protected
final XYChart.Series<X, Y> org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getSeries ( final TimelineEventType  eventType)
protected

Get the series for the given EventType.

Parameters
eventTypeThe EventType to get the series for
Returns
A Series object to contain all the events with the given EventType

Definition at line 248 of file AbstractTimelineChart.java.

Referenced by org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane.CountsUpdateTask.call().

abstract ImmutableList<Node> org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.getSettingsControls ( )
abstractprotectedinherited

Get a List of Nodes containing settings widgets to insert into top ToolBar of the ViewFrame.

Returns
The List of settings Nodes.

Referenced by org.sleuthkit.autopsy.timeline.ui.ViewFrame.syncViewMode().

Region org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getSpacer ( )
Pane org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getSpecificLabelPane ( )
abstract String org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getTickMarkLabel ( tickValue)
abstractprotected

Get the label that should be used for a tick mark at the given value.

Parameters
tickValueThe value to get a label for.
Returns
a String to use for a tick mark label given a tick value.
abstract double org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getTickSpacing ( )
abstractprotected

Get the spacing, in pixels, between tick marks of the horizontal axis. This will be used to layout the decluttered replacement labels.

Returns
The spacing, in pixels, between tick marks of the horizontal axis
abstract ImmutableList<Node> org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.getTimeNavigationControls ( )
abstractprotectedinherited

Get a List of Nodes containing controls to insert into the lower time range ToolBar of the ViewFrame.

Returns
The List of Nodes.

Referenced by org.sleuthkit.autopsy.timeline.ui.ViewFrame.syncViewMode().

abstract ViewMode org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.getViewMode ( )
abstractprotectedinherited

Get the ViewMode for this view.

Returns
The ViewMode for this view.
abstract Axis<X> org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getXAxis ( )
abstractprotected

Get the X-Axis of this view's chart

Returns
The horizontal axis used by this view's chart
abstract Axis<Y> org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.getYAxis ( )
abstractprotected

Get the Y-Axis of this view's chart

Returns
The vertical axis used by this view's chart

Referenced by org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< String, Number, Node, EventCountsChart >.AbstractTimelineChart().

void org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.handleRefreshRequested ( RefreshRequestedEvent  event)
inherited

Handle a RefreshRequestedEvent from the events model by updating the view.

Parameters
eventThe RefreshRequestedEvent to handle.

Definition at line 100 of file AbstractTimeLineView.java.

References org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.refresh().

abstract boolean org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.hasCustomTimeNavigationControls ( )
abstractprotectedinherited

Does this view have custom time navigation controls that should replace the default ones from the ViewFrame?

Returns
True if this view have custom time navigation controls.

Referenced by org.sleuthkit.autopsy.timeline.ui.ViewFrame.syncViewMode().

abstract Boolean org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.isTickBold ( value)
abstractprotected

Should the tick mark at the given value be bold, because it has interesting data associated with it?

Parameters
valueA value along this view's x axis
Returns
True if the tick label for the given value should be bold ( has relevant data), false otherwise
synchronized void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.layoutDateLabels ( )
protected

Iterate through the list of tick-marks building a two level structure of replacement tick mark labels. (Visually) upper level has most detailed/highest frequency part of date/time (specific label). Second level has rest of date/time grouped by unchanging part (contextual label).

eg:

October-October-31_September-01_September-02_September-03

becomes:

_________30_________31___________01___________02___________03

_________October___________|_____________September___________

Definition at line 307 of file AbstractTimelineChart.java.

Referenced by org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane.CountsViewPane(), org.sleuthkit.autopsy.timeline.ui.detailview.DetailViewPane.DetailViewPane(), org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane.CountsUpdateTask.succeeded(), and org.sleuthkit.autopsy.timeline.ui.detailview.DetailViewPane.DetailsUpdateTask.succeeded().

boolean org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.needsRefresh ( )
inherited

Does the view represent an out-of-date state of the DB. It might if, for example, tags have been updated but the view was not refreshed.

Returns
True if the view does not represent the current state of the DB.

Definition at line 111 of file AbstractTimeLineView.java.

Referenced by org.sleuthkit.autopsy.timeline.ui.detailview.DetailViewPane.DetailsUpdateTask.call().

ReadOnlyBooleanProperty org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.needsRefreshProperty ( )
inherited

Get a ReadOnlyBooleanProperty that holds true if this view does not represent the current state of the DB>

Returns
A ReadOnlyBooleanProperty that holds the out-of-date state for this view.

Definition at line 122 of file AbstractTimeLineView.java.

final synchronized void org.sleuthkit.autopsy.timeline.ui.AbstractTimeLineView.refresh ( )
protectedinherited
void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.removeSelectionEffect ( NodeType  node)
protected

Remove this view's 'selection effect' from the given node.

Parameters
nodeThe node to remvoe the 'effect' from.

Definition at line 163 of file AbstractTimelineChart.java.

void org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.setChart ( ChartType  chart)
protected

Set the ChartType that implements this view.

Parameters
chartThe ChartType that implements this view.

Definition at line 144 of file AbstractTimelineChart.java.

Referenced by org.sleuthkit.autopsy.timeline.ui.countsview.CountsViewPane.CountsViewPane(), and org.sleuthkit.autopsy.timeline.ui.detailview.DetailViewPane.DetailViewPane().

Member Data Documentation

ChartType org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.chart
private
final Pane org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.contextLabelPane = new Pane()
private
final ObservableList<XYChart.Series<X, Y> > org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.dataSeries = FXCollections.<XYChart.Series<X, Y>>observableArrayList()
protected
final Tooltip org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.DEFAULT_TOOLTIP = new Tooltip(Bundle.AbstractTimelineChart_defaultTooltip_text())
staticprivate
final Map<TimelineEventType, XYChart.Series<X, Y> > org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.eventTypeToSeriesMap = new HashMap<>()
protected
final Logger org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.logger = Logger.getLogger(AbstractTimelineChart.class.getName())
staticprivate

Definition at line 75 of file AbstractTimelineChart.java.

final Border org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.ONLY_LEFT_BORDER = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(0, 0, 0, 1)))
staticprivate

Definition at line 79 of file AbstractTimelineChart.java.

final ObservableList<NodeType> org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.selectedNodes = FXCollections.observableArrayList()
private
final Region org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.spacer = new Region()
private
final Pane org.sleuthkit.autopsy.timeline.ui.AbstractTimelineChart< X, Y, NodeType extends Node, >.specificLabelPane = new Pane()
private

The documentation for this class was generated from the following file:

Copyright © 2012-2020 Basis Technology. Generated on: Mon Jul 6 2020
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.