19 package org.sleuthkit.autopsy.timeline.ui.detailview;
 
   21 import java.util.List;
 
   23 import javafx.application.Platform;
 
   24 import javafx.beans.binding.Bindings;
 
   25 import javafx.beans.property.ReadOnlyObjectProperty;
 
   26 import javafx.beans.property.ReadOnlyObjectWrapper;
 
   27 import javafx.collections.FXCollections;
 
   28 import javafx.collections.ObservableList;
 
   29 import javafx.event.EventHandler;
 
   30 import javafx.geometry.Insets;
 
   31 import javafx.geometry.Orientation;
 
   32 import javafx.geometry.Pos;
 
   33 import javafx.scene.input.MouseEvent;
 
   34 import javafx.scene.layout.CornerRadii;
 
   35 import javafx.scene.layout.Pane;
 
   36 import org.joda.time.DateTime;
 
   37 import org.openide.util.NbBundle;
 
   45 @NbBundle.Messages({
"EventBundleNodeBase.toolTip.loading=loading..."})
 
   51     static final CornerRadii CORNER_RADII_3 = 
new CornerRadii(3);
 
   52     static final CornerRadii CORNER_RADII_1 = 
new CornerRadii(1);
 
   54     final ObservableList<EventNodeBase<?>> subNodes = FXCollections.observableArrayList();
 
   55     final Pane subNodePane = 
new Pane();
 
   57     private final ReadOnlyObjectWrapper<DescriptionLoD> descLOD = 
new ReadOnlyObjectWrapper<>();
 
   59     MultiEventNodeBase(DetailsChartLane<?> chartLane, BundleType event, ParentNodeType parentNode) {
 
   60         super(event, parentNode, chartLane);
 
   61         setDescriptionLOD(event.getDescriptionLoD());
 
   65         setAlignment(Pos.TOP_LEFT);
 
   66         setMaxWidth(USE_PREF_SIZE);
 
   67         infoHBox.setMaxWidth(USE_PREF_SIZE);
 
   68         subNodePane.setPrefWidth(USE_COMPUTED_SIZE);
 
   69         subNodePane.setMinWidth(USE_PREF_SIZE);
 
   70         subNodePane.setMaxWidth(USE_PREF_SIZE);
 
   75         heightProperty().addListener(heightProp -> chartLane.requestLayout());
 
   76         Platform.runLater(() ->
 
   77                 setLayoutX(chartLane.getXAxis().getDisplayPosition(
new DateTime(event.getStartMillis())) - getLayoutXCompensation())
 
   81         infoHBox.setPadding(
new Insets(2, 3, 2, 3));
 
   82         infoHBox.setAlignment(Pos.TOP_LEFT);
 
   84         Bindings.bindContent(subNodePane.getChildren(), subNodes);
 
   88         return descLOD.getReadOnlyProperty();
 
   98     final void setDescriptionLOD(
final DescriptionLoD descriptionLoD) {
 
   99         descLOD.set(descriptionLoD);
 
  102     @SuppressWarnings(
"unchecked")
 
  107     final String getDescription() {
 
  108         return getEvent().getDescription();
 
  111     final Set<Long> getEventIDs() {
 
  112         return getEvent().getEventIDs();
 
  117         return Orientation.HORIZONTAL;
 
  122         chartLane.layoutEventBundleNodes(subNodes, 0);
 
  123         super.layoutChildren();
 
  128     abstract EventHandler<MouseEvent> getDoubleClickHandler();
 
Orientation getContentBias()
ReadOnlyObjectProperty< DescriptionLoD > descriptionLoDProperty()
synchronized static Logger getLogger(String name)