tmf: Support folders in tracing projects
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / project / model / TmfTraceElement.java
index 2f654eb5505e78d9abba2ad90b7cfcd219d99903..44590ab647e51a3d0d22d2c169153e9f3084af9c 100644 (file)
@@ -166,7 +166,7 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
      *            The parent element (trace folder)
      */
     public TmfTraceElement(String name, IResource trace, TmfTraceFolder parent) {
-        this(name, trace, (TmfProjectModelElement) parent);
+        super(name, trace, parent);
     }
 
     /**
@@ -180,10 +180,6 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
      *            The parent element (experiment folder)
      */
     public TmfTraceElement(String name, IResource trace, TmfExperimentElement parent) {
-        this(name, trace, (TmfProjectModelElement) parent);
-    }
-
-    private TmfTraceElement(String name, IResource trace, TmfProjectModelElement parent) {
         super(name, trace, parent);
     }
 
@@ -344,7 +340,7 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
         // traces folder
         if (getParent() instanceof TmfExperimentElement) {
             for (TmfTraceElement aTrace : getProject().getTracesFolder().getTraces()) {
-                if (aTrace.getName().equals(getName())) {
+                if (aTrace.getElementPath().equals(getElementPath())) {
                     return aTrace;
                 }
             }
@@ -370,26 +366,6 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
         return false;
     }
 
-    // ------------------------------------------------------------------------
-    // TmfTraceElement
-    // ------------------------------------------------------------------------
-
-    @Override
-    public TmfProjectElement getProject() {
-        if (getParent() instanceof TmfTraceFolder) {
-            TmfTraceFolder folder = (TmfTraceFolder) getParent();
-            TmfProjectElement project = (TmfProjectElement) folder.getParent();
-            return project;
-        }
-        if (getParent() instanceof TmfExperimentElement) {
-            TmfExperimentElement experiment = (TmfExperimentElement) getParent();
-            TmfExperimentFolder folder = (TmfExperimentFolder) experiment.getParent();
-            TmfProjectElement project = (TmfProjectElement) folder.getParent();
-            return project;
-        }
-        return null;
-    }
-
     // ------------------------------------------------------------------------
     // IPropertySource2
     // ------------------------------------------------------------------------
@@ -476,6 +452,7 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
                 IConfigurationElement ce = sfTraceTypeAttributes.get(getTraceType());
                 return (ce != null) ? (getCategory(ce) + " : " + ce.getAttribute(TmfTraceType.NAME_ATTR)) : ""; //$NON-NLS-1$ //$NON-NLS-2$
             }
+            return ""; //$NON-NLS-1$
         }
 
         Map<String, String> traceProperties = getTraceProperties();
@@ -544,11 +521,11 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
 
         // Close experiments that contain the trace if open
         if (getParent() instanceof TmfTraceFolder) {
-            TmfExperimentFolder experimentFolder = getProject().getExperimentsFolder();
-            for (ITmfProjectModelElement experiment : experimentFolder.getChildren()) {
-                for (ITmfProjectModelElement child : experiment.getChildren()) {
-                    if (child.getName().equals(getName())) {
-                        ((TmfExperimentElement) experiment).closeEditors();
+            TmfExperimentFolder experimentsFolder = getProject().getExperimentsFolder();
+            for (TmfExperimentElement experiment : experimentsFolder.getExperiments()) {
+                for (TmfTraceElement trace : experiment.getTraces()) {
+                    if (trace.getElementPath().equals(getElementPath())) {
+                        experiment.closeEditors();
                         break;
                     }
                 }
@@ -587,15 +564,15 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF
                 TmfExperimentFolder experimentFolder = getProject().getExperimentsFolder();
 
                 // Propagate the removal to traces
-                for (ITmfProjectModelElement experiment : experimentFolder.getChildren()) {
-                    List<ITmfProjectModelElement> toRemove = new LinkedList<>();
-                    for (ITmfProjectModelElement child : experiment.getChildren()) {
-                        if (child.getName().equals(getName())) {
-                            toRemove.add(child);
+                for (TmfExperimentElement experiment : experimentFolder.getExperiments()) {
+                    List<TmfTraceElement> toRemove = new LinkedList<>();
+                    for (TmfTraceElement trace : experiment.getTraces()) {
+                        if (trace.getElementPath().equals(getElementPath())) {
+                            toRemove.add(trace);
                         }
                     }
-                    for (ITmfProjectModelElement child : toRemove) {
-                        ((TmfExperimentElement) experiment).removeTrace((TmfTraceElement) child);
+                    for (TmfTraceElement child : toRemove) {
+                        experiment.removeTrace(child);
                     }
                 }
 
This page took 0.026531 seconds and 5 git commands to generate.