Add trace type property tester
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / internal / tmf / ui / project / handlers / TracePropertyTester.java
index 5ae8a796806816fbe29d5ceac9b4cd3f896ab99f..f081baea69745a0dec03fc5168d3f30e7f856785 100644 (file)
@@ -1,11 +1,11 @@
 /*******************************************************************************
  * Copyright (c) 2012 Ericsson
- * 
+ *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
  * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *   Francois Chouinard - Initial API and implementation
  *******************************************************************************/
@@ -29,11 +29,12 @@ public class TracePropertyTester extends PropertyTester {
     // ------------------------------------------------------------------------
     // Constants
     // ------------------------------------------------------------------------
-    
-    private static String isInTraceFolder = "isInTraceFolder"; //$NON-NLS-1$
-    private static String isExperimentTrace = "isExperimentTrace"; //$NON-NLS-1$
-    private static String hasSupplementaryFiles = "hasSupplementaryFiles"; //$NON-NLS-1$
-    
+
+    private final static String IS_IN_TRACE_FOLDER = "isInTraceFolder"; //$NON-NLS-1$
+    private final static String IS_EXPERIMENT_TRACE = "isExperimentTrace"; //$NON-NLS-1$
+    private final static String HAS_SUPPLEMENTARY_FILES = "hasSupplementaryFiles"; //$NON-NLS-1$
+    private final static String TRACE_TYPE = "traceType"; //$NON-NLS-1$
+
     // ------------------------------------------------------------------------
     // Constructor
     // ------------------------------------------------------------------------
@@ -55,7 +56,7 @@ public class TracePropertyTester extends PropertyTester {
     public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
 
         // Check if the selected elements are in the trace folder
-        if (isInTraceFolder.equals(property)) {
+        if (IS_IN_TRACE_FOLDER.equals(property)) {
             if (receiver != null && receiver instanceof IStructuredSelection) {
                 Iterator<?> iter = ((IStructuredSelection) receiver).iterator();
                 while (iter.hasNext()) {
@@ -74,16 +75,16 @@ public class TracePropertyTester extends PropertyTester {
         }
 
         // Check if the parent of a trace element is an experiment
-        if (isExperimentTrace.equals(property)) {
+        if (IS_EXPERIMENT_TRACE.equals(property)) {
             if (receiver != null && receiver instanceof TmfTraceElement) {
-            TmfTraceElement trace = (TmfTraceElement) receiver;
+                TmfTraceElement trace = (TmfTraceElement) receiver;
                 return trace.getParent() instanceof TmfExperimentElement;
             }
             return false;
         }
-        
+
         // Check if traces has supplementary files
-        if (hasSupplementaryFiles.equals(property)) {
+        if (HAS_SUPPLEMENTARY_FILES.equals(property)) {
             if (receiver == null) {
                 return false;
             }
@@ -102,6 +103,17 @@ public class TracePropertyTester extends PropertyTester {
             return false;
         }
 
+        // Check if the trace element is of a specific trace type
+        if (TRACE_TYPE.equals(property)) {
+            if (receiver != null && receiver instanceof TmfTraceElement) {
+                TmfTraceElement trace = (TmfTraceElement) receiver;
+                if (expectedValue instanceof String && expectedValue.equals(trace.getTraceType())) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
         return false;
     }
 
This page took 0.027076 seconds and 5 git commands to generate.