minor cleanup of time related code

This commit is contained in:
jmillman 2015-11-02 16:10:04 -05:00
parent 392a05724e
commit b89ba9a83e
4 changed files with 14 additions and 21 deletions

View File

@ -39,21 +39,19 @@ public class ZoomOut extends Action {
super(Bundle.ZoomOut_action_text()); super(Bundle.ZoomOut_action_text());
setLongText(Bundle.ZoomOut_longText()); setLongText(Bundle.ZoomOut_longText());
setGraphic(new ImageView(MAGNIFIER_OUT)); setGraphic(new ImageView(MAGNIFIER_OUT));
setEventHandler(actionEvent -> { setEventHandler(actionEvent -> controller.pushZoomOutTime());
controller.pushZoomOutTime();
});
//disable action when the current time range already encompases the entire case. //disable action when the current time range already encompases the entire case.
disabledProperty().bind(new BooleanBinding() { disabledProperty().bind(new BooleanBinding() {
private final FilteredEventsModel eventsModel = controller.getEventsModel(); private final FilteredEventsModel eventsModel = controller.getEventsModel();
{ {
bind(eventsModel.zoomParametersProperty()); bind(eventsModel.zoomParametersProperty(), eventsModel.timeRangeProperty());
} }
@Override @Override
protected boolean computeValue() { protected boolean computeValue() {
return eventsModel.zoomParametersProperty().getValue().getTimeRange().contains(eventsModel.getSpanningInterval()); return eventsModel.timeRangeProperty().get().contains(eventsModel.getSpanningInterval());
} }
}); });
} }

View File

@ -23,6 +23,7 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import javafx.beans.Observable; import javafx.beans.Observable;
@ -31,7 +32,6 @@ import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.collections.ListChangeListener; import javafx.collections.ListChangeListener;
import javafx.collections.MapChangeListener; import javafx.collections.MapChangeListener;
import javax.annotation.concurrent.GuardedBy; import javax.annotation.concurrent.GuardedBy;
import org.joda.time.DateTimeZone;
import org.joda.time.Interval; import org.joda.time.Interval;
import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.casemodule.events.BlackBoardArtifactTagAddedEvent; import org.sleuthkit.autopsy.casemodule.events.BlackBoardArtifactTagAddedEvent;
@ -153,7 +153,7 @@ public final class FilteredEventsModel {
if (zoomParams.getTypeZoomLevel().equals(requestedTypeZoom.get()) == false if (zoomParams.getTypeZoomLevel().equals(requestedTypeZoom.get()) == false
|| zoomParams.getDescriptionLOD().equals(requestedLOD.get()) == false || zoomParams.getDescriptionLOD().equals(requestedLOD.get()) == false
|| zoomParams.getFilter().equals(requestedFilter.get()) == false || zoomParams.getFilter().equals(requestedFilter.get()) == false
|| zoomParams.getTimeRange().equals(requestedTimeRange.get()) == false) { || Objects.equals(zoomParams.getTimeRange(), requestedTimeRange.get()) == false) {
requestedTypeZoom.set(zoomParams.getTypeZoomLevel()); requestedTypeZoom.set(zoomParams.getTypeZoomLevel());
requestedFilter.set(zoomParams.getFilter()); requestedFilter.set(zoomParams.getFilter());
@ -294,7 +294,7 @@ public final class FilteredEventsModel {
* repository, ignoring any filters or requested ranges * repository, ignoring any filters or requested ranges
*/ */
public Interval getSpanningInterval() { public Interval getSpanningInterval() {
return new Interval(getMinTime() * 1000, 1000 + getMaxTime() * 1000, DateTimeZone.UTC); return new Interval(getMinTime() * 1000, 1000 + getMaxTime() * 1000);
} }
/** /**

View File

@ -93,12 +93,10 @@ import org.sleuthkit.autopsy.timeline.utils.RangeDivisionInfo;
*/ */
public class CountsViewPane extends AbstractVisualizationPane<String, Number, Node, EventCountsChart> { public class CountsViewPane extends AbstractVisualizationPane<String, Number, Node, EventCountsChart> {
private static final Logger LOGGER = Logger.getLogger(CountsViewPane.class.getName());
private static final Effect SELECTED_NODE_EFFECT = new Lighting(); private static final Effect SELECTED_NODE_EFFECT = new Lighting();
private static final Logger LOGGER = Logger.getLogger(CountsViewPane.class.getName());
private final NumberAxis countAxis = new NumberAxis(); private final NumberAxis countAxis = new NumberAxis();
private final CategoryAxis dateAxis = new CategoryAxis(FXCollections.<String>observableArrayList()); private final CategoryAxis dateAxis = new CategoryAxis(FXCollections.<String>observableArrayList());
private final SimpleObjectProperty<ScaleType> scale = new SimpleObjectProperty<>(ScaleType.LOGARITHMIC); private final SimpleObjectProperty<ScaleType> scale = new SimpleObjectProperty<>(ScaleType.LOGARITHMIC);
@ -166,16 +164,15 @@ public class CountsViewPane extends AbstractVisualizationPane<String, Number, No
DateTime start = timeRange.getStart(); DateTime start = timeRange.getStart();
while (timeRange.contains(start)) { while (timeRange.contains(start)) {
final String dateString = start.toString(rangeInfo.getTickFormatter()); final String startString = start.toString(rangeInfo.getTickFormatter());
DateTime end = start.plus(rangeInfo.getPeriodSize().getPeriod()); DateTime end = start.plus(rangeInfo.getPeriodSize().getPeriod());
final Interval interval = new Interval(start, end); final Interval interval = new Interval(start, end);
//increment for next iteration
start = end;
//query for current range //query for current range
Map<EventType, Long> eventCounts = filteredEvents.getEventCounts(interval); Map<EventType, Long> eventCounts = filteredEvents.getEventCounts(interval);
//increment for next iteration
start = end;
int dateMax = 0; //used in max tracking int dateMax = 0; //used in max tracking
//for each type add data to graph //for each type add data to graph
@ -190,7 +187,7 @@ public class CountsViewPane extends AbstractVisualizationPane<String, Number, No
final double adjustedCount = count == 0 ? 0 : scale.get().adjust(count); final double adjustedCount = count == 0 ? 0 : scale.get().adjust(count);
dateMax += adjustedCount; dateMax += adjustedCount;
final XYChart.Data<String, Number> xyData = new BarChart.Data<>(dateString, adjustedCount); final XYChart.Data<String, Number> xyData = new BarChart.Data<>(startString, adjustedCount);
xyData.nodeProperty().addListener((Observable o) -> { xyData.nodeProperty().addListener((Observable o) -> {
final Node node = xyData.getNode(); final Node node = xyData.getNode();
@ -202,9 +199,8 @@ public class CountsViewPane extends AbstractVisualizationPane<String, Number, No
NbBundle.getMessage(this.getClass(), "CountsViewPane.tooltip.text", NbBundle.getMessage(this.getClass(), "CountsViewPane.tooltip.text",
count, count,
et.getDisplayName(), et.getDisplayName(),
dateString, startString,
interval.getEnd().toString( interval.getEnd().toString(rangeInfo.getTickFormatter())));
rangeInfo.getTickFormatter())));
tooltip.setGraphic(new ImageView(et.getFXImage())); tooltip.setGraphic(new ImageView(et.getFXImage()));
Tooltip.install(node, tooltip); Tooltip.install(node, tooltip);
@ -219,7 +215,7 @@ public class CountsViewPane extends AbstractVisualizationPane<String, Number, No
} }
}); });
node.addEventHandler(MouseEvent.MOUSE_CLICKED, new BarClickHandler(node, dateString, interval, et)); node.addEventHandler(MouseEvent.MOUSE_CLICKED, new BarClickHandler(node, startString, interval, et));
} }
}); });

View File

@ -82,7 +82,6 @@ public class RangeDivisionInfo {
} }
private RangeDivisionInfo(Interval timeRange, int periodsInRange, TimeUnits periodSize, DateTimeFormatter tickformatter, long lowerBound, long upperBound) { private RangeDivisionInfo(Interval timeRange, int periodsInRange, TimeUnits periodSize, DateTimeFormatter tickformatter, long lowerBound, long upperBound) {
super();
this.numberOfBlocks = periodsInRange; this.numberOfBlocks = periodsInRange;
this.blockSize = periodSize; this.blockSize = periodSize;
this.tickFormatter = tickformatter; this.tickFormatter = tickformatter;