6464import org .openjdk .jmc .common .item .IType ;
6565import org .openjdk .jmc .common .item .ItemFilters ;
6666import org .openjdk .jmc .common .item .ItemToolkit ;
67+ import org .openjdk .jmc .common .item .PersistableItemFilter ;
6768import org .openjdk .jmc .common .unit .ContentType ;
6869import org .openjdk .jmc .common .unit .IQuantity ;
6970import org .openjdk .jmc .common .unit .IRange ;
7778import org .openjdk .jmc .flightrecorder .ui .IPageContainer ;
7879import org .openjdk .jmc .flightrecorder .ui .IPageDefinition ;
7980import org .openjdk .jmc .flightrecorder .ui .IPageUI ;
81+ import org .openjdk .jmc .flightrecorder .ui .JfrEditor ;
8082import org .openjdk .jmc .flightrecorder .ui .RuleManager ;
8183import org .openjdk .jmc .flightrecorder .ui .StreamModel ;
8284import org .openjdk .jmc .flightrecorder .ui .common .AbstractDataPage ;
@@ -147,14 +149,34 @@ public IPageUI display(Composite parent, FormToolkit toolkit, IPageContainer edi
147149 public TreePath [] treeExpansion ;
148150 public FlavorSelectorState flavorSelectorState ;
149151 private IItemFilter flagsFilter ;
152+ private IPageContainer editor ;
150153// public int topIndex;
151154
152155 public EventBrowserPage (IPageDefinition definition , StreamModel items , IPageContainer editor ) {
153156 super (definition , items , editor );
157+ this .editor = editor ;
158+ }
159+
160+ static IItemFilter getPageFilter (IState state ) {
161+ if (state == null ) {
162+ return null ;
163+ }
164+ IState filterElement = state .getChild ("ItemFilter" );
165+ return filterElement == null ? null : PersistableItemFilter .readFrom (filterElement );
154166 }
155167
156168 @ Override
157169 public IItemFilter getDefaultSelectionFilter () {
170+ if (editor instanceof JfrEditor ) {
171+ JfrEditor jfrEditor = (JfrEditor ) editor ;
172+ IPageUI currentPageUI = jfrEditor .getCurrentPageUI ();
173+ if (currentPageUI instanceof EventBrowserUI ) {
174+ EventBrowserUI ebUI = (EventBrowserUI ) currentPageUI ;
175+ if (ebUI != null && ebUI .currentItemFilter != null ) {
176+ return ebUI .currentItemFilter ;
177+ }
178+ }
179+ }
158180 return ItemFilters .all ();
159181 }
160182
@@ -177,6 +199,7 @@ class EventBrowserUI implements IPageUI {
177199 private Boolean showTypesWithoutEvents ;
178200 private Boolean showFilterAction ;
179201 private Boolean showSearchAction ;
202+ private IItemFilter currentItemFilter ;
180203
181204 EventBrowserUI (Composite parent , FormToolkit toolkit , IState state , IPageContainer container ) {
182205 this .container = container ;
@@ -263,7 +286,8 @@ private void refreshTree() {
263286 private IItemCollection getFilteredItems () {
264287 if (!selectedTypes .isEmpty ()) {
265288 Set <String > types = selectedTypes .stream ().map (t -> t .getIdentifier ()).collect (Collectors .toSet ());
266- return selectionItems .apply (ItemFilters .type (types ));
289+ currentItemFilter = ItemFilters .type (types );
290+ return selectionItems .apply (currentItemFilter );
267291 }
268292 return selectionItems ;
269293 }
0 commit comments