19 package org.sleuthkit.autopsy.timeline.ui.detailview;
 
   21 import com.google.common.collect.Iterables;
 
   22 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;
 
   42 final public class EventStripeNode extends MultiEventNodeBase<EventStripe, EventCluster, EventClusterNode> {
 
   60         descrLabel.setTextOverrun(OverrunStyle.CENTER_ELLIPSIS);
 
   61         descrLabel.setPrefWidth(USE_COMPUTED_SIZE);
 
   64         setAlignment(subNodePane, Pos.BOTTOM_LEFT);
 
   66         if (eventStripe.getClusters().size() > 1) {
 
   71             getChildren().addAll(
new VBox(infoHBox, subNodePane));
 
   75             EventCluster cluster = Iterables.getOnlyElement(eventStripe.getClusters()).withParent(eventStripe);
 
   80                 EventClusterNode eventClusterNode = (EventClusterNode) 
createChildNode(cluster);
 
   81                 eventClusterNode.installActionButtons();
 
   82                 controlsHBox.getChildren().addAll(eventClusterNode.getNewCollapseButton(), eventClusterNode.getNewExpandButton());
 
   83                 eventClusterNode.infoHBox.getChildren().remove(eventClusterNode.countLabel);
 
   84                 childNode = eventClusterNode;
 
   90             subNodes.add(childNode);
 
   92             getChildren().addAll(infoHBox, subNodePane);
 
  104         return new HideDescriptionAction(getDescription(), 
getEvent().getDescriptionLevel(), chartLane.getParentChart());
 
  109         super.installActionButtons();
 
  110         if (chartLane.quickHideFiltersEnabled() && hideButton == null) {
 
  111             hideButton = ActionUtils.createButton(
newHideAction(), ActionUtils.ActionTextBehavior.HIDE);
 
  112             configureActionButton(hideButton);
 
  114             controlsHBox.getChildren().add(hideButton);
 
  120         Set<Long> eventIDs = cluster.getEventIDs();
 
  121         if (eventIDs.size() == 1) {
 
  124             return new SingleEventNode(getChartLane(), singleDetailEvent, 
this);
 
  126             return new EventClusterNode(getChartLane(), cluster, 
this);
 
  131     EventHandler<MouseEvent> getDoubleClickHandler() {
 
  132         return mouseEvent -> {
 
  138     Iterable<? extends Action> getActions() {
 
  139         return Iterables.concat(
 
EventNodeBase<?> createChildNode(EventCluster cluster)
SingleDetailsViewEvent withParent(MultiEvent<?> newParent)
void installActionButtons()
final EventNodeBase<?> parentNode
SortedSet< EventCluster > getClusters()
TimeLineController getController()
EventsModel getEventsModel()
Set< Long > getEventIDs()
TimelineEvent getEventById(Long eventID)