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()