mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-18 18:47:43 +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.logging.Level;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.InvalidationListener;
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.property.ReadOnlyBooleanProperty;
|
||||
import javafx.beans.property.ReadOnlyBooleanWrapper;
|
||||
@ -189,6 +190,9 @@ public class TimeLineController {
|
||||
@GuardedBy("this")
|
||||
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
|
||||
//selected events (ie shown in the result viewer)
|
||||
@GuardedBy("this")
|
||||
@ -232,7 +236,15 @@ public class TimeLineController {
|
||||
|
||||
public TimeLineController(Case autoCase) {
|
||||
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();
|
||||
InitialZoomState = new ZoomParams(filteredEvents.getSpanningInterval(),
|
||||
@ -565,21 +577,17 @@ public class TimeLineController {
|
||||
}
|
||||
}
|
||||
|
||||
synchronized public ZoomParams advance() {
|
||||
ZoomParams advance = historyManager.advance();
|
||||
eventsRepository.syncTagFilter(advance.getFilter().getTagsFilter());
|
||||
return advance;
|
||||
|
||||
synchronized public void advance() {
|
||||
historyManager.advance();
|
||||
}
|
||||
|
||||
synchronized public ZoomParams retreat() {
|
||||
ZoomParams retreat = historyManager.retreat();
|
||||
eventsRepository.syncTagFilter(retreat.getFilter().getTagsFilter());
|
||||
return retreat;
|
||||
synchronized public void retreat() {
|
||||
historyManager.retreat();
|
||||
}
|
||||
|
||||
synchronized private void advance(ZoomParams newState) {
|
||||
historyManager.advance(newState);
|
||||
|
||||
}
|
||||
|
||||
public void selectTimeAndType(Interval interval, EventType type) {
|
||||
|
@ -163,14 +163,7 @@ public final class FilteredEventsModel {
|
||||
repo.getTagNames().addListener((ListChangeListener.Change<? extends TagName> c) -> {
|
||||
RootFilter rootFilter = filterProperty().get();
|
||||
TagsFilter tagsFilter = rootFilter.getTagsFilter();
|
||||
while (c.next()) {
|
||||
c.getRemoved().forEach(tagsFilter::removeFilterForTag);
|
||||
c.getAddedSubList().forEach((TagName t) -> {
|
||||
TagNameFilter tagFilter = new TagNameFilter(t);
|
||||
tagsFilter.addSubFilter(tagFilter);
|
||||
});
|
||||
|
||||
}
|
||||
repo.syncTagFilter(tagsFilter);
|
||||
requestedFilter.set(rootFilter.copyOf());
|
||||
});
|
||||
requestedFilter.set(getDefaultFilter());
|
||||
|
@ -460,12 +460,12 @@ public class EventsRepository {
|
||||
if (!updatedEventIDs.isEmpty()) {
|
||||
aggregateEventsCache.invalidateAll();
|
||||
idToEventCache.invalidateAll(updatedEventIDs);
|
||||
updateTagFilters();
|
||||
updateTagNames();
|
||||
}
|
||||
return updatedEventIDs;
|
||||
}
|
||||
|
||||
public void updateTagFilters() {
|
||||
public void updateTagNames() {
|
||||
try {
|
||||
tagNames.setAll(autoCase.getSleuthkitCase().getTagNamesInUse());
|
||||
|
||||
@ -478,8 +478,9 @@ public class EventsRepository {
|
||||
for (TagName t : tagNames) {
|
||||
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