import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jface.viewers.StyledString.Styler;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.TextStyle;
import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
* Parent of the analysis
* @param module
* The analysis module helper
- * @since 1.0
+ * @since 2.0
*/
- protected TmfAnalysisElement(String name, IResource resource, ITmfProjectModelElement parent, @NonNull IAnalysisModuleHelper module) {
+ protected TmfAnalysisElement(String name, IResource resource,
+ TmfViewsElement parent, @NonNull IAnalysisModuleHelper module) {
super(name, resource, parent);
fAnalysisHelper = module;
}
// TmfProjectModelElement
// ------------------------------------------------------------------------
+ /**
+ * @since 2.0
+ */
+ @Override
+ public TmfViewsElement getParent() {
+ /* Type enforced at constructor */
+ return (TmfViewsElement) super.getParent();
+ }
+
/**
* @since 2.0
*/
* We can get a list of available outputs once the analysis is
* instantiated when the trace is opened
*/
- ITmfProjectModelElement parent = getParent();
- if (parent instanceof TmfCommonProjectElement) {
- ITmfTrace trace = ((TmfCommonProjectElement) parent).getTrace();
- if (trace == null) {
- deleteOutputs();
- return;
- }
+ TmfCommonProjectElement parentTraceElement = getParent().getParent();
- IAnalysisModule module = trace.getAnalysisModule(fAnalysisHelper.getId());
- if (module == null) {
- deleteOutputs();
- /*
- * Trace is opened, but the analysis is null, so it does not
- * apply
- */
- fCanExecute = false;
- return;
- }
+ ITmfTrace trace = parentTraceElement.getTrace();
+ if (trace == null) {
+ deleteOutputs();
+ return;
+ }
- for (IAnalysisOutput output : module.getOutputs()) {
- TmfAnalysisOutputElement outputElement = childrenMap.remove(output.getName());
- if (outputElement == null) {
- IFolder newresource = ResourcesPlugin.getWorkspace().getRoot().getFolder(path.append(output.getName()));
- outputElement = new TmfAnalysisOutputElement(output.getName(), newresource, this, output);
- addChild(outputElement);
- }
- outputElement.refreshChildren();
- }
+ IAnalysisModule module = trace.getAnalysisModule(fAnalysisHelper.getId());
+ if (module == null) {
+ deleteOutputs();
+ /*
+ * Trace is opened, but the analysis is null, so it does not
+ * apply
+ */
+ fCanExecute = false;
+ return;
+ }
+ for (IAnalysisOutput output : module.getOutputs()) {
+ TmfAnalysisOutputElement outputElement = childrenMap.remove(output.getName());
+ if (outputElement == null) {
+ IFolder newresource = ResourcesPlugin.getWorkspace().getRoot().getFolder(path.append(output.getName()));
+ outputElement = new TmfAnalysisOutputElement(output.getName(), newresource, this, output);
+ addChild(outputElement);
+ }
+ outputElement.refreshChildren();
}
+
/* Remove outputs that are not children of this analysis anymore */
for (TmfAnalysisOutputElement output : childrenMap.values()) {
removeChild(output);
}
}
+ /**
+ * @since 2.0
+ */
+ @Override
+ public Image getIcon() {
+ String iconFile = getIconFile();
+ if (iconFile != null) {
+ Bundle bundle = getBundle();
+ if (bundle != null) {
+ Image icon = TmfProjectModelIcons.loadIcon(bundle, iconFile);
+ if (icon != null) {
+ return icon;
+ }
+ }
+ }
+ return TmfProjectModelIcons.DEFAULT_ANALYSIS_ICON;
+ }
+
// ------------------------------------------------------------------------
// TmfProjectModelElement
// ------------------------------------------------------------------------
* @return The help message
*/
public String getHelpMessage() {
- ITmfProjectModelElement parent = getParent();
+ TmfCommonProjectElement parentTrace = getParent().getParent();
ITmfTrace trace = null;
- if (parent instanceof TmfTraceElement) {
- TmfTraceElement traceElement = (TmfTraceElement) parent;
+ if (parentTrace instanceof TmfTraceElement) {
+ TmfTraceElement traceElement = (TmfTraceElement) parentTrace;
trace = traceElement.getTrace();
if (trace != null) {
IAnalysisModule module = trace.getAnalysisModule(fAnalysisHelper.getId());
/**
* Make sure the trace this analysis is associated to is the currently
* selected one
+ * @since 2.0
*/
- public void activateParent() {
- ITmfProjectModelElement parent = getParent();
+ public void activateParentTrace() {
+ TmfCommonProjectElement parentTrace = getParent().getParent();
- if (parent instanceof TmfTraceElement) {
- TmfTraceElement traceElement = (TmfTraceElement) parent;
+ if (parentTrace instanceof TmfTraceElement) {
+ TmfTraceElement traceElement = (TmfTraceElement) parentTrace;
TmfOpenTraceHelper.openTraceFromElement(traceElement);
}
}