tmf: Delete supplementary files when changing trace type
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Tue, 30 Apr 2013 17:42:48 +0000 (13:42 -0400)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Tue, 30 Apr 2013 19:17:12 +0000 (15:17 -0400)
After changing the trace type of a trace the supplementary files
e.g. statistics might have some information that are not
corresponding to the newly selected trace type. By deleting
the supplementary file some stale data will be avoided.

Change-Id: I6672810ea2fa4b363a96f42e26fd8647eba38d71
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/12396
Tested-by: Hudson CI
Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
IP-Clean: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/project/handlers/SelectTraceTypeHandler.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/model/TmfWithFolderElement.java

index 473016d18c7e81021de41f088e4dec30838d78e7..8eb422f5bb559e38132c3b97eff058b3647c9070 100644 (file)
@@ -129,9 +129,16 @@ public class SelectTraceTypeHandler extends AbstractHandler {
                     String bundleName = event.getParameter(BUNDLE_PARAMETER);
                     String traceType = event.getParameter(TYPE_PARAMETER);
                     String iconUrl = event.getParameter(ICON_PARAMETER);
+                    String previousTraceType = trace.getTraceType();
                     IStatus status = propagateProperties(trace, bundleName, traceType, iconUrl);
                     ok &= status.isOK();
-                    if (!status.isOK()) {
+
+                    if (status.isOK()) {
+                        if ((previousTraceType != null) && (!traceType.equals(previousTraceType))) {
+                            // Delete all supplementary resources
+                            trace.deleteSupplementaryResources();
+                        }
+                    } else {
                         statuses.add(status);
                     }
                 } catch (CoreException e) {
index b951b80f573abfe54c10ad32878c546337d9aacc..a2ca20ee55fed39bc05cc788506c30bf73d4146a 100644 (file)
@@ -188,6 +188,13 @@ public abstract class TmfWithFolderElement extends TmfProjectModelElement {
         }
     }
 
+    /**
+     * Deletes all supplementary resources in the supplementary directory
+     */
+    public void deleteSupplementaryResources() {
+        deleteSupplementaryResources(getSupplementaryResources());
+    }
+
     private void createSupplementaryDirectory() {
         IFolder supplFolder = getTraceSupplementaryFolder(getResourceName());
         if (!supplFolder.exists()) {
This page took 0.026337 seconds and 5 git commands to generate.