diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventBundleNodeBase.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventBundleNodeBase.java index 32aed15069..f78a0163c5 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventBundleNodeBase.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventBundleNodeBase.java @@ -116,6 +116,12 @@ public abstract class EventBundleNodeBase { - showDescriptionLoDControls(false); + showHoverControls(false); chart.requestChartLayout(); }); configureLoDButton(plusButton); @@ -124,11 +123,12 @@ final public class EventClusterNode extends EventBundleNodeBase impl if (oneEventPerRow.get()) { // if onePerRow, just put it at end - yTop = (localMax + 2); + yTop = (localMax + MINIMUM_GAP); yBottom = yTop + h; } else { boolean overlapping = true; @@ -590,11 +590,11 @@ public final class EventDetailChart extends XYChart impl //check each pixel from bottom to top. for (double y = yBottom; y >= yTop; y--) { final Double maxX = maxXatY.get((int) y); - if (maxX != null && maxX >= xLeft - 4) { + if (maxX != null && maxX >= xLeft - MINIMUM_GAP) { //if that pixel is already used //jump top to this y value and repeat until free slot is found. overlapping = true; - yTop = y + 4; + yTop = y + MINIMUM_GAP; yBottom = yTop + h; break; } @@ -607,7 +607,6 @@ public final class EventDetailChart extends XYChart impl } localMax = Math.max(yBottom, localMax); -// bundleNode.relocate(xLeft, yTop); Timeline tm = new Timeline(new KeyFrame(Duration.seconds(.5), new KeyValue(bundleNode.layoutXProperty(), xLeft), new KeyValue(bundleNode.layoutYProperty(), yTop))); @@ -617,6 +616,7 @@ public final class EventDetailChart extends XYChart impl } return localMax; } + private static final int MINIMUM_GAP = 4; private void layoutProjectionMap() { for (final Map.Entry entry : projectionMap.entrySet()) { diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventStripeNode.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventStripeNode.java index ee519de1c2..0389e02460 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventStripeNode.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/detailview/EventStripeNode.java @@ -106,7 +106,7 @@ final public class EventStripeNode extends EventBundleNodeBase { /* + * w * defer tooltip creation till needed, this had a surprisingly large * impact on speed of loading the chart */ installTooltip(); - showDescriptionLoDControls(true); + showHoverControls(true); // toFront(); }); setOnMouseExited((MouseEvent e) -> { - showDescriptionLoDControls(false); + showHoverControls(false); }); } - void showDescriptionLoDControls(final boolean showControls) { + @Override + void showHoverControls(final boolean showControls) { + super.showHoverControls(showControls); DropShadow dropShadow = dropShadowMap.computeIfAbsent(getEventType(), eventType -> new DropShadow(10, eventType.getColor())); subNodePane.setEffect(showControls ? dropShadow : null); show(hideButton, showControls); - } - + } public EventStripe getEventStripe() { return getEventBundle(); @@ -333,5 +335,4 @@ final public class EventStripeNode extends EventBundleNodeBase