19package org.sleuthkit.autopsy.timeline.ui.detailview;
21import java.util.Collection;
22import java.util.Collections;
24import javafx.event.EventHandler;
25import javafx.geometry.Pos;
26import javafx.scene.Node;
27import javafx.scene.control.OverrunStyle;
28import javafx.scene.input.MouseEvent;
29import javafx.scene.layout.Border;
30import javafx.scene.layout.BorderStroke;
31import javafx.scene.layout.BorderStrokeStyle;
32import javafx.scene.layout.BorderWidths;
33import javafx.scene.layout.CornerRadii;
34import static javafx.scene.layout.Region.USE_PREF_SIZE;
35import org.sleuthkit.autopsy.coreutils.Logger;
36import static org.sleuthkit.autopsy.timeline.ui.EventTypeUtils.getImage;
37import org.sleuthkit.autopsy.timeline.ui.detailview.datamodel.SingleDetailsViewEvent;
42final class SingleEventNode
extends EventNodeBase<SingleDetailsViewEvent> {
44 private static final Logger LOGGER = Logger.getLogger(SingleEventNode.class.getName());
46 static void show(Node b,
boolean show) {
50 static final CornerRadii CORNER_RADII_1 =
new CornerRadii(1);
51 private static final BorderWidths CLUSTER_BORDER_WIDTHS =
new BorderWidths(0, 0, 0, 2);
54 EventHandler<MouseEvent> getDoubleClickHandler() {
55 return mouseEvent -> {
59 SingleEventNode(DetailsChartLane<?> chart, SingleDetailsViewEvent event, MultiEventNodeBase<?, ?, ?> parent) {
60 super(event, parent, chart);
61 this.descrLabel.setText(event.getFullDescription());
62 eventTypeImageView.setImage(getImage(getEventType()));
63 descrLabel.setTextOverrun(OverrunStyle.CENTER_ELLIPSIS);
64 descrLabel.setGraphic(eventTypeImageView);
65 descrLabel.setPrefWidth(USE_COMPUTED_SIZE);
67 setAlignment(Pos.CENTER_LEFT);
69 final Border clusterBorder =
new Border(
new BorderStroke(evtColor.deriveColor(0, 1, 1, .4), BorderStrokeStyle.SOLID, CORNER_RADII_1, CLUSTER_BORDER_WIDTHS));
70 setBorder(clusterBorder);
72 setMaxWidth(USE_PREF_SIZE);
73 infoHBox.setMaxWidth(USE_PREF_SIZE);
74 getChildren().add(infoHBox);
79 return Collections.emptyList();
84 super.layoutChildren();
88 String getDescription() {
89 return getEvent().getFullDescription();
96 public void setMaxDescriptionWidth(
double w) {
97 descrLabel.setMaxWidth(w);
101 Collection<Long> getEventIDs() {
abstract List< EventNodeBase<?> > getSubNodes()