19 package org.sleuthkit.autopsy.timeline.zooming;
22 import java.time.temporal.ChronoUnit;
23 import java.util.ResourceBundle;
24 import javafx.application.Platform;
25 import javafx.beans.InvalidationListener;
26 import javafx.beans.property.ReadOnlyObjectProperty;
27 import javafx.fxml.FXML;
28 import javafx.scene.control.*;
29 import javafx.util.StringConverter;
30 import org.openide.util.NbBundle;
92 timeUnitSlider.setMax(
TimeUnits.values().length - 2);
95 typeZoomSlider.setMin(1);
96 typeZoomSlider.setMax(2);
100 descrLODLabel.setText(
101 NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.descrLODLabel.text"));
102 typeZoomLabel.setText(NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.typeZoomLabel.text"));
103 timeUnitLabel.setText(NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.timeUnitLabel.text"));
104 zoomLabel.setText(NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.zoomLabel.text"));
105 historyLabel.setText(NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.historyLabel.text"));
118 backButton.disableProperty().bind(back.disabledProperty());
119 backButton.setOnAction(back);
120 backButton.setTooltip(
new Tooltip(
121 NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.backButton.toolTip.text",
122 back.getAccelerator().getName())));
124 forwardButton.disableProperty().bind(forward.disabledProperty());
125 forwardButton.setOnAction(forward);
126 forwardButton.setTooltip(
new Tooltip(
127 NbBundle.getMessage(
this.getClass(),
"ZoomSettingsPane.forwardButton.toolTip.text",
128 forward.getAccelerator().getName())));
136 initializeSlider(timeUnitSlider,
138 TimeUnits requestedUnit =
TimeUnits.values()[
new Double(timeUnitSlider.getValue()).intValue()];
153 initializeSlider(descrLODSlider,
161 descrLODSlider.setValue(this.filteredEvents.
descriptionLOD().get().ordinal());
164 initializeSlider(typeZoomSlider,
171 typeZoomSlider.setValue(this.filteredEvents.
eventTypeZoom().get().ordinal());
191 private <T>
void initializeSlider(Slider slider, Runnable sliderChangeHandler, ReadOnlyObjectProperty<T> driver, Runnable driverChangHandler) {
192 final InvalidationListener sliderListener = observable -> {
193 if (slider.isValueChanging() ==
false) {
194 sliderChangeHandler.run();
197 slider.valueProperty().addListener(sliderListener);
198 slider.valueChangingProperty().addListener(sliderListener);
200 Platform.runLater(driverChangHandler);
202 driver.addListener(observable -> {
203 slider.valueProperty().removeListener(sliderListener);
204 slider.valueChangingProperty().removeListener(sliderListener);
206 Platform.runLater(driverChangHandler);
208 slider.valueProperty().addListener(sliderListener);
209 slider.valueChangingProperty().addListener(sliderListener);
223 return new Integer(
TimeUnits.valueOf(
string).ordinal()).doubleValue();
249 return new Integer(
DescriptionLOD.valueOf(
string).ordinal()).doubleValue();
Double fromString(String string)
ChronoUnit getChronoUnit()
FilteredEventsModel filteredEvents
FilteredEventsModel getEventsModel()
Double fromString(String string)
TimeLineController controller
synchronized boolean pushDescrLOD(DescriptionLOD newLOD)
static void construct(Node n, String fxmlFileName)
static RangeDivisionInfo getRangeDivisionInfo(Interval timeRange)
String toString(Double object)
Double fromString(String string)
synchronized ReadOnlyObjectProperty< Interval > timeRange()
String toString(Double object)
static Interval getIntervalAround(DateTime aroundInstant, ReadablePeriod period)
static TimeUnits fromChronoUnit(ChronoUnit chronoUnit)
String toString(Double object)
synchronized void setController(TimeLineController controller)
synchronized ReadOnlyObjectProperty< EventTypeZoomLevel > eventTypeZoom()
synchronized ReadOnlyObjectProperty< VisualizationMode > getViewMode()
synchronized ReadOnlyObjectProperty< DescriptionLOD > descriptionLOD()
DescriptionLOD getDescriptionLOD()
TimeUnits getPeriodSize()
synchronized void pushTimeRange(Interval timeRange)
static DateTime middleOf(Interval interval)
synchronized void pushEventTypeZoom(EventTypeZoomLevel typeZoomeLevel)
void setModel(FilteredEventsModel filteredEvents)