mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-19 19:14:55 +00:00
expose tag synced currentstate through Timelinecontroller rather than historymanager
This commit is contained in:
parent
10ed0ff851
commit
440056d351
@ -34,6 +34,7 @@ import java.util.concurrent.ExecutorService;
|
|||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
import javafx.beans.InvalidationListener;
|
||||||
import javafx.beans.Observable;
|
import javafx.beans.Observable;
|
||||||
import javafx.beans.property.ReadOnlyBooleanProperty;
|
import javafx.beans.property.ReadOnlyBooleanProperty;
|
||||||
import javafx.beans.property.ReadOnlyBooleanWrapper;
|
import javafx.beans.property.ReadOnlyBooleanWrapper;
|
||||||
@ -189,6 +190,9 @@ public class TimeLineController {
|
|||||||
@GuardedBy("this")
|
@GuardedBy("this")
|
||||||
private final History<ZoomParams> historyManager = new History<>();
|
private final History<ZoomParams> historyManager = new History<>();
|
||||||
|
|
||||||
|
@GuardedBy("this")
|
||||||
|
private final ReadOnlyObjectWrapper<ZoomParams> currentState = new ReadOnlyObjectWrapper<>();
|
||||||
|
|
||||||
//all members should be access with the intrinsict lock of this object held
|
//all members should be access with the intrinsict lock of this object held
|
||||||
//selected events (ie shown in the result viewer)
|
//selected events (ie shown in the result viewer)
|
||||||
@GuardedBy("this")
|
@GuardedBy("this")
|
||||||
@ -232,7 +236,15 @@ public class TimeLineController {
|
|||||||
|
|
||||||
public TimeLineController(Case autoCase) {
|
public TimeLineController(Case autoCase) {
|
||||||
this.autoCase = autoCase; //initalize repository and filteredEvents on creation
|
this.autoCase = autoCase; //initalize repository and filteredEvents on creation
|
||||||
eventsRepository = new EventsRepository(autoCase, historyManager.currentState());
|
historyManager.currentState().addListener(new InvalidationListener() {
|
||||||
|
|
||||||
|
public void invalidated(Observable observable) {
|
||||||
|
ZoomParams currentState1 = historyManager.getCurrentState();
|
||||||
|
eventsRepository.syncTagFilter(currentState1.getFilter().getTagsFilter());
|
||||||
|
currentState.set(currentState1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
eventsRepository = new EventsRepository(autoCase, currentState.getReadOnlyProperty());
|
||||||
|
|
||||||
filteredEvents = eventsRepository.getEventsModel();
|
filteredEvents = eventsRepository.getEventsModel();
|
||||||
InitialZoomState = new ZoomParams(filteredEvents.getSpanningInterval(),
|
InitialZoomState = new ZoomParams(filteredEvents.getSpanningInterval(),
|
||||||
@ -565,21 +577,17 @@ public class TimeLineController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized public ZoomParams advance() {
|
synchronized public void advance() {
|
||||||
ZoomParams advance = historyManager.advance();
|
historyManager.advance();
|
||||||
eventsRepository.syncTagFilter(advance.getFilter().getTagsFilter());
|
|
||||||
return advance;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized public ZoomParams retreat() {
|
synchronized public void retreat() {
|
||||||
ZoomParams retreat = historyManager.retreat();
|
historyManager.retreat();
|
||||||
eventsRepository.syncTagFilter(retreat.getFilter().getTagsFilter());
|
|
||||||
return retreat;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized private void advance(ZoomParams newState) {
|
synchronized private void advance(ZoomParams newState) {
|
||||||
historyManager.advance(newState);
|
historyManager.advance(newState);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectTimeAndType(Interval interval, EventType type) {
|
public void selectTimeAndType(Interval interval, EventType type) {
|
||||||
|
@ -163,14 +163,7 @@ public final class FilteredEventsModel {
|
|||||||
repo.getTagNames().addListener((ListChangeListener.Change<? extends TagName> c) -> {
|
repo.getTagNames().addListener((ListChangeListener.Change<? extends TagName> c) -> {
|
||||||
RootFilter rootFilter = filterProperty().get();
|
RootFilter rootFilter = filterProperty().get();
|
||||||
TagsFilter tagsFilter = rootFilter.getTagsFilter();
|
TagsFilter tagsFilter = rootFilter.getTagsFilter();
|
||||||
while (c.next()) {
|
repo.syncTagFilter(tagsFilter);
|
||||||
c.getRemoved().forEach(tagsFilter::removeFilterForTag);
|
|
||||||
c.getAddedSubList().forEach((TagName t) -> {
|
|
||||||
TagNameFilter tagFilter = new TagNameFilter(t);
|
|
||||||
tagsFilter.addSubFilter(tagFilter);
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
requestedFilter.set(rootFilter.copyOf());
|
requestedFilter.set(rootFilter.copyOf());
|
||||||
});
|
});
|
||||||
requestedFilter.set(getDefaultFilter());
|
requestedFilter.set(getDefaultFilter());
|
||||||
|
@ -460,12 +460,12 @@ public class EventsRepository {
|
|||||||
if (!updatedEventIDs.isEmpty()) {
|
if (!updatedEventIDs.isEmpty()) {
|
||||||
aggregateEventsCache.invalidateAll();
|
aggregateEventsCache.invalidateAll();
|
||||||
idToEventCache.invalidateAll(updatedEventIDs);
|
idToEventCache.invalidateAll(updatedEventIDs);
|
||||||
updateTagFilters();
|
updateTagNames();
|
||||||
}
|
}
|
||||||
return updatedEventIDs;
|
return updatedEventIDs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateTagFilters() {
|
public void updateTagNames() {
|
||||||
try {
|
try {
|
||||||
tagNames.setAll(autoCase.getSleuthkitCase().getTagNamesInUse());
|
tagNames.setAll(autoCase.getSleuthkitCase().getTagNamesInUse());
|
||||||
|
|
||||||
@ -478,8 +478,9 @@ public class EventsRepository {
|
|||||||
for (TagName t : tagNames) {
|
for (TagName t : tagNames) {
|
||||||
tagsFilter.addSubFilter(new TagNameFilter(t));
|
tagsFilter.addSubFilter(new TagNameFilter(t));
|
||||||
}
|
}
|
||||||
tagsFilter.getSubFilters().removeIf((TagNameFilter t) -> {
|
|
||||||
return tagNames.contains(t.getTagName()) == false;
|
for (TagNameFilter t : tagsFilter.getSubFilters()) {
|
||||||
});
|
t.setDisabled(tagNames.contains(t.getTagName()) == false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user