tmf: Delete experiment supp files when adding/removing trace
authorMarc-Andre Laperle <marc-andre.laperle@ericsson.com>
Fri, 6 Sep 2013 14:54:07 +0000 (10:54 -0400)
committerMarc-Andre Laperle <marc-andre.laperle@ericsson.com>
Thu, 14 Nov 2013 19:11:27 +0000 (14:11 -0500)
Bug: 421372

Change-Id: I9dde1c7988df47348e5c96ecda43df45dc062c4a
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/18281
Tested-by: Hudson CI
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
IP-Clean: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/handlers/DeleteTraceHandler.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/handlers/DropAdapterAssistant.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/model/TmfExperimentElement.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/wizards/SelectTracesWizardPage.java

index 5173ce4da68c47df0a04e5df5769b9192c07803e..c5f206de9c514afa73e915e481e64d3d2ef760c9 100644 (file)
@@ -126,24 +126,29 @@ public class DeleteTraceHandler extends AbstractHandler {
                     trace.closeEditors();
 
                     IPath path = resource.getLocation();
-                    if (path != null && (trace.getParent() instanceof TmfTraceFolder)) {
-                        TmfExperimentFolder experimentFolder = trace.getProject().getExperimentsFolder();
-
-                        // Propagate the removal to traces
-                        for (ITmfProjectModelElement experiment : experimentFolder.getChildren()) {
-                            List<ITmfProjectModelElement> toRemove = new LinkedList<ITmfProjectModelElement>();
-                            for (ITmfProjectModelElement child : experiment.getChildren()) {
-                                if (child.getName().equals(trace.getName())) {
-                                    toRemove.add(child);
+                    if (path != null) {
+                        if (trace.getParent() instanceof TmfTraceFolder) {
+                            // Propagate the removal to experiments
+                            TmfExperimentFolder experimentFolder = trace.getProject().getExperimentsFolder();
+                            for (ITmfProjectModelElement experiment : experimentFolder.getChildren()) {
+                                List<ITmfProjectModelElement> toRemove = new LinkedList<ITmfProjectModelElement>();
+                                for (ITmfProjectModelElement child : experiment.getChildren()) {
+                                    if (child.getName().equals(trace.getName())) {
+                                        toRemove.add(child);
+                                    }
+                                }
+                                for (ITmfProjectModelElement child : toRemove) {
+                                    ((TmfExperimentElement) experiment).removeTrace((TmfTraceElement) child);
                                 }
                             }
-                            for (ITmfProjectModelElement child : toRemove) {
-                                ((TmfExperimentElement) experiment).removeTrace((TmfTraceElement) child);
-                            }
-                        }
 
-                        // Delete supplementary files
-                        trace.deleteSupplementaryFolder();
+                            // Delete supplementary files
+                            trace.deleteSupplementaryFolder();
+
+                        } else if (trace.getParent() instanceof TmfExperimentElement) {
+                            TmfExperimentElement experimentElement = (TmfExperimentElement) trace.getParent();
+                            experimentElement.removeTrace(trace);
+                        }
                     }
 
                     // Finally, delete the trace
index 533d91e692fb77a7a5c96f05c21839debfbda9d4..bf2fde927fed01ed2bdaaa056a1b4de0cb78fcbf 100644 (file)
@@ -261,6 +261,7 @@ public class DropAdapterAssistant extends CommonDropAdapterAssistant {
         }
         if (traceResource != null && traceResource.exists()) {
             createLink(targetExperiment.getResource(), traceResource, traceResource.getName());
+            targetExperiment.deleteSupplementaryResources();
             targetExperiment.closeEditors();
             return traceResource;
         }
@@ -376,6 +377,7 @@ public class DropAdapterAssistant extends CommonDropAdapterAssistant {
             }
             if (resource != null && resource.exists()) {
                 createLink(targetExperiment.getResource(), resource, resource.getName());
+                targetExperiment.deleteSupplementaryResources();
                 targetExperiment.closeEditors();
                 return true;
             }
index add5be9aab73791a4ed51821373b0af3a7de0160..8580868c50de1e56993bd5d501ef8cf522185aa5 100644 (file)
@@ -186,7 +186,7 @@ public class TmfExperimentElement extends TmfWithFolderElement implements IPrope
         /* Finally, remove the trace from experiment*/
         removeChild(trace);
         trace.getResource().delete(true, null);
-
+        deleteSupplementaryResources();
     }
 
     private static void setProperties(IResource resource, String bundleName,
index 85653b08b5e5a23d111501bc9cbd2b4a4cc8b40e..a321f4d285c6a2c92194f5bf0d076ad8547d4186 100644 (file)
@@ -162,6 +162,7 @@ public class SelectTracesWizardPage extends WizardPage {
         }
         fProject.refresh();
         if (changed) {
+            fExperiment.deleteSupplementaryResources();
             fExperiment.closeEditors();
         }
 
This page took 0.027373 seconds and 5 git commands to generate.