Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 3.0.0.qualifier
+Bundle-Version: 3.1.0.qualifier
Bundle-Localization: plugin
Bundle-SymbolicName: org.eclipse.linuxtools.tmf.core;singleton:=true
Bundle-Activator: org.eclipse.linuxtools.internal.tmf.core.Activator
</parent>
<artifactId>org.eclipse.linuxtools.tmf.core</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<name>Linux Tools TMF Core Plug-in</name>
import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
import org.eclipse.linuxtools.tmf.core.signal.TmfStartAnalysisSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfTraceClosedSignal;
+import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
import org.eclipse.linuxtools.tmf.core.trace.TmfTraceManager;
import org.eclipse.osgi.util.NLS;
}
}
+ /**
+ * Signal handler for when the trace becomes active
+ *
+ * @param signal
+ * Trace selected signal
+ * @since 3.1
+ */
+ @TmfSignalHandler
+ public void traceSelected(TmfTraceSelectedSignal signal) {
+ /*
+ * Since some parameter providers may handle many traces, we need to
+ * register the current trace to it
+ */
+ if (signal.getTrace() == fTrace) {
+ for (IAnalysisParameterProvider provider : fParameterProviders) {
+ provider.registerModule(this);
+ }
+ }
+ }
+
/**
* Returns a full help text to display
*
package org.eclipse.linuxtools.tmf.core.analysis;
+import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
+import org.eclipse.linuxtools.tmf.core.trace.TmfTraceManager;
+
/**
* Abstract class for parameter providers, implements methods and
* functionalities to warn the analysis module of parameter changed
if (module == null) {
throw new IllegalArgumentException();
}
- fModule = module;
+ ITmfTrace selectedTrace = TmfTraceManager.getInstance().getActiveTrace();
+ /* If no trace is active, just register the module */
+ if (selectedTrace == null) {
+ fModule = module;
+ return;
+ }
+ IAnalysisModule selectedModule = selectedTrace.getAnalysisModule(module.getId());
+ /* register only if the module is for the currently selected trace */
+ if (selectedModule == module) {
+ fModule = module;
+ }
}
/**