Skip to content

Commit

Permalink
'#2163 Implementation of restoreDefinedFilters of Timeline filterer.
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickdalla committed Jun 17, 2024
1 parent 3434d2d commit c2793dc
Showing 1 changed file with 68 additions and 34 deletions.
102 changes: 68 additions & 34 deletions iped-app/src/main/java/iped/app/timelinegraph/IpedChartsPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -1084,48 +1084,64 @@ public void resetZoom() {
refreshChart(true);
}

public class TimeRangeFilter implements IQueryFilter {
private Query query;
Date[] dates;

public TimeRangeFilter(Date[] dates) {
this.dates = dates;
}

public String toString() {
String timeFilter = domainAxis.ISO8601DateFormatUTC(dates[0]);
timeFilter += " TO ";
timeFilter += domainAxis.ISO8601DateFormatUTC(dates[1]);
return timeFilter;
}

@Override
public Query getQuery() {
if (query == null) {
String timeFilter = "timeStamp:[";
timeFilter += domainAxis.ISO8601DateFormatUTC(dates[0]);
timeFilter += " TO ";
timeFilter += domainAxis.ISO8601DateFormatUTC(dates[1]);
timeFilter += "]";

try {
query = new QueryBuilder(App.get().appCase).getQuery(timeFilter);
} catch (ParseException | QueryNodeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return query;
}
}

public class EventTypeFilter implements IFilter {
String event;

public EventTypeFilter(String event) {
this.event = event;
}

public String toString() {
return "-eventType:" + event;
}
}

@Override
public List getDefinedFilters() {
ArrayList<IFilter> result = new ArrayList<IFilter>();
if (chartPanel.definedFilters.size() > 0) {
for (Date[] dates : chartPanel.definedFilters) {
result.add(new IQueryFilter() {
private Query query;

public String toString() {
String timeFilter = domainAxis.ISO8601DateFormatUTC(dates[0]);
timeFilter += " TO ";
timeFilter += domainAxis.ISO8601DateFormatUTC(dates[1]);
return timeFilter;
}

@Override
public Query getQuery() {
if (query == null) {
String timeFilter = "timeStamp:[";
timeFilter += domainAxis.ISO8601DateFormatUTC(dates[0]);
timeFilter += " TO ";
timeFilter += domainAxis.ISO8601DateFormatUTC(dates[1]);
timeFilter += "]";

try {
query = new QueryBuilder(App.get().appCase).getQuery(timeFilter);
} catch (ParseException | QueryNodeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return query;
}
});
result.add(new TimeRangeFilter(dates));
}
}

for (String event : chartPanel.excludedEvents) {
result.add(new IFilter() {
public String toString() {
return "-eventType:" + event;
}
});
result.add(new EventTypeFilter(event));
}

return result;
Expand All @@ -1144,4 +1160,22 @@ public static String[] getOrdToEventName() {
return ordToEventName;
}

public void restoreDefinedFilters(List<IFilter> filtersToRestore) {
boolean hasFilters = false;
for (IFilter filter : filtersToRestore) {
hasFilters = true;
if (filter instanceof TimeRangeFilter) {
chartPanel.definedFilters.add(((TimeRangeFilter) filter).dates);
}
if (filter instanceof EventTypeFilter) {
chartPanel.excludedEvents.add(((EventTypeFilter) filter).event);
}
}
if (hasFilters) {
applyFilters = true;
App.get().getFilterManager().setFilterEnabled(this, true);
}

}

}

0 comments on commit c2793dc

Please sign in to comment.