19 package org.sleuthkit.autopsy.timeline.ui.detailview;
21 import com.google.common.collect.ImmutableSet;
22 import com.google.common.collect.Iterables;
23 import java.util.Arrays;
24 import javafx.event.EventHandler;
25 import javafx.geometry.Pos;
26 import javafx.scene.control.Button;
27 import javafx.scene.control.OverrunStyle;
28 import javafx.scene.input.MouseEvent;
29 import javafx.scene.layout.VBox;
30 import org.controlsfx.control.action.Action;
31 import org.controlsfx.control.action.ActionUtils;
58 super(chartLane, eventStripe, parentNode);
61 descrLabel.setTextOverrun(OverrunStyle.CENTER_ELLIPSIS);
62 descrLabel.setPrefWidth(USE_COMPUTED_SIZE);
65 setAlignment(subNodePane, Pos.BOTTOM_LEFT);
69 subNodes.add(createChildNode(cluster.withParent(eventStripe)));
72 getChildren().addAll(
new VBox(infoHBox, subNodePane));
78 childNode = createChildNode(cluster);
81 EventClusterNode eventClusterNode = (EventClusterNode) createChildNode(cluster);
82 eventClusterNode.installActionButtons();
83 controlsHBox.getChildren().addAll(eventClusterNode.getNewCollapseButton(), eventClusterNode.getNewExpandButton());
84 eventClusterNode.infoHBox.getChildren().remove(eventClusterNode.countLabel);
85 childNode = eventClusterNode;
91 subNodes.add(childNode);
93 getChildren().addAll(infoHBox, subNodePane);
105 return new HideDescriptionAction(getDescription(), getEvent().getDescriptionLoD(), chartLane.getParentChart());
109 void installActionButtons() {
110 super.installActionButtons();
111 if (chartLane.quickHideFiltersEnabled() && hideButton == null) {
112 hideButton = ActionUtils.createButton(
newHideAction(), ActionUtils.ActionTextBehavior.HIDE);
113 configureActionButton(hideButton);
115 controlsHBox.getChildren().add(hideButton);
121 ImmutableSet<Long> eventIDs = cluster.getEventIDs();
122 if (eventIDs.size() == 1) {
123 SingleEvent singleEvent = getController().getEventsModel().getEventById(Iterables.getOnlyElement(eventIDs)).withParent(cluster);
124 return new SingleEventNode(getChartLane(), singleEvent,
this);
126 return new EventClusterNode(getChartLane(), cluster,
this);
131 EventHandler<MouseEvent> getDoubleClickHandler() {
132 return mouseEvent -> {
138 Iterable<? extends Action> getActions() {
139 return Iterables.concat(
static final Logger LOGGER
synchronized static Logger getLogger(String name)
ImmutableSortedSet< EventCluster > getClusters()
ImmutableSet< Long > getEventIDs()