dateMax += adjustedCount;
final XYChart.Data<String, Number> xyData = new BarChart.Data<>(dateString, adjustedCount);
xyData.nodeProperty().addListener((Observable o) -> {
final Node node = xyData.getNode();
if (node != null) {
node.setStyle("-fx-border-width: 2; -fx-border-color: " + ColorUtilities.getRGBCode(et.getSuperType().getColor()) + "; -fx-bar-fill: " + ColorUtilities.getRGBCode(et.getColor()));
node.setCursor(Cursor.HAND);
node.setOnMouseEntered((MouseEvent event) -> {
//defer tooltip creation till needed, this had a surprisingly large impact on speed of loading the chart
final Tooltip tooltip = new Tooltip(count + " " + et.getDisplayName() + " events\n"
+ "between " + dateString + "\n"
+ "and "
+ interval.getEnd().toString(rangeInfo.getTickFormatter()));
tooltip.setGraphic(new ImageView(et.getFXImage()));
Tooltip.install(node, tooltip);
node.setEffect(new DropShadow(10, et.getColor()));
});
node.setOnMouseExited((MouseEvent event) -> {
if (selectedNodes.contains(node)) {
node.setEffect(SELECTED_NODE_EFFECT);
} else {
node.setEffect(null);
}
});
node.addEventHandler(MouseEvent.MOUSE_CLICKED, new BarClickHandler(node, dateString, interval, et));
}
});
max = Math.max(max, dateMax);