- /**
- * This method will pre-filter the traces that contain analysis modules
- * supported by this view, whether they are from a trace or an experiment.
- */
- @Override
- protected Iterable<ITmfTrace> getTracesToBuild(ITmfTrace trace) {
- /*
- * Get the view element from the XML file. If the element can't be
- * found, return.
- */
- Element viewElement = fViewInfo.getViewElement(TmfXmlUiStrings.TIME_GRAPH_VIEW);
- if (viewElement == null) {
- return super.getTracesToBuild(trace);
- }
-
- Set<String> analysisIds = fViewInfo.getViewAnalysisIds(viewElement);
- Set<ITmfTrace> traces = new HashSet<>();
-
- for (ITmfTrace aTrace : TmfTraceManager.getTraceSetWithExperiment(trace)) {
- if (aTrace == null) {
- continue;
- }
- if ((analysisIds.isEmpty() && TmfTraceUtils.getAnalysisModulesOfClass(aTrace, ITmfAnalysisModuleWithStateSystems.class).iterator().hasNext())) {
- /*
- * No analysis ID specified, so this trace will be built only if
- * it has state system modules
- */
- traces.add(aTrace);
- } else {
- /* Build this trace only if it has one the requested modules */
- for (String moduleId : analysisIds) {
- if (TmfTraceUtils.getAnalysisModuleOfClass(aTrace, ITmfAnalysisModuleWithStateSystems.class, NonNullUtils.checkNotNull(moduleId)) != null) {
- traces.add(aTrace);
- }
- }
- }
- }
- if (traces.isEmpty()) {
- return super.getTracesToBuild(trace);
- }
- return traces;
- }