Bug 514634 Fix regression

[Fix] Implement isValid(Configuration)
[Fix] Automatic calling of isValid(Configuration) on
Initialize(Configuration) and setDefault(Configuration) invocation
[Update] General Improvement

Change-Id: I37544f25ab104f59cf4238bc1536922c23de9e6e
Signed-off-by: Arnault Lapitre <arnault.lapitre@cea.fr>
diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/META-INF/MANIFEST.MF b/execution/org.eclipse.efm.execution.configuration.common.ui/META-INF/MANIFEST.MF
index ed242a1..f5fa71a 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/META-INF/MANIFEST.MF
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/META-INF/MANIFEST.MF
@@ -21,6 +21,7 @@
  org.eclipse.efm.execution.configuration.common.ui.page.supervisor,
  org.eclipse.efm.execution.configuration.common.ui.page.testgen,
  org.eclipse.efm.execution.configuration.common.ui.util
-Import-Package: org.eclipse.ui.dialogs,
+Import-Package: org.eclipse.efm.ui.utils,
+ org.eclipse.ui.dialogs,
  org.eclipse.ui.model,
  org.eclipse.ui.views.navigator
diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationSection.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationSection.java
index 033a2d2..47877ec 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationSection.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationSection.java
@@ -36,6 +36,15 @@
 		return fConfigurationPage.getConfigurationPages();

 	}

 

+	public void createControl(Composite parent, IWidgetToolkit widgetToolkit)

+	{

+		widgetToolkit.createSectionPart(this, parent,

+				Section.TITLE_BAR | Section.DESCRIPTION |

+				Section.EXPANDED  | Section.TWISTIE, null);

+		

+		createContent(getSectionClient(), widgetToolkit);

+	}

+

 	public void createControl(Composite parent,

 			IToolBarManager toolBarManager, IWidgetToolkit widgetToolkit)

 	{

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/BooleanFieldEditor.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/BooleanFieldEditor.java
index 9cc40f0..91c6f47 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/BooleanFieldEditor.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/BooleanFieldEditor.java
@@ -297,13 +297,13 @@
 

 

 	@Override

-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

+	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration) {

 		configuration.setAttribute(getStoreKey(), fDefaultValue);

 

 	}

 

 	@Override

-	public void initializeFrom(ILaunchConfiguration configuration) {

+	protected void initializeFromImpl(ILaunchConfiguration configuration) {

 		try {

 			setBooleanValue( configuration.getAttribute(getStoreKey(), fDefaultValue) );

 		} catch (CoreException e) {

@@ -327,7 +327,7 @@
 

 

 	@Override

-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

+	protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration) {

 		if( isValid() ) {

 			configuration.setAttribute(getStoreKey(), fValue);

 		}

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/FieldEditor.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/FieldEditor.java
index 988f14e..b27e40a 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/FieldEditor.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/FieldEditor.java
@@ -623,10 +623,26 @@
 	 * Diversity Field Editor Configuration API

 	 * @param configuration

 	 */

-	public abstract void setDefaults(ILaunchConfigurationWorkingCopy configuration);

+    abstract protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration);

 

-	public abstract void initializeFrom(ILaunchConfiguration configuration);

+	public final void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

+		setDefaultsImpl(configuration);

+		

+		refreshValidState();

+	}

 

-	public abstract void performApply(ILaunchConfigurationWorkingCopy configuration);

+	abstract protected void initializeFromImpl(ILaunchConfiguration configuration);

+

+	public final void initializeFrom(ILaunchConfiguration configuration) {

+		initializeFromImpl(configuration);

+		

+		refreshValidState();

+	}

+

+	abstract protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration);

+

+	public final void performApply(ILaunchConfigurationWorkingCopy configuration) {

+		performApplyImpl(configuration);

+	}

 

 }

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/IntegerFieldEditor.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/IntegerFieldEditor.java
index b5ee235..eb76c44 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/IntegerFieldEditor.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/IntegerFieldEditor.java
@@ -97,12 +97,12 @@
 

 

 	@Override

-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

+	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration) {

 		configuration.setAttribute(getStoreKey(), fDefaultValue);

 	}

 

 	@Override

-	public void initializeFrom(ILaunchConfiguration configuration) {

+	protected void initializeFromImpl(ILaunchConfiguration configuration) {

 		try {

 			setStringValue( Integer.toString(

 					configuration.getAttribute(getStoreKey(), fDefaultValue)) );

@@ -112,7 +112,7 @@
 	}

 

 	@Override

-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

+	protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration) {

 		if( isValid() ) {

 			try {

 				configuration.setAttribute(getStoreKey(), getIntValue());

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/ListOfStringFieldEditor.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/ListOfStringFieldEditor.java
index fac97b2..4b5a97f 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/ListOfStringFieldEditor.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/ListOfStringFieldEditor.java
@@ -32,13 +32,12 @@
 

 

 	@Override

-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

+	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration) {

 		configuration.setAttribute(getStoreKey(), fDefaultValue);

-

 	}

 

 	@Override

-	public void initializeFrom(ILaunchConfiguration configuration) {

+	protected void initializeFromImpl(ILaunchConfiguration configuration) {

 		try {

 			fValue = configuration.getAttribute( getStoreKey(), fDefaultValue);

 		} catch (CoreException e) {

@@ -47,7 +46,7 @@
 	}

 

 	@Override

-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

+	protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration) {

 		configuration.setAttribute(getStoreKey(), fValue);

 

 	}

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/StringFieldEditor.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/StringFieldEditor.java
index 1ede897..56192fd 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/StringFieldEditor.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/editors/StringFieldEditor.java
@@ -16,6 +16,7 @@
 import org.eclipse.debug.core.ILaunchConfiguration;

 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

 import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationPage;

+import org.eclipse.jface.dialogs.IDialogConstants;

 import org.eclipse.jface.resource.JFaceResources;

 import org.eclipse.swt.SWT;

 import org.eclipse.swt.events.DisposeEvent;

@@ -44,13 +45,12 @@
 	}

 

 	@Override

-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

+	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration) {

 		configuration.setAttribute(getStoreKey(), fDefaultValue);

-

 	}

 

 	@Override

-	public void initializeFrom(ILaunchConfiguration configuration) {

+	protected void initializeFromImpl(ILaunchConfiguration configuration) {

 		try {

 			setStringValue( configuration.getAttribute(getStoreKey(), fDefaultValue) );

 		} catch (CoreException e) {

@@ -59,7 +59,7 @@
 	}

 

 	@Override

-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

+	protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration) {

 		if( isValid() ) {

 			configuration.setAttribute(getStoreKey(), fValue);

 		}

@@ -353,12 +353,12 @@
      * @return the error message, or <code>null</code> if none

      */

     public String getErrorMessage() {

-        return errorMessage;

+    	return errorMessage;

     }

 

     @Override

-	public int getNumberOfControls() {

-        return 2;

+    public int getNumberOfControls() {

+    	return 2;

     }

 

     /**

@@ -367,11 +367,11 @@
      * @return the current value

      */

     public String getStringValue() {

-        if (textField != null) {

-			return textField.getText();

-		}

+    	if (textField != null) {

+    		return textField.getText();

+    	}

 

-        return fValue;

+    	return fValue;

     }

 

     /**

@@ -381,7 +381,7 @@
      * text field is created yet

      */

     protected Text getTextControl() {

-        return textField;

+    	return textField;

     }

 

     /**

@@ -401,7 +401,8 @@
 

     		if( (textFieldStyle & SWT.MULTI) != 0 ) {

     			GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);

-    			gridData.heightHint = 3 * textField.getLineHeight();

+    			gridData.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;

+    			gridData.heightHint = 5 * textField.getLineHeight();

     			textField.setLayoutData(gridData);

     		}

 

@@ -472,17 +473,17 @@
      * @see #setEmptyStringAllowed

      */

     public boolean isEmptyStringAllowed() {

-        return emptyStringAllowed;

+    	return emptyStringAllowed;

     }

 

     @Override

-	public boolean isValid() {

-        return isValid;

+    public boolean isValid() {

+    	return isValid;

     }

 

     @Override

-	protected void refreshValidState() {

-        isValid = checkState();

+    protected void refreshValidState() {

+    	isValid = checkState();

     }

 

     /**

@@ -492,7 +493,7 @@
      *  and <code>false</code> if it is considered invalid

      */

     public void setEmptyStringAllowed(boolean b) {

-        emptyStringAllowed = b;

+    	emptyStringAllowed = b;

     }

 

     /**

@@ -502,14 +503,14 @@
      * @param message the error message

      */

     public void setErrorMessage(String message) {

-        errorMessage = message;

+    	errorMessage = message;

     }

 

     @Override

-	public void setFocus() {

-        if (textField != null) {

-            textField.setFocus();

-        }

+    public void setFocus() {

+    	if (textField != null) {

+    		textField.setFocus();

+    	}

     }

 

     /**

@@ -518,16 +519,16 @@
      * @param value the new value, or <code>null</code> meaning the empty string

      */

     public void setStringValue(String value) {

-        if (textField != null) {

-            if (value == null) {

-				value = "";//$NON-NLS-1$

-			}

-            fValue = textField.getText();

-            if (!fValue.equals(value)) {

-                textField.setText(value);

-                valueChanged();

-            }

-        }

+    	if (textField != null) {

+    		if (value == null) {

+    			value = "";//$NON-NLS-1$

+    		}

+    		fValue = textField.getText();

+    		if (!fValue.equals(value)) {

+    			textField.setText(value);

+    			valueChanged();

+    		}

+    	}

     }

 

     /**

@@ -538,10 +539,10 @@
 

      */

     public void setTextLimit(int limit) {

-        textLimit = limit;

-        if (textField != null) {

-			textField.setTextLimit(limit);

-		}

+    	textLimit = limit;

+    	if (textField != null) {

+    		textField.setTextLimit(limit);

+    	}

     }

 

     /**

@@ -558,16 +559,16 @@
      *  perform validation only after the text has been typed in

      */

     public void setValidateStrategy(int value) {

-        Assert.isTrue(value == VALIDATE_ON_FOCUS_LOST

-                || value == VALIDATE_ON_KEY_STROKE);

-        validateStrategy = value;

+    	Assert.isTrue(value == VALIDATE_ON_FOCUS_LOST

+    			|| value == VALIDATE_ON_KEY_STROKE);

+    	validateStrategy = value;

     }

 

     /**

      * Shows the error message set via <code>setErrorMessage</code>.

      */

     public void showErrorMessage() {

-        showErrorMessage(errorMessage);

+    	showErrorMessage(errorMessage);

     }

 

     /**

@@ -580,38 +581,38 @@
      * </p>

      */

     protected void valueChanged() {

-        setPresentsDefaultValue(false);

-        boolean oldState = isValid;

-        refreshValidState();

+    	setPresentsDefaultValue(false);

+    	boolean oldState = isValid;

+    	refreshValidState();

 

-        if (isValid != oldState) {

-			fireStateChanged(IS_VALID, oldState, isValid);

-		}

+    	if (isValid != oldState) {

+    		fireStateChanged(IS_VALID, oldState, isValid);

+    	}

 

-        String newValue = textField.getText();

-        if (!newValue.equals(fValue)) {

-            fireValueChanged(fStoreKey, fValue, newValue);

-            fValue = newValue;

-        }

+    	String newValue = textField.getText();

+    	if (!newValue.equals(fValue)) {

+    		fireValueChanged(fStoreKey, fValue, newValue);

+    		fValue = newValue;

+    	}

 

-        updateLaunchConfigurationDialog();

+    	updateLaunchConfigurationDialog();

     }

 

     /*

      * @see FieldEditor.setEnabled(boolean,Composite).

      */

     @Override

-	public void setEnabled(boolean enabled, Composite parent) {

-        super.setEnabled(enabled, parent);

-        getTextControl(parent).setEnabled(enabled);

+    public void setEnabled(boolean enabled, Composite parent) {

+    	super.setEnabled(enabled, parent);

+    	getTextControl(parent).setEnabled(enabled);

     }

 

-	public void setEnabled(boolean enabled) {

-        if (textField != null) {

-        	super.setEnabled(enabled, textField.getParent());

+    public void setEnabled(boolean enabled) {

+    	if (textField != null) {

+    		super.setEnabled(enabled, textField.getParent());

 

-        	textField.setEnabled(enabled);

-        }

+    		textField.setEnabled(enabled);

+    	}

     }

 

 

@@ -620,13 +621,13 @@
     /**

      * Clears the error message from the message line.

      */

-	@Override

+    @Override

     protected void clearErrorMessage() {

-        if (textField != null) {

-        	textField.setBackground(null);

-        }

-		

-        super.clearErrorMessage();

+    	if (textField != null) {

+    		textField.setBackground(null);

+    	}

+

+    	super.clearErrorMessage();

     }

 

 

@@ -637,13 +638,12 @@
      * @param msg the error message

      */

     protected void showErrorMessage(String msg) {

-        if (textField != null) {

-        	textField.setBackground(

-        			Display.getCurrent().getSystemColor(SWT.COLOR_RED));

-        }

-		

-        super.showErrorMessage(msg);

-    }

+    	if (textField != null) {

+    		textField.setBackground(

+    				Display.getCurrent().getSystemColor(SWT.COLOR_RED));

+    	}

 

+    	super.showErrorMessage(msg);

+    }

 

 }

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/debug/DebugConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/debug/DebugConfigurationPage.java
index 1534a81..26cb566 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/debug/DebugConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/debug/DebugConfigurationPage.java
@@ -67,10 +67,12 @@
 

 	private BooleanFieldEditor fFirstSymbexOutputGraphizEnabledBooleanField;

 //		private StringFieldEditor  fFirstSymbexOutputGraphizFileNameStringField;

+	private Group fGroupFirstSymbexOutputTrace;

+	private Group fGroupFirstSymbexOutputFormat;

+

 	private StringFieldEditor  fFirstSymbexOutputGraphizTraceStringField;

 	private StringFieldEditor  fFirstSymbexOutputGraphizFormatStringField;

-	private Composite fCompositeFirstSymbexOutputGraphiz;

-

+	

 

 	// Second Symbex Workflow Page

 //		private BooleanFieldEditor fSecondParsedModelGraphizEnabledBooleanField;

@@ -87,10 +89,14 @@
 

 	private BooleanFieldEditor fSecondSymbexOutputGraphizEnabledBooleanField;

 //		private StringFieldEditor  fSecondSymbexOutputGraphizFileNameStringField;

+	private Group fGroupSecondSymbexOutputTrace;

+	private Group fGroupSecondSymbexOutputFormat;

+

 	private StringFieldEditor  fSecondSymbexOutputGraphizTraceStringField;

 	private StringFieldEditor  fSecondSymbexOutputGraphizFormatStringField;

-	private Composite fCompositeSecondSymbexOutputGraphiz;

+	

 

+	

 	public DebugConfigurationPage(ILaunchConfigurationGUIelement masterGUIelement) {

 		super(masterGUIelement);

 

@@ -236,26 +242,31 @@
 				this, ATTR_ENABLED_FIRST_SYMBEX_OUTPUT_GRAPHVIZ_GENERATION,

 				"&<Graphiz> Representation", comp, false);

 

-		fCompositeFirstSymbexOutputGraphiz = widgetToolkit.createComposite(

-				comp, 2, 2, GridData.FILL_HORIZONTAL);

-

+		

+		fGroupFirstSymbexOutputTrace = widgetToolkit.createGroup(

+				comp, "&Trace:", 1, 2, GridData.FILL_BOTH);

 		fFirstSymbexOutputGraphizTraceStringField = new StringFieldEditor(

 				this, ATTR_FIRST_SYMBEX_OUTPUT_GRAPHVIZ_TRACE_SPEC,

-				"&Trace:", fCompositeFirstSymbexOutputGraphiz,

-				DEFAULT_FIRST_SYMBEX_OUTPUT_GRAPHVIZ_TRACE_SPEC, SWT.MULTI);

+				"", fGroupFirstSymbexOutputTrace,

+				DEFAULT_FIRST_SYMBEX_OUTPUT_GRAPHVIZ_TRACE_SPEC,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 

+		fGroupFirstSymbexOutputFormat = widgetToolkit.createGroup(

+				comp, "&Format:", 1, 2, GridData.FILL_BOTH);

 		fFirstSymbexOutputGraphizFormatStringField = new StringFieldEditor(

 				this, ATTR_FIRST_SYMBEX_OUTPUT_GRAPHVIZ_FORMAT_SPEC,

-				"&Format:", fCompositeFirstSymbexOutputGraphiz,

+				"", fGroupFirstSymbexOutputFormat,

 				DEFAULT_SYMBEX_OUTPUT_GRAPHVIZ_FORMAT_SPEC,

-				SWT.MULTI);

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 	}

 

 

 	private void setEnableFirstExecutionPage(boolean checked) {

-		fCompositeFirstSymbexOutputGraphiz.setVisible(checked);

-

-		propagateVisibility(fCompositeFirstSymbexOutputGraphiz, checked);

+		fGroupFirstSymbexOutputTrace.setVisible(checked);

+		propagateVisibility(fGroupFirstSymbexOutputTrace, checked);

+		

+		fGroupFirstSymbexOutputFormat.setVisible(checked);

+		propagateVisibility(fGroupFirstSymbexOutputFormat, checked);

 	}

 

 

@@ -312,32 +323,36 @@
 				1, 1, GridData.FILL_HORIZONTAL);

 

 		comp = widgetToolkit.createComposite(

-				group, 2, 1, GridData.FILL_HORIZONTAL);

+				group, 1, 1, GridData.FILL_HORIZONTAL);

 

 		fSecondSymbexOutputGraphizEnabledBooleanField = new BooleanFieldEditor(

 				this, ATTR_ENABLED_SECOND_SYMBEX_OUTPUT_GRAPHVIZ_GENERATION,

 				"&<Graphiz> Representation", comp, false);

 

-		fCompositeSecondSymbexOutputGraphiz = widgetToolkit.createComposite(

-				comp, 2, 2, GridData.FILL_HORIZONTAL);

-

+		fGroupSecondSymbexOutputTrace = widgetToolkit.createGroup(

+				comp, "&Trace:", 1, 2, GridData.FILL_BOTH);

 		fSecondSymbexOutputGraphizTraceStringField = new StringFieldEditor(

 				this, ATTR_SECOND_SYMBEX_OUTPUT_GRAPHVIZ_TRACE_SPEC,

-				"&Trace:", fCompositeSecondSymbexOutputGraphiz,

-				DEFAULT_SECOND_SYMBEX_OUTPUT_GRAPHVIZ_TRACE_SPEC, SWT.MULTI);

+				"", fGroupSecondSymbexOutputTrace,

+				DEFAULT_SECOND_SYMBEX_OUTPUT_GRAPHVIZ_TRACE_SPEC,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 

+		fGroupSecondSymbexOutputFormat = widgetToolkit.createGroup(

+				comp, "&Format:", 1, 2, GridData.FILL_BOTH);

 		fSecondSymbexOutputGraphizFormatStringField = new StringFieldEditor(

 				this, ATTR_SECOND_SYMBEX_OUTPUT_GRAPHVIZ_FORMAT_SPEC,

-				"&Format:", fCompositeSecondSymbexOutputGraphiz,

-				DEFAULT_SYMBEX_OUTPUT_GRAPHVIZ_FORMAT_SPEC, SWT.MULTI);

+				"", fGroupSecondSymbexOutputFormat,

+				DEFAULT_SYMBEX_OUTPUT_GRAPHVIZ_FORMAT_SPEC,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 	}

 

 

 	private void setEnableSecondExecutionPage(boolean checked) {

-		fCompositeSecondSymbexOutputGraphiz.setVisible(checked);

-

-		propagateVisibility(fCompositeSecondSymbexOutputGraphiz, checked);

-

+		fGroupSecondSymbexOutputTrace.setVisible(checked);

+		propagateVisibility(fGroupSecondSymbexOutputTrace, checked);

+		

+		fGroupSecondSymbexOutputFormat.setVisible(checked);

+		propagateVisibility(fGroupSecondSymbexOutputFormat, checked);

 	}

 

 	// ======================================================================================

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertConfigurationPage.java
index 7178da6..8954242 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertConfigurationPage.java
@@ -169,10 +169,12 @@
 		if( ! fBehaviorSelectionPage.isValid(launchConfig) ) {

 			return new FieldValidationReturn(false, null);

 		}

+		

 		// TRANSITION COVERAGE

 		if( ! fTransitionCoveragePage.isValid(launchConfig) ) {

 			return new FieldValidationReturn(false, null);

 		}

+		

 		return new FieldValidationReturn(true, null);

 	}

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/nonregression/NonRegressionConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/nonregression/NonRegressionConfigurationPage.java
index cad33ce..13f4e1a 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/nonregression/NonRegressionConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/nonregression/NonRegressionConfigurationPage.java
@@ -689,8 +689,10 @@
 	public FieldValidationReturn areFieldsValid(ILaunchConfiguration launchConfig) {

 		if( fNonRegressionCaseButton.equals("Details") &&

 			 ( selectedTransitions.size() == 0 ) ) {

-			return new FieldValidationReturn(false, "You must select at least one transition");

+			return new FieldValidationReturn(false,

+					"You must select at least one transition");

 		}

+		

 		return new FieldValidationReturn(true, null);

 	}

 }

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewAnalysisProfileSection.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewAnalysisProfileSection.java
index 2a38a0d..4636e4c 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewAnalysisProfileSection.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewAnalysisProfileSection.java
@@ -18,6 +18,7 @@
 import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationPage;

 import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationSection;

 import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;

+import org.eclipse.efm.ui.utils.ImageResources;

 import org.eclipse.swt.SWT;

 import org.eclipse.swt.custom.CTabFolder;

 import org.eclipse.swt.custom.CTabItem;

@@ -38,7 +39,9 @@
 	

 	protected CTabItem fTestOfflineTabItem;

 

+	protected CTabItem fModelAnalysisProfileSelectionTabItem;

 	

+

 	public OverviewExplorationConfigurationProfile fExplorationPage;

 

 	public OverviewTransitionCoverageConfigurationProfile fTransitionCoveragePage;

@@ -117,7 +120,7 @@
 		fTabFolder.addSelectionListener(new SelectionAdapter() {

 			@Override

 			public void widgetSelected(SelectionEvent e) {

-				handleModelSelectionChange();

+				handleModelAnalysisProfileSelectionChange( true );

 

 				fConfigurationPage.propagateUpdateJobScheduling();

 			}

@@ -208,7 +211,7 @@
 	}

 

 

-	public void setVisibleProfilePage(String profile) {

+	public void setVisibleModelAnalysisProfilePage(String profile) {

 		switch ( profile ) {

 		case ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION:

 			fTabFolder.setSelection( fTransitionCoverageTabItem );

@@ -226,6 +229,8 @@
 			fTabFolder.setSelection( fExplorationTabItem );

 			break;

 		}

+		

+		handleModelAnalysisProfileSelectionChange( false );

 	}

 

 	// ======================================================================================

@@ -239,15 +244,28 @@
 		}

 	}

 

-	private void handleModelSelectionChange() {

-		CTabItem selectionTabItem = fTabFolder.getItem( fTabFolder.getSelectionIndex() );

-		fModelAnalysisProfile = selectionTabItem.getText();

-

-		for( AbstractConfigurationPage confPage : getConfigurationPages() ) {

-			confPage.handleModelAnalysisProfileSelectionChanged(fModelAnalysisProfile);

+	

+	private void handleModelAnalysisProfileSelectionChange(boolean notifyAll) {

+		if( fModelAnalysisProfileSelectionTabItem != null ) {

+			fModelAnalysisProfileSelectionTabItem.setImage(null);

 		}

 		

-//		getConfigurationPage().propagateGUIupdate();

+		fModelAnalysisProfileSelectionTabItem =

+				fTabFolder.getItem( fTabFolder.getSelectionIndex() );

+		fModelAnalysisProfile = fModelAnalysisProfileSelectionTabItem.getText();

+		

+		fModelAnalysisProfileSelectionTabItem.setImage(

+				ImageResources.getImageDescriptor(

+						ImageResources.IMAGE__VALIDATE_ICON).createImage());

+

+		

+		if( notifyAll ) {

+			for( AbstractConfigurationPage confPage : getConfigurationPages() ) {

+				confPage.handleModelAnalysisProfileSelectionChanged(fModelAnalysisProfile);

+			}

+			

+//			getConfigurationPage().propagateGUIupdate();

+		}

 	}

 

 

@@ -280,14 +298,14 @@
 			fModelAnalysisProfile = configuration.getAttribute(

 					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE,

 					ANALYSIS_PROFILE_MODEL_EXPLORATION);

-

-			setVisibleProfilePage(fModelAnalysisProfile);

 		}

 		catch (CoreException e) {

 			e.printStackTrace();

+			

+			fModelAnalysisProfile = ANALYSIS_PROFILE_MODEL_EXPLORATION;

 		}

 

-		setVisibleProfilePage( fModelAnalysisProfile );

+		setVisibleModelAnalysisProfilePage( fModelAnalysisProfile );

 

 		fConfigurationPage.propagateGUIupdate();

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewBehaviorSelectionConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewBehaviorSelectionConfigurationProfile.java
index 44602b6..8a3a525 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewBehaviorSelectionConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewBehaviorSelectionConfigurationProfile.java
@@ -52,7 +52,7 @@
 

 		fBehaviorSpecificationStringField = new StringFieldEditor(fConfigurationPage,

 				ATTR_BEHAVIOR_ANALYSIS_ELEMENT_NAME_LIST, "",

-				parent, BEHAVIOR_DESCRIPTION, SWT.MULTI);

+				parent, BEHAVIOR_DESCRIPTION, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		fBehaviorSpecificationStringField.setToolTipText(BEHAVIOR_DESCRIPTION);

 		addField(fBehaviorSpecificationStringField);

 	}

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewExplorationConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewExplorationConfigurationProfile.java
index 6087680..50589bf 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewExplorationConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewExplorationConfigurationProfile.java
@@ -19,6 +19,8 @@
 import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationProfile;

 import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;

 import org.eclipse.efm.execution.configuration.common.ui.editors.BooleanFieldEditor;

+//import org.eclipse.efm.execution.configuration.common.ui.page.supervisor.SupervisorEvaluationLimitsSection;

+//import org.eclipse.efm.execution.configuration.common.ui.page.supervisor.SupervisorGraphSizeLimitsSection;

 import org.eclipse.efm.execution.core.workflow.common.GraphExplorationStrategyKind;

 import org.eclipse.swt.events.SelectionAdapter;

 import org.eclipse.swt.events.SelectionEvent;

@@ -37,6 +39,12 @@
 

 	private GraphExplorationStrategyKind fAnalyzeStrategy =

 		GraphExplorationStrategyKind.BREADTH_FIRST_SEARCH;

+	

+	

+//	private SupervisorGraphSizeLimitsSection  fGraphSizeLimitsSection;

+//	

+//	private SupervisorEvaluationLimitsSection fEvaluationLimitsSection;

+

 

 	private Group fGroupInclusionCriterion;

 	private BooleanFieldEditor fApplyInclusionBooleanField;

@@ -49,6 +57,10 @@
 	 */

 	public OverviewExplorationConfigurationProfile(AbstractConfigurationPage configurationPage) {

 		super(configurationPage);

+		

+//		fGraphSizeLimitsSection  = new SupervisorGraphSizeLimitsSection(configurationPage);

+//		

+//		fEvaluationLimitsSection = new SupervisorEvaluationLimitsSection(configurationPage);

 	}

 

 

@@ -64,7 +76,6 @@
 	}

 

 	

-	

 	private final class TabListener extends SelectionAdapter {

 		@Override

 		public void widgetSelected(SelectionEvent e) {

@@ -117,14 +128,19 @@
 	protected void createContent(Composite parent, IWidgetToolkit widgetToolkit)

 	{

 		createAnalyzeStrategy(parent, widgetToolkit);

+

 		createControlInclusionCriterion(parent, widgetToolkit);

+

+//		fGraphSizeLimitsSection.createControl(parent, widgetToolkit);

+//		

+//		fEvaluationLimitsSection.createControl(parent, widgetToolkit);

 	}

 

 	private void createControlInclusionCriterion(

 			Composite parent, IWidgetToolkit widgetToolkit)

 	{

         fGroupInclusionCriterion = widgetToolkit.createGroup(parent,

-        		"Inclusion Criterion", 2, 2, GridData.FILL_HORIZONTAL);

+        		"Inclusion Criterion", 1, 2, GridData.FILL_HORIZONTAL);

 

         Composite comp = widgetToolkit.createComposite(

         		fGroupInclusionCriterion, 2, 1, GridData.FILL_HORIZONTAL);

@@ -188,6 +204,10 @@
 		configuration.setAttribute(ATTR_ENABLED_REDUNDANCY_INCLUSION_CRITERION, false);

 

 		configuration.setAttribute(ATTR_ENABLED_REDUNDANCY_LOOP_DETECTION_TRIVIAL, true);

+		

+//		fGraphSizeLimitsSection.setDefaults(configuration);

+//		

+//		fEvaluationLimitsSection.setDefaults(configuration);

 	}

 

 	@Override

@@ -210,6 +230,10 @@
 			}

 		}

 

+//		fGraphSizeLimitsSection.initializeFrom(configuration);

+//		

+//		fEvaluationLimitsSection.initializeFrom(configuration);

+		

 		initializeAnalyzeStrategy();

 		

 		handleEnablingRedundancyDetection();

@@ -248,6 +272,10 @@
 		configuration.setAttribute(

 				ATTR_SPECIFICATION_ANALYZE_STRATEGY,

 				fAnalyzeStrategy.getLiteral());

+		

+//		fGraphSizeLimitsSection.performApply(configuration);

+//		

+//		fEvaluationLimitsSection.performApply(configuration);

 	}

 

 	@Override

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTestOfflineConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTestOfflineConfigurationProfile.java
index c76ccc1..3d40a5a 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTestOfflineConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTestOfflineConfigurationProfile.java
@@ -231,27 +231,23 @@
 				"&Observable", 1, 1, GridData.FILL_HORIZONTAL);

 		fGroupObservable.setToolTipText(TEST_OFFLINE_OBSERVABLE);

 

-		comp = widgetToolkit.createComposite(fGroupObservable,

-				1, 1, GridData.FILL_HORIZONTAL);

-		comp.setToolTipText(TEST_OFFLINE_OBSERVABLE);

-

 		StringFieldEditor textStringField =

 				new StringFieldEditor(fConfigurationPage,

-				ATTR_TEST_OFFLINE_OBSERVABLE_SPECIFICATION, "", comp,

-				DEFAULT_TEST_OFFLINE_OBSERVABLE_SPECIFICATION, SWT.MULTI);

+				ATTR_TEST_OFFLINE_OBSERVABLE_SPECIFICATION,

+				"", fGroupObservable,

+				DEFAULT_TEST_OFFLINE_OBSERVABLE_SPECIFICATION,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		addField(textStringField);

 

 		fGroupControllable = widgetToolkit.createGroup(parent,

 				"&Controllable", 1, 1, GridData.FILL_HORIZONTAL);

 		fGroupControllable.setToolTipText(TEST_OFFLINE_CONTROLLABLE);

 

-		comp = widgetToolkit.createComposite(fGroupControllable,

-				1, 1, GridData.FILL_HORIZONTAL);

-		comp.setToolTipText(TEST_OFFLINE_CONTROLLABLE);

-

 		textStringField = new StringFieldEditor(fConfigurationPage,

-				ATTR_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION, "", comp,

-				DEFAULT_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION, SWT.MULTI);

+				ATTR_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION,

+				"", fGroupControllable,

+				DEFAULT_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		addField(textStringField);

 	}

 

@@ -331,7 +327,23 @@
 	@Override

 	protected boolean isValidImpl(ILaunchConfiguration launchConfig) {

 

-		String filePath = fTestPurposePathText.getText();

+		String filePath = fTracePathText.getText();

+

+		if( (filePath == null) || filePath.isEmpty() ) {

+			setWarningMessage("The ressource Test Offline trace "

+					+ "file path is empty (or null)");

+

+			return false;

+		}

+		else if( ! ( new File(filePath) ).exists() ) {

+			setWarningMessage("The ressource Test Offline trace "

+					+ "file \"" + filePath + "\" does not exist.");

+

+			return false;

+		}

+

+		

+		filePath = fTestPurposePathText.getText();

 

 		if( (filePath == null) || filePath.isEmpty() ) {

 			setWarningMessage("The ressource Test Offline test "

@@ -350,22 +362,6 @@
 			return false;

 		}

 

-

-		filePath = fTracePathText.getText();

-

-		if( (filePath == null) || filePath.isEmpty() ) {

-			setErrorMessage("The ressource Test Offline trace "

-					+ "file path is empty (or null)");

-

-			return false;

-		}

-		else if( ! ( new File(filePath) ).exists() ) {

-			setErrorMessage("The ressource Test Offline trace "

-					+ "file \"" + filePath + "\" does not exist.");

-

-			return false;

-		}

-

 		return true;

 	}

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewWorkspaceDataSection.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewWorkspaceDataSection.java
index cf8f508..90e76e5 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewWorkspaceDataSection.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewWorkspaceDataSection.java
@@ -64,6 +64,7 @@
 						ATTR_WORKSPACE_ROOT_LOCATION, "Location", parent, root);

 		fWorkspaceRootLocationStringField.setEnabled(false);

 		fWorkspaceRootLocationStringField.setToolTipText(toolTipText2);

+		fWorkspaceRootLocationStringField.setEmptyStringAllowed(false);

 		addField(fWorkspaceRootLocationStringField);

 

 		StringFieldEditor folderNameStringFieldEditor =

@@ -72,6 +73,7 @@
 						DEFAULT_WORKSPACE_OUTPUT_FOLDER_NAME);

 		folderNameStringFieldEditor.setToolTipText(toolTipText2);

 		addField(folderNameStringFieldEditor);

+		folderNameStringFieldEditor.setEmptyStringAllowed(false);

 

 		if( getConfigurationPage().isEnabledSymbexDeveloperMode() ) {

 			folderNameStringFieldEditor =

@@ -80,13 +82,15 @@
 							parent, DEFAULT_WORKSPACE_LOG_FOLDER_NAME);

 			folderNameStringFieldEditor.setToolTipText(toolTipText3);

 			addField(folderNameStringFieldEditor);

-	

+			folderNameStringFieldEditor.setEmptyStringAllowed(false);

+

 			folderNameStringFieldEditor =

 					new StringFieldEditor(fConfigurationPage,

 							ATTR_WORKSPACE_DEBUG_FOLDER_NAME, "Debug",

 							parent, DEFAULT_WORKSPACE_DEBUG_FOLDER_NAME);

 			folderNameStringFieldEditor.setToolTipText(toolTipText3);

 			addField(folderNameStringFieldEditor);

+			folderNameStringFieldEditor.setEmptyStringAllowed(false);

 		}

 	}

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorConfigurationPage.java
index cd7531d..d7abd4b 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorConfigurationPage.java
@@ -13,34 +13,26 @@
 

 package org.eclipse.efm.execution.configuration.common.ui.page.supervisor;

 

-import org.eclipse.core.runtime.CoreException;

 import org.eclipse.debug.core.ILaunchConfiguration;

 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

 import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationPage;

 import org.eclipse.efm.execution.configuration.common.ui.api.ILaunchConfigurationGUIelement;

 import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;

-import org.eclipse.efm.execution.configuration.common.ui.editors.IntegerFieldEditor;

-import org.eclipse.swt.layout.GridData;

 import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Group;

 

 public class SupervisorConfigurationPage extends AbstractConfigurationPage {

 

-	//	public static final String ATTR_BEHAVIOR_ANALYSIS_TRANSITION_NAME =

-	//	Activator.PLUGIN_ID + ".ATTR_BEHAVIOR_ANALYSIS_TRANSITION_NAME"; //$NON-NLS-1$

-

-	private IntegerFieldEditor fNodeIntegerField;

-	private IntegerFieldEditor fWidthIntegerField;

-	private IntegerFieldEditor fHeightIntegerField;

-	private IntegerFieldEditor fStepsIntegerField;

-	private IntegerFieldEditor fTimeoutIntegerField;

-	//private StringFieldEditor fTransitionNameStringField;

-

-	//private Group groupBehaviorCharacterization;

+	private SupervisorGraphSizeLimitsSection  fGraphSizeLimitsSection;

+	

+	private SupervisorEvaluationLimitsSection fEvaluationLimitsSection;

 

 	

 	public SupervisorConfigurationPage(ILaunchConfigurationGUIelement masterGUIelement) {

 		super(masterGUIelement);

+		

+		fGraphSizeLimitsSection  = new SupervisorGraphSizeLimitsSection(this);

+		

+		fEvaluationLimitsSection = new SupervisorEvaluationLimitsSection(this);

 	}

 

 

@@ -51,68 +43,11 @@
 	@Override

 	protected void createContent(Composite parent, IWidgetToolkit widgetToolkit)

 	{

-		createControlNodesHeightWidth(parent, widgetToolkit);

-		createControlEvaluationLimits(parent, widgetToolkit);

-

-//		createBehaviorCharacterization(parent, widgetToolkit);

+		fGraphSizeLimitsSection.createControl(parent, widgetToolkit);

+		

+		fEvaluationLimitsSection.createControl(parent, widgetToolkit);

 	}

 

-	private void createControlNodesHeightWidth(Composite parent, IWidgetToolkit widgetToolkit) {

-        Group group = widgetToolkit.createGroup(parent,

-        		"Graph size limits", 5, 2, GridData.FILL_HORIZONTAL);

-

-        Composite comp = widgetToolkit.createComposite(group, 1, 1, GridData.FILL_HORIZONTAL);

-

-		fNodeIntegerField = new IntegerFieldEditor(this,

-				ATTR_SPECIFICATION_STOP_CRITERIA_NODE, "&Nodes:", comp, -1);

-		fNodeIntegerField.setToolTipText("Maximal number of nodes "

-				+ "(-1 <=> no-limit) of the symbolic execution tree");

-

-		fWidthIntegerField = new IntegerFieldEditor(this,

-				ATTR_SPECIFICATION_STOP_CRITERIA_WIDTH, "W&idth:", comp, -1);

-		fWidthIntegerField.setToolTipText(

-				"Maximal width (-1 <=> no-limit) of the symbolic execution tree");

-

-		fHeightIntegerField = new IntegerFieldEditor(this,

-				ATTR_SPECIFICATION_STOP_CRITERIA_HEIGHT, "&Height:", comp, 100);

-		fHeightIntegerField.setToolTipText(

-				"Maximal height (-1 <=> no-limit) of the symbolic execution tree");

-	}

-

-	private void createControlEvaluationLimits(Composite parent, IWidgetToolkit widgetToolkit) {

-        Group group = widgetToolkit.createGroup(parent,

-        		"Evaluation limits", 5, 2, GridData.FILL_HORIZONTAL);

-

-        Composite comp = widgetToolkit.createComposite(

-        		group, 1, 1, GridData.FILL_HORIZONTAL);

-

-		fStepsIntegerField = new IntegerFieldEditor(this,

-				ATTR_SPECIFICATION_STOP_CRITERIA_STEPS,

-				"&Evaluation Steps:", comp, 1000);

-		fStepsIntegerField.setToolTipText("Maximal steps of calculus "

-				+ "(-1 <=> no-limit) during the symbolic execution");

-

-		fTimeoutIntegerField = new IntegerFieldEditor(this,

-				ATTR_SPECIFICATION_STOP_CRITERIA_TIMEOUT,

-				"&Timeout (seconds):", comp, -1);

-		fTimeoutIntegerField.setToolTipText("Maximal duration "

-				+ "(-1 <=> no-limit) of the symbolic execution");

-	}

-

-

-//	public void createBehaviorCharacterization(Composite parent, IWidgetToolkit widgetToolkit) {

-//        groupBehaviorCharacterization = widgetToolkit.createGroup(

-//        		parent, "Behavior Characterization",

-//        		5, 2, GridData.FILL_HORIZONTAL);

-//

-//        Composite comp = widgetToolkit.createComposite(

-//        		groupBehaviorCharacterization, 1, 1, GridData.FILL_HORIZONTAL);

-//

-//		fTransitionNameStringField = new StringFieldEditor(this,

-//				ATTR_BEHAVIOR_ANALYSIS_TRANSITION_NAME,

-//				"&Transition Name List:", comp,

-//				"Select a transition name list");

-//	}

 

 

 	// ======================================================================================

@@ -121,101 +56,24 @@
 

 	@Override

 	public void setDefaultFieldValues(ILaunchConfigurationWorkingCopy configuration) {

-//		fNodeIntegerField.setDefaults(configuration);

-		configuration.setAttribute(

-				ATTR_SPECIFICATION_STOP_CRITERIA_NODE, -1);

-

-//		fWidthIntegerField.setDefaults(configuration);

-		configuration.setAttribute(

-				ATTR_SPECIFICATION_STOP_CRITERIA_WIDTH, -1);

-

-//		fHeightIntegerField.setDefaults(configuration);

-		configuration.setAttribute(

-				ATTR_SPECIFICATION_STOP_CRITERIA_HEIGHT, -1);

-

-//		fStepsIntegerField.setDefaults(configuration);

-    	String fModelAnalysis;

-		try {

-			fModelAnalysis = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-

-			if ( fModelAnalysis.equals(

-					ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION) )

-			{

-				configuration.setAttribute(

-						ATTR_SPECIFICATION_STOP_CRITERIA_STEPS, -1);

-			}

-			else {

-				configuration.setAttribute(

-						ATTR_SPECIFICATION_STOP_CRITERIA_STEPS, 1000);

-			}

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-		}

-

-//		fTimeoutIntegerField.setDefaults(configuration);

-		configuration.setAttribute(

-				ATTR_SPECIFICATION_STOP_CRITERIA_TIMEOUT, -1);

+		fGraphSizeLimitsSection.setDefaults(configuration);

+		

+		fEvaluationLimitsSection.setDefaults(configuration);

 	}

 

 	@Override

 	public void initializeFieldValuesFrom(ILaunchConfiguration configuration) {

-		fNodeIntegerField.initializeFrom(configuration);

-		fWidthIntegerField.initializeFrom(configuration);

-		fHeightIntegerField.initializeFrom(configuration);

+		fGraphSizeLimitsSection.initializeFrom(configuration);

 		

-		fStepsIntegerField.initializeFrom(configuration);

-		fTimeoutIntegerField.initializeFrom(configuration);

-

-		// Timeout grisé tant que pas de solution pour le prendre en compte

-		//

-		// fTimeoutIntegerField.setEnabled(false);

-

-//		// Cas fTransitionNameStringField

-//		//

-//		fTransitionNameStringField.initializeFrom(configuration);

-//		initializeBehaviorCharacterization(configuration);

+		fEvaluationLimitsSection.initializeFrom(configuration);

 	}

 

-//	private void initializeBehaviorCharacterization(ILaunchConfiguration configuration) {

-//    	String fAnalysisProfile;

-//    	String fModelAnalysis;

-//		try {

-//			fAnalysisProfile = configuration.getAttribute(

-//					MainTab.ATTR_SPECIFICATION_ANALYSIS_PROFILE, "");

-//			fModelAnalysis = configuration.getAttribute(

-//					MainTab.ATTR_SPECIFICATION_MODEL_ANALYSIS, "");

-//

-//			if ( fAnalysisProfile.equals(ANALYSIS_PROFILE_MODEL) &&

-//					fModelAnalysis.equals(ANALYSIS_PROFILE_MODEL_COVERAGE_BEHAVIOR)	) {

-////				fTransitionNameStringField.setEnabled(true);

-//

-////				groupBehaviorCharacterization.setVisible(true);

-//				visibleAndExclude(groupBehaviorCharacterization,true);

-//			}

-//			else {

-////				fTransitionNameStringField.setEnabled(false);

-//

-////				groupBehaviorCharacterization.setVisible(false);

-//				visibleAndExclude(groupBehaviorCharacterization,false);

-//			}

-//

-//		} catch (CoreException e) {

-//			e.printStackTrace();

-//		}

-//	}

 

 	@Override

 	public void applyUpdatesOnFieldValuesFrom(ILaunchConfigurationWorkingCopy configuration) {

-		fNodeIntegerField.performApply(configuration);

-		fWidthIntegerField.performApply(configuration);

-		fHeightIntegerField.performApply(configuration);

+		fGraphSizeLimitsSection.performApply(configuration);

 		

-		fStepsIntegerField.performApply(configuration);

-		fTimeoutIntegerField.performApply(configuration);

-		

-//		fTransitionNameStringField.performApply(configuration);

+		fEvaluationLimitsSection.performApply(configuration);

 	}

 

 	// ======================================================================================

@@ -224,24 +82,14 @@
 

 	@Override

 	public FieldValidationReturn areFieldsValid(ILaunchConfiguration launchConfig) {

-		if( ! fNodeIntegerField.isValid() ) {

-			return new FieldValidationReturn(false, "Node is not a valid integer");

+		if( ! fGraphSizeLimitsSection.isValid(launchConfig) ) {

+			return new FieldValidationReturn(false, null);

 		}

-		if( ! fWidthIntegerField.isValid() ) {

-			return new FieldValidationReturn(false, "Width is not a valid integer");

+

+		if( ! fEvaluationLimitsSection.isValid(launchConfig) ) {

+			return new FieldValidationReturn(false, null);

 		}

-		if( ! fHeightIntegerField.isValid() ) {

-			return new FieldValidationReturn(false, "Height is not a valid integer");

-		}

-		if( ! fStepsIntegerField.isValid() ) {

-			return new FieldValidationReturn(false, "Evaluation Steps is not a valid integer");

-		}

-		if( ! fTimeoutIntegerField.isValid() ) {

-			return new FieldValidationReturn(false, "Timeout is not a valid integer");

-		}

-//		if( ! fTransitionNameStringField.isValid() ) {

-//			return new FieldValidationReturn(false, "Transition Name is not a valid string");

-//		}

+				

 		return new FieldValidationReturn(true, null);

 	}

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorEvaluationLimitsSection.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorEvaluationLimitsSection.java
new file mode 100644
index 0000000..e352f43
--- /dev/null
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorEvaluationLimitsSection.java
@@ -0,0 +1,130 @@
+/*******************************************************************************

+ * Copyright (c) 2017 CEA LIST.

+ *

+ * 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:

+ *  Alain Faivre (CEA LIST) alain.faivre@cea.fr - Initial Implementation (tab-based, inserted in Run Configurations dialog)

+ *  Erwan Mahe (CEA LIST) erwan.mahe@cea.fr - New API (free-composite-based, no type assumptions on parent)

+ *******************************************************************************/

+

+package org.eclipse.efm.execution.configuration.common.ui.page.supervisor;

+

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.debug.core.ILaunchConfiguration;

+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

+import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationPage;

+import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationSection;

+import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;

+import org.eclipse.efm.execution.configuration.common.ui.editors.IntegerFieldEditor;

+import org.eclipse.swt.widgets.Composite;

+

+public class SupervisorEvaluationLimitsSection extends AbstractConfigurationSection {

+

+	

+	public SupervisorEvaluationLimitsSection(AbstractConfigurationPage configurationPage) {

+		super(configurationPage);

+	}

+

+

+	@Override

+	public String getSectionTitle() {

+		return "Evaluation limits";

+	}

+

+

+	@Override

+	public String getSectionDescription() {

+		return "Evaluation limits: max step count or timeout";

+	}

+

+

+	// ======================================================================================

+	//                              Graphical Components Creation Methods

+	// ======================================================================================

+

+	@Override

+	protected void createContent(Composite parent, IWidgetToolkit widgetToolkit)

+	{

+        IntegerFieldEditor integerField = new IntegerFieldEditor(fConfigurationPage,

+				ATTR_SPECIFICATION_STOP_CRITERIA_STEPS,

+				"&Evaluation Steps:", parent, 1000);

+		integerField.setToolTipText("Maximal steps of calculus "

+				+ "(-1 <=> no-limit) during the symbolic execution");

+		addField( integerField );

+

+		integerField = new IntegerFieldEditor(fConfigurationPage,

+				ATTR_SPECIFICATION_STOP_CRITERIA_TIMEOUT,

+				"&Timeout (seconds):", parent, -1);

+		integerField.setToolTipText("Maximal duration "

+				+ "(-1 <=> no-limit) of the symbolic execution");

+		addField( integerField );

+

+		integerField.setEnabled(false);

+	}

+

+

+	// ======================================================================================

+	//                              Fields Values Management

+	// ======================================================================================

+

+	@Override

+	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration) {

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_NODE, -1);

+

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_WIDTH, -1);

+

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_HEIGHT, -1);

+

+    	String fModelAnalysis;

+		try {

+			fModelAnalysis = configuration.getAttribute(

+					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

+		}

+		catch (CoreException e) {

+			e.printStackTrace();

+			

+			fModelAnalysis = "";

+		}

+

+		if ( fModelAnalysis.equals(

+				ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION) )

+		{

+			configuration.setAttribute(

+					ATTR_SPECIFICATION_STOP_CRITERIA_STEPS, -1);

+		}

+		else {

+			configuration.setAttribute(

+					ATTR_SPECIFICATION_STOP_CRITERIA_STEPS, 1000);

+		}

+

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_TIMEOUT, -1);

+	}

+

+

+	@Override

+	protected void initializeFromImpl(ILaunchConfiguration configuration) {

+		//!! NOTHING

+	}

+

+

+	@Override

+	protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration) {

+		//!! NOTHING

+	}

+

+

+	@Override

+	protected boolean isValidImpl(ILaunchConfiguration launchConfig) {

+		return( true );

+	}

+

+

+}

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorGraphSizeLimitsSection.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorGraphSizeLimitsSection.java
new file mode 100644
index 0000000..e9cb4fa
--- /dev/null
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/supervisor/SupervisorGraphSizeLimitsSection.java
@@ -0,0 +1,106 @@
+/*******************************************************************************

+ * Copyright (c) 2017 CEA LIST.

+ *

+ * 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:

+ *  Alain Faivre (CEA LIST) alain.faivre@cea.fr - Initial Implementation (tab-based, inserted in Run Configurations dialog)

+ *  Erwan Mahe (CEA LIST) erwan.mahe@cea.fr - New API (free-composite-based, no type assumptions on parent)

+ *******************************************************************************/

+

+package org.eclipse.efm.execution.configuration.common.ui.page.supervisor;

+

+import org.eclipse.debug.core.ILaunchConfiguration;

+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

+import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationPage;

+import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationSection;

+import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;

+import org.eclipse.efm.execution.configuration.common.ui.editors.IntegerFieldEditor;

+import org.eclipse.swt.widgets.Composite;

+

+public class SupervisorGraphSizeLimitsSection extends AbstractConfigurationSection {

+

+	

+	public SupervisorGraphSizeLimitsSection(AbstractConfigurationPage configurationPage) {

+		super(configurationPage);

+	}

+

+

+	@Override

+	public String getSectionTitle() {

+		return "Graph size limits";

+	}

+

+

+	@Override

+	public String getSectionDescription() {

+		return "Graph size limits";

+	}

+

+

+	// ======================================================================================

+	//                              Graphical Components Creation Methods

+	// ======================================================================================

+

+	@Override

+	protected void createContent(Composite parent, IWidgetToolkit widgetToolkit)

+	{	

+        IntegerFieldEditor integerField = new IntegerFieldEditor(fConfigurationPage,

+				ATTR_SPECIFICATION_STOP_CRITERIA_NODE, "&Nodes:", parent, -1);

+		integerField.setToolTipText("Maximal number of nodes "

+				+ "(-1 <=> no-limit) of the symbolic execution tree");

+		addField( integerField );

+

+		integerField = new IntegerFieldEditor(fConfigurationPage,

+				ATTR_SPECIFICATION_STOP_CRITERIA_WIDTH, "W&idth:", parent, -1);

+		integerField.setToolTipText(

+				"Maximal width (-1 <=> no-limit) of the symbolic execution tree");

+		addField( integerField );

+

+		integerField = new IntegerFieldEditor(fConfigurationPage,

+				ATTR_SPECIFICATION_STOP_CRITERIA_HEIGHT, "&Height:", parent, 100);

+		integerField.setToolTipText(

+				"Maximal height (-1 <=> no-limit) of the symbolic execution tree");

+		addField( integerField );

+	}

+

+

+	// ======================================================================================

+	//                              Fields Values Management

+	// ======================================================================================

+

+	@Override

+	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration) {

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_NODE, -1);

+

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_WIDTH, -1);

+

+		configuration.setAttribute(

+				ATTR_SPECIFICATION_STOP_CRITERIA_HEIGHT, -1);

+	}

+

+

+	@Override

+	protected void initializeFromImpl(ILaunchConfiguration configuration) {

+		//!! NOTHING

+	}

+

+

+	@Override

+	protected void performApplyImpl(ILaunchConfigurationWorkingCopy configuration) {

+		//!! NOTHING

+	}

+

+

+	@Override

+	protected boolean isValidImpl(ILaunchConfiguration launchConfig) {

+		return( true );

+	}

+

+

+}

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationBasicTraceConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationBasicTraceConfigurationProfile.java
index f140981..1699d0d 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationBasicTraceConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationBasicTraceConfigurationProfile.java
@@ -32,6 +32,7 @@
 	private Group groupBasicObservable;

 

 	private BooleanFieldEditor fBasicTraceEnabledGenerationBooleanField;

+	private BooleanFieldEditor fBasicTraceLifelinesEnabledGenerationBooleanField;

 

 

 	/**

@@ -56,13 +57,17 @@
 

 	@Override

 	protected void createContent(Composite parent, IWidgetToolkit widgetToolkit) {

+		Group group = widgetToolkit.createGroup(parent,

+				"Enabled Options", 2, 1, GridData.FILL_HORIZONTAL);

+

 		Composite comp = widgetToolkit.createComposite(

-				parent, 1, 1, GridData.FILL_HORIZONTAL);

+				group, 1, 1, GridData.FILL_HORIZONTAL);

 

 		fBasicTraceEnabledGenerationBooleanField =

 				new BooleanFieldEditor(fConfigurationPage,

 						ATTR_BASIC_TRACE_ENABLED_GENERATION,

-						"&Enabled Generation", comp, false);

+						"&Generation", comp,

+						DEFAULT_BASIC_TRACE_ENABLED_GENERATION);

 		addField(fBasicTraceEnabledGenerationBooleanField);

 

 		fBasicTraceEnabledGenerationBooleanField.addSelectionListener(

@@ -73,12 +78,25 @@
 					}

 				});

 

+		comp = widgetToolkit.createComposite(

+				group, 2, 1, GridData.FILL_HORIZONTAL);

+

+		fBasicTraceLifelinesEnabledGenerationBooleanField =

+				new BooleanFieldEditor(fConfigurationPage,

+						ATTR_BASIC_TRACE_LIFELINES_ENABLED_PRINTING,

+						"&Print Lifelines", comp,

+						DEFAULT_BASIC_TRACE_LIFELINES_ENABLED_PRINTING);

+		addField(fBasicTraceLifelinesEnabledGenerationBooleanField);

+

 		createBasicConfigurationComponent(parent, widgetToolkit);

 

 		createObservableSelectionComponent(parent, widgetToolkit);

 	}

 

 	private void handleEnablingGeneration() {

+		fBasicTraceLifelinesEnabledGenerationBooleanField.setEnabled(

+				fBasicTraceEnabledGenerationBooleanField.getBooleanValue() );

+		

 		fConfigurationPage.propagateVisibility(groupBasicConfiguration,

 				fBasicTraceEnabledGenerationBooleanField.getBooleanValue() );

 		

@@ -86,7 +104,6 @@
 				fBasicTraceEnabledGenerationBooleanField.getBooleanValue() );

 	}

 

-

 	private void createBasicConfigurationComponent(

 			Composite parent, IWidgetToolkit widgetToolkit) {

 		groupBasicConfiguration = widgetToolkit.createGroup(parent,

@@ -124,8 +141,8 @@
 				1, 1, GridData.FILL_HORIZONTAL);

 

 		flagBooleanFieldEditor = new BooleanFieldEditor(

-				fConfigurationPage, ATTR_BASIC_TRACE_SHOW_INITIALIZATION,

-				"&Show Parameters Initialization", comp, false);

+				fConfigurationPage, ATTR_BASIC_TRACE_INITIAL_VALUES_ENABLED_PRINTING,

+				"&Print Initial Values", comp, false);

 		addField(flagBooleanFieldEditor);

 	}

 

@@ -244,13 +261,11 @@
 		Group group = widgetToolkit.createGroup(parent,

 				"&Details", 1, 2, GridData.FILL_HORIZONTAL);

 

-		Composite comp = widgetToolkit.createComposite(

-				group, 1, 1, GridData.FILL_HORIZONTAL);

-

 		StringFieldEditor observableTraceDetailsStringField =

 				new StringFieldEditor(fConfigurationPage,

 						ATTR_BASIC_TRACE_DETAILS_ELEMENT_LIST, "",

-				comp, DEFAULT_BASIC_TRACE_DETAILS_ELEMENT_LIST, SWT.MULTI);

+						group, DEFAULT_BASIC_TRACE_DETAILS_ELEMENT_LIST,

+						SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		addField(observableTraceDetailsStringField);

 	}

 

@@ -262,13 +277,11 @@
 				1, 2, GridData.FILL_HORIZONTAL);

 		group.setToolTipText( HELPER_TRACE_FORMAT_SPECIFICATION );

 

-		Composite comp = widgetToolkit.createComposite(

-				group, 1, 1, GridData.FILL_HORIZONTAL);

-		comp.setToolTipText( HELPER_TRACE_FORMAT_SPECIFICATION );

-

-		StringFieldEditor observableFormatStringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_BASIC_TRACE_FORMAT_ELEMENT_LIST, "",

-				comp, DEFAULT_BASIC_TRACE_FORMAT_ELEMENT_LIST, SWT.MULTI);

+		StringFieldEditor observableFormatStringField =

+				new StringFieldEditor(fConfigurationPage,

+						ATTR_BASIC_TRACE_FORMAT_ELEMENT_LIST, "",

+						group, DEFAULT_BASIC_TRACE_FORMAT_ELEMENT_LIST,

+						SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		observableFormatStringField.setToolTipText(

 				HELPER_TRACE_FORMAT_SPECIFICATION );

 		addField(observableFormatStringField);

@@ -278,7 +291,12 @@
 	protected void setDefaultsImpl(ILaunchConfigurationWorkingCopy configuration)

 	{

 		configuration.setAttribute(

-				ATTR_BASIC_TRACE_ENABLED_GENERATION, false);

+				ATTR_BASIC_TRACE_ENABLED_GENERATION,

+				DEFAULT_BASIC_TRACE_ENABLED_GENERATION);

+

+		configuration.setAttribute(

+				ATTR_BASIC_TRACE_LIFELINES_ENABLED_PRINTING,

+				DEFAULT_BASIC_TRACE_LIFELINES_ENABLED_PRINTING);

 

 		configuration.setAttribute(

 				ATTR_BASIC_TRACE_FOLDER_NAME, DEFAULT_BASIC_TRACE_FOLDER_NAME);

@@ -290,7 +308,7 @@
 				ATTR_BASIC_TRACE_ENABLED_NORMALIZATION, true);

 

 		configuration.setAttribute(

-				ATTR_BASIC_TRACE_SHOW_INITIALIZATION, false);

+				ATTR_BASIC_TRACE_INITIAL_VALUES_ENABLED_PRINTING, false);

 

 		configuration.setAttribute(

 				ATTR_BASIC_TRACE_ALL_EXTERNAL_INPUT_COM_SELECTION, true);

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationConfigurationPage.java
index babdaaf..57ebe09 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationConfigurationPage.java
@@ -109,14 +109,14 @@
 				"Maximal evaluation steps (-1 <=> no-limit) " +

 				"during the extension of symbolic execution");

 

-//		comp = SWTFactory.createComposite(

-//				groupExtensionObjective,

-//				1, 1,  GridData.FILL_HORIZONTAL);

+		Group group = widgetToolkit.createGroup(

+				groupTraceExtension, "Trace Ending with:",

+				1, 1, GridData.FILL_HORIZONTAL);

 

 		fTraceExtensionObjectiveStringField = new StringFieldEditor(

 				this, ATTR_TRACE_EXTENSION_OBJECTIVE,

-				"Trace Ending with:", comp,

-				DEFAULT_TRACE_EXTENSION_OBJECTIVE, SWT.MULTI);

+				"", group, DEFAULT_TRACE_EXTENSION_OBJECTIVE,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 	}

 

 	private void handleEnablingTraceExtension() {

@@ -204,12 +204,15 @@
 		if( ! fTraceExtensionEvaluationStepsLimitIntegerField.isValid() ) {

 			return new FieldValidationReturn(false, "Evaluation Steps is not a valid integer");

 		}

+		

 		if( ! fBasicTracePage.isValid(launchConfig) ) {

 			return new FieldValidationReturn(false, null);

 		}

+		

 		if( ! fTTCNTracePage.isValid(launchConfig) ) {

 			return new FieldValidationReturn(false, null);

 		}

+		

 		return new FieldValidationReturn(true, null);

 	}

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationTTCNConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationTTCNConfigurationProfile.java
index 16ebf69..f9e95df 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationTTCNConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/testgen/TestGenerationTTCNConfigurationProfile.java
@@ -77,7 +77,6 @@
 					}

 				});

 

-		

 		comp = widgetToolkit.createComposite(

 				group, 2, 1, GridData.FILL_HORIZONTAL);

 

@@ -96,7 +95,6 @@
 					}

 				});

 

-		

 		createTTCNConfigurationComponent(parent, widgetToolkit);

 

 		createTTCNModuleConfigurationComponent(parent, widgetToolkit);

@@ -219,15 +217,17 @@
 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 

 		StringFieldEditor wrapperStringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_TTCN_TESTCASES_STARTING_WRAPPER, "&Starting:",

-				comp, DEFAULT_TTCN_TESTCASES_STARTING_WRAPPER, SWT.MULTI);

+				fConfigurationPage, ATTR_TTCN_TESTCASES_STARTING_WRAPPER,

+				"&Starting:", comp, DEFAULT_TTCN_TESTCASES_STARTING_WRAPPER,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		wrapperStringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 		addField( wrapperStringField );

 

 		wrapperStringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_TTCN_TESTCASES_ENDING_WRAPPER, "&Ending:",

-				comp, DEFAULT_TTCN_TESTCASES_ENDING_WRAPPER, SWT.MULTI);

+				fConfigurationPage, ATTR_TTCN_TESTCASES_ENDING_WRAPPER,

+				"&Ending:", comp, DEFAULT_TTCN_TESTCASES_ENDING_WRAPPER,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		wrapperStringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 		addField( wrapperStringField );

@@ -244,22 +244,25 @@
 				HELPER_MODULE_TESTCASE_COMMUNICATION_PATTERN_PARAMETERS );

 

 		wrapperStringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_TTCN_TESTCASES_SENDING_WRAPPER, "&Sending:",

-				comp, DEFAULT_TTCN_TESTCASES_SENDING_WRAPPER, SWT.MULTI);

+				fConfigurationPage, ATTR_TTCN_TESTCASES_SENDING_WRAPPER,

+				"&Sending:", comp, DEFAULT_TTCN_TESTCASES_SENDING_WRAPPER,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		wrapperStringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_COMMUNICATION_PATTERN_PARAMETERS );

 		addField( wrapperStringField );

 

 		wrapperStringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_TTCN_TESTCASES_RECEIVING_WRAPPER, "&Receiving:",

-				comp, DEFAULT_TTCN_TESTCASES_RECEIVING_WRAPPER, SWT.MULTI);

+				fConfigurationPage, ATTR_TTCN_TESTCASES_RECEIVING_WRAPPER,

+				"&Receiving:", comp, DEFAULT_TTCN_TESTCASES_RECEIVING_WRAPPER,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		wrapperStringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_COMMUNICATION_PATTERN_PARAMETERS );

 		addField( wrapperStringField );

 	}

 

 

-	private void createTTCNModuleAdaptationComponent(Composite parent, IWidgetToolkit widgetToolkit) {

+	private void createTTCNModuleAdaptationComponent(

+			Composite parent, IWidgetToolkit widgetToolkit) {

 		Group group = widgetToolkit.createGroup(parent,

 				"Adaptation", 1, 3, GridData.FILL_HORIZONTAL);

 		group.setToolTipText( HELPER_MODULE_ADAPTATION_IMPLEMENTATION_TEMPLATE );

@@ -268,9 +271,8 @@
 				group, 2, 1, GridData.FILL_HORIZONTAL);

 

 		addField( new StringFieldEditor(fConfigurationPage,

-						ATTR_TTCN_ADAPTATION_MODULE_NAME,

-						"&Name:", comp,

-						DEFAULT_TTCN_ADAPTATION_MODULE_NAME) );

+					ATTR_TTCN_ADAPTATION_MODULE_NAME, "&Name:",

+					comp, DEFAULT_TTCN_ADAPTATION_MODULE_NAME) );

 

 

 		Group groupImpl = widgetToolkit.createGroup(group,

@@ -290,8 +292,9 @@
 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 

 		StringFieldEditor stringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_TTCN_TESTCASES_STARTING_ENDING_IMPL, "",

-				comp, DEFAULT_TTCN_TESTCASES_STARTING_ENDING_IMPL, SWT.MULTI);

+				fConfigurationPage, ATTR_TTCN_TESTCASES_STARTING_ENDING_IMPL,

+				"", comp, DEFAULT_TTCN_TESTCASES_STARTING_ENDING_IMPL,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		stringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 		addField( stringField );

@@ -309,7 +312,8 @@
 

 		stringField = new StringFieldEditor(fConfigurationPage,

 				ATTR_TTCN_TESTCASES_SENDING_IMPL, "", comp,

-				DEFAULT_TTCN_TESTCASES_SENDING_IMPL, SWT.MULTI);

+				DEFAULT_TTCN_TESTCASES_SENDING_IMPL,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		stringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_COMMUNICATION_PATTERN_PARAMETERS );

 		addField( stringField );

@@ -327,7 +331,8 @@
 

 		stringField = new StringFieldEditor(fConfigurationPage,

 				ATTR_TTCN_TESTCASES_RECEIVING_IMPL, "", comp,

-				DEFAULT_TTCN_TESTCASES_RECEIVING_IMPL, SWT.MULTI);

+				DEFAULT_TTCN_TESTCASES_RECEIVING_IMPL,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		stringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_COMMUNICATION_PATTERN_PARAMETERS );

 		addField( stringField );

@@ -345,8 +350,9 @@
 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 

 		stringField = new StringFieldEditor(

-				fConfigurationPage, ATTR_TTCN_ADAPTATION_UTILS_IMPL, "",

-				comp, DEFAULT_TTCN_ADAPTATION_UTILS_IMPL, SWT.MULTI);

+				fConfigurationPage, ATTR_TTCN_ADAPTATION_UTILS_IMPL,

+				"", comp, DEFAULT_TTCN_ADAPTATION_UTILS_IMPL,

+				SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);

 		stringField.setToolTipText(

 				HELPER_MODULE_TESTCASE_STARTING_ENDING_PATTERN_PARAMETERS );

 		addField( stringField );

diff --git a/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.ecore b/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.ecore
index 24f1ecc..ed61679 100644
--- a/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.ecore
+++ b/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.ecore
@@ -78,7 +78,10 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="folderName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabledNormalization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="showInitialization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabledInitialValuesPrinting"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabledLifelinesPrinting"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
   </eClassifiers>
   <eSubpackages name="common" nsURI="http://www.eclipse.org/efm/Workflow/Common" nsPrefix="Common">
     <eClassifiers xsi:type="ecore:EClass" name="Workspace">
@@ -199,6 +202,12 @@
       <eLiterals name="SEPARATOR" value="54" literal="separator"/>
       <eLiterals name="NEWLINE" value="55" literal="newline"/>
       <eLiterals name="NEXT" value="56" literal="next"/>
+      <eLiterals name="LIFELINE" value="57" literal="lifeline"/>
+      <eLiterals name="LIFELINE_HEADER" value="58" literal="lifeline#header"/>
+      <eLiterals name="LIFELINE_BEGIN" value="59" literal="lifeline#begin"/>
+      <eLiterals name="LIFELINE_END" value="60" literal="lifeline#end"/>
+      <eLiterals name="LIFELINE_ID" value="61" literal="lifeline#id"/>
+      <eLiterals name="LIFELINE_STATE" value="62" literal="lifeline#state"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="TraceElement">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="nature" eType="#//common/TraceElementKind"/>
diff --git a/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.genmodel b/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.genmodel
index efb4aba..84fffb7 100644
--- a/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.genmodel
+++ b/execution/org.eclipse.efm.execution.core/resources/ecore/workflow.genmodel
@@ -62,7 +62,8 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//Serializer/folderName"/>

       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//Serializer/fileName"/>

       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//Serializer/enabledNormalization"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//Serializer/showInitialization"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//Serializer/enabledInitialValuesPrinting"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//Serializer/enabledLifelinesPrinting"/>

     </genClasses>

     <nestedGenPackages prefix="Common" basePackage="org.eclipse.efm.execution.core.workflow"

         disposableProviderFactory="true" ecorePackage="workflow.ecore#//common">

@@ -85,6 +86,7 @@
       </genEnums>

       <genEnums typeSafeEnumCompatible="false" ecoreEnum="workflow.ecore#//common/TraceElementKind">

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/UNDEFINED"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/UNKNOWN"/>

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/CONDITION"/>

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/DECISION"/>

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/FORMULA"/>

@@ -141,6 +143,12 @@
         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/SEPARATOR"/>

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/NEWLINE"/>

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/NEXT"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/LIFELINE"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/LIFELINE_HEADER"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/LIFELINE_BEGIN"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/LIFELINE_END"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/LIFELINE_ID"/>

+        <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/TraceElementKind/LIFELINE_STATE"/>

       </genEnums>

       <genEnums typeSafeEnumCompatible="false" ecoreEnum="workflow.ecore#//common/HeuristicClassKind">

         <genEnumLiterals ecoreEnumLiteral="workflow.ecore#//common/HeuristicClassKind/BASIC"/>

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/Serializer.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/Serializer.java
index dabefcf..09e2c5b 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/Serializer.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/Serializer.java
@@ -28,7 +28,8 @@
  *   <li>{@link org.eclipse.efm.execution.core.workflow.Serializer#getFolderName <em>Folder Name</em>}</li>

  *   <li>{@link org.eclipse.efm.execution.core.workflow.Serializer#getFileName <em>File Name</em>}</li>

  *   <li>{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledNormalization <em>Enabled Normalization</em>}</li>

- *   <li>{@link org.eclipse.efm.execution.core.workflow.Serializer#isShowInitialization <em>Show Initialization</em>}</li>

+ *   <li>{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledInitialValuesPrinting <em>Enabled Initial Values Printing</em>}</li>

+ *   <li>{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledLifelinesPrinting <em>Enabled Lifelines Printing</em>}</li>

  * </ul>

  *

  * @see org.eclipse.efm.execution.core.workflow.WorkflowPackage#getSerializer()

@@ -167,29 +168,57 @@
 	void setEnabledNormalization(boolean value);

 

 	/**

-	 * Returns the value of the '<em><b>Show Initialization</b></em>' attribute.

+	 * Returns the value of the '<em><b>Enabled Initial Values Printing</b></em>' attribute.

+	 * The default value is <code>"false"</code>.

 	 * <!-- begin-user-doc -->

 	 * <p>

-	 * If the meaning of the '<em>Show Initialization</em>' attribute isn't clear,

+	 * If the meaning of the '<em>Enabled Initial Values Printing</em>' attribute isn't clear,

 	 * there really should be more of a description here...

 	 * </p>

 	 * <!-- end-user-doc -->

-	 * @return the value of the '<em>Show Initialization</em>' attribute.

-	 * @see #setShowInitialization(boolean)

-	 * @see org.eclipse.efm.execution.core.workflow.WorkflowPackage#getSerializer_ShowInitialization()

-	 * @model

+	 * @return the value of the '<em>Enabled Initial Values Printing</em>' attribute.

+	 * @see #setEnabledInitialValuesPrinting(boolean)

+	 * @see org.eclipse.efm.execution.core.workflow.WorkflowPackage#getSerializer_EnabledInitialValuesPrinting()

+	 * @model default="false"

 	 * @generated

 	 */

-	boolean isShowInitialization();

+	boolean isEnabledInitialValuesPrinting();

 

 	/**

-	 * Sets the value of the '{@link org.eclipse.efm.execution.core.workflow.Serializer#isShowInitialization <em>Show Initialization</em>}' attribute.

+	 * Sets the value of the '{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledInitialValuesPrinting <em>Enabled Initial Values Printing</em>}' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

-	 * @param value the new value of the '<em>Show Initialization</em>' attribute.

-	 * @see #isShowInitialization()

+	 * @param value the new value of the '<em>Enabled Initial Values Printing</em>' attribute.

+	 * @see #isEnabledInitialValuesPrinting()

 	 * @generated

 	 */

-	void setShowInitialization(boolean value);

+	void setEnabledInitialValuesPrinting(boolean value);

+

+	/**

+	 * Returns the value of the '<em><b>Enabled Lifelines Printing</b></em>' attribute.

+	 * The default value is <code>"false"</code>.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Enabled Lifelines Printing</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Enabled Lifelines Printing</em>' attribute.

+	 * @see #setEnabledLifelinesPrinting(boolean)

+	 * @see org.eclipse.efm.execution.core.workflow.WorkflowPackage#getSerializer_EnabledLifelinesPrinting()

+	 * @model default="false"

+	 * @generated

+	 */

+	boolean isEnabledLifelinesPrinting();

+

+	/**

+	 * Sets the value of the '{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledLifelinesPrinting <em>Enabled Lifelines Printing</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Enabled Lifelines Printing</em>' attribute.

+	 * @see #isEnabledLifelinesPrinting()

+	 * @generated

+	 */

+	void setEnabledLifelinesPrinting(boolean value);

 

 } // Serializer

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/WorkflowPackage.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/WorkflowPackage.java
index 7b0aebd..7b5390c 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/WorkflowPackage.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/WorkflowPackage.java
@@ -913,13 +913,22 @@
 	int SERIALIZER__ENABLED_NORMALIZATION = WORKER_FEATURE_COUNT + 4;

 

 	/**

-	 * The feature id for the '<em><b>Show Initialization</b></em>' attribute.

+	 * The feature id for the '<em><b>Enabled Initial Values Printing</b></em>' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int SERIALIZER__SHOW_INITIALIZATION = WORKER_FEATURE_COUNT + 5;

+	int SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING = WORKER_FEATURE_COUNT + 5;

+

+	/**

+	 * The feature id for the '<em><b>Enabled Lifelines Printing</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SERIALIZER__ENABLED_LIFELINES_PRINTING = WORKER_FEATURE_COUNT + 6;

 

 	/**

 	 * The number of structural features of the '<em>Serializer</em>' class.

@@ -928,7 +937,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	int SERIALIZER_FEATURE_COUNT = WORKER_FEATURE_COUNT + 6;

+	int SERIALIZER_FEATURE_COUNT = WORKER_FEATURE_COUNT + 7;

 

 	/**

 	 * The number of operations of the '<em>Serializer</em>' class.

@@ -1439,15 +1448,26 @@
 	EAttribute getSerializer_EnabledNormalization();

 

 	/**

-	 * Returns the meta object for the attribute '{@link org.eclipse.efm.execution.core.workflow.Serializer#isShowInitialization <em>Show Initialization</em>}'.

+	 * Returns the meta object for the attribute '{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledInitialValuesPrinting <em>Enabled Initial Values Printing</em>}'.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

-	 * @return the meta object for the attribute '<em>Show Initialization</em>'.

-	 * @see org.eclipse.efm.execution.core.workflow.Serializer#isShowInitialization()

+	 * @return the meta object for the attribute '<em>Enabled Initial Values Printing</em>'.

+	 * @see org.eclipse.efm.execution.core.workflow.Serializer#isEnabledInitialValuesPrinting()

 	 * @see #getSerializer()

 	 * @generated

 	 */

-	EAttribute getSerializer_ShowInitialization();

+	EAttribute getSerializer_EnabledInitialValuesPrinting();

+

+	/**

+	 * Returns the meta object for the attribute '{@link org.eclipse.efm.execution.core.workflow.Serializer#isEnabledLifelinesPrinting <em>Enabled Lifelines Printing</em>}'.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @return the meta object for the attribute '<em>Enabled Lifelines Printing</em>'.

+	 * @see org.eclipse.efm.execution.core.workflow.Serializer#isEnabledLifelinesPrinting()

+	 * @see #getSerializer()

+	 * @generated

+	 */

+	EAttribute getSerializer_EnabledLifelinesPrinting();

 

 	/**

 	 * Returns the factory that creates the instances of the model.

@@ -1857,12 +1877,20 @@
 		EAttribute SERIALIZER__ENABLED_NORMALIZATION = eINSTANCE.getSerializer_EnabledNormalization();

 

 		/**

-		 * The meta object literal for the '<em><b>Show Initialization</b></em>' attribute feature.

+		 * The meta object literal for the '<em><b>Enabled Initial Values Printing</b></em>' attribute feature.

 		 * <!-- begin-user-doc -->

 		 * <!-- end-user-doc -->

 		 * @generated

 		 */

-		EAttribute SERIALIZER__SHOW_INITIALIZATION = eINSTANCE.getSerializer_ShowInitialization();

+		EAttribute SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING = eINSTANCE.getSerializer_EnabledInitialValuesPrinting();

+

+		/**

+		 * The meta object literal for the '<em><b>Enabled Lifelines Printing</b></em>' attribute feature.

+		 * <!-- begin-user-doc -->

+		 * <!-- end-user-doc -->

+		 * @generated

+		 */

+		EAttribute SERIALIZER__ENABLED_LIFELINES_PRINTING = eINSTANCE.getSerializer_EnabledLifelinesPrinting();

 

 	}

 

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/TraceElementKind.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/TraceElementKind.java
index 8245552..1ba137f 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/TraceElementKind.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/TraceElementKind.java
@@ -36,9 +36,17 @@
 	 * @generated

 	 * @ordered

 	 */

-	UNDEFINED(0, "UNDEFINED", "undefined"),

+	UNDEFINED(1, "UNDEFINED", "undefined"),

 

 	/**

+	 * The '<em><b>UNKNOWN</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #UNKNOWN_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	UNKNOWN(2, "UNKNOWN", "unknown"), /**

 	 * The '<em><b>CONDITION</b></em>' literal object.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

@@ -46,7 +54,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	CONDITION(1, "CONDITION", "condition"),

+	CONDITION(0, "CONDITION", "condition"),

 

 	/**

 	 * The '<em><b>DECISION</b></em>' literal object.

@@ -56,7 +64,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	DECISION(2, "DECISION", "decision"),

+	DECISION(0, "DECISION", "decision"),

 

 	/**

 	 * The '<em><b>FORMULA</b></em>' literal object.

@@ -66,7 +74,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	FORMULA(3, "FORMULA", "formula"),

+	FORMULA(0, "FORMULA", "formula"),

 

 	/**

 	 * The '<em><b>PATH CONDITION</b></em>' literal object.

@@ -76,7 +84,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	PATH_CONDITION(4, "PATH_CONDITION", "path#condition"),

+	PATH_CONDITION(0, "PATH_CONDITION", "path#condition"),

 

 	/**

 	 * The '<em><b>PATH CONDITION LEAF</b></em>' literal object.

@@ -86,7 +94,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	PATH_CONDITION_LEAF(5, "PATH_CONDITION_LEAF", "path#condition#leaf"),

+	PATH_CONDITION_LEAF(0, "PATH_CONDITION_LEAF", "path#condition#leaf"),

 

 	/**

 	 * The '<em><b>PATH TIMED CONDITION</b></em>' literal object.

@@ -96,7 +104,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	PATH_TIMED_CONDITION(6, "PATH_TIMED_CONDITION", "path#timed#condition"),

+	PATH_TIMED_CONDITION(0, "PATH_TIMED_CONDITION", "path#timed#condition"),

 

 	/**

 	 * The '<em><b>PATH TIMED CONDITION LEAF</b></em>' literal object.

@@ -106,7 +114,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	PATH_TIMED_CONDITION_LEAF(7, "PATH_TIMED_CONDITION_LEAF", "path#timed#condition#leaf"),

+	PATH_TIMED_CONDITION_LEAF(0, "PATH_TIMED_CONDITION_LEAF", "path#timed#condition#leaf"),

 

 	/**

 	 * The '<em><b>NODE CONDITION</b></em>' literal object.

@@ -116,7 +124,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	NODE_CONDITION(8, "NODE_CONDITION", "node#condition"),

+	NODE_CONDITION(0, "NODE_CONDITION", "node#condition"),

 

 	/**

 	 * The '<em><b>NODE CONDITION LEAF</b></em>' literal object.

@@ -126,7 +134,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	NODE_CONDITION_LEAF(9, "NODE_CONDITION_LEAF", "node#condition#leaf"),

+	NODE_CONDITION_LEAF(0, "NODE_CONDITION_LEAF", "node#condition#leaf"),

 

 	/**

 	 * The '<em><b>NODE TIMED CONDITION</b></em>' literal object.

@@ -136,7 +144,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	NODE_TIMED_CONDITION(10, "NODE_TIMED_CONDITION", "node#timed#condition"),

+	NODE_TIMED_CONDITION(0, "NODE_TIMED_CONDITION", "node#timed#condition"),

 

 	/**

 	 * The '<em><b>NODE TIMED CONDITION LEAF</b></em>' literal object.

@@ -146,7 +154,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	NODE_TIMED_CONDITION_LEAF(11, "NODE_TIMED_CONDITION_LEAF", "node#timed#condition#leaf"),

+	NODE_TIMED_CONDITION_LEAF(0, "NODE_TIMED_CONDITION_LEAF", "node#timed#condition#leaf"),

 

 	/**

 	 * The '<em><b>ASSIGN</b></em>' literal object.

@@ -156,7 +164,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	ASSIGN(12, "ASSIGN", "assign"),

+	ASSIGN(0, "ASSIGN", "assign"),

 

 	/**

 	 * The '<em><b>DELTA</b></em>' literal object.

@@ -166,7 +174,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	DELTA(13, "DELTA", "delta"),

+	DELTA(0, "DELTA", "delta"),

 

 	/**

 	 * The '<em><b>TIME</b></em>' literal object.

@@ -176,7 +184,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	TIME(14, "TIME", "time"),

+	TIME(0, "TIME", "time"),

 

 	/**

 	 * The '<em><b>VARIABLE</b></em>' literal object.

@@ -186,7 +194,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	VARIABLE(15, "VARIABLE", "variable"),

+	VARIABLE(0, "VARIABLE", "variable"),

 

 	/**

 	 * The '<em><b>NEWFRESH</b></em>' literal object.

@@ -196,7 +204,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	NEWFRESH(16, "NEWFRESH", "newfresh"),

+	NEWFRESH(0, "NEWFRESH", "newfresh"),

 

 	/**

 	 * The '<em><b>COM</b></em>' literal object.

@@ -206,7 +214,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	COM(17, "COM", "com"),

+	COM(0, "COM", "com"),

 

 	/**

 	 * The '<em><b>INOUT</b></em>' literal object.

@@ -216,7 +224,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INOUT(18, "INOUT", "inout"),

+	INOUT(0, "INOUT", "inout"),

 

 	/**

 	 * The '<em><b>INPUT</b></em>' literal object.

@@ -226,7 +234,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INPUT(19, "INPUT", "input"),

+	INPUT(0, "INPUT", "input"),

 

 	/**

 	 * The '<em><b>OUTPUT</b></em>' literal object.

@@ -236,7 +244,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	OUTPUT(20, "OUTPUT", "output"),

+	OUTPUT(0, "OUTPUT", "output"),

 

 	/**

 	 * The '<em><b>INPUT ENV</b></em>' literal object.

@@ -246,7 +254,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INPUT_ENV(21, "INPUT_ENV", "input#env"),

+	INPUT_ENV(0, "INPUT_ENV", "input#env"),

 

 	/**

 	 * The '<em><b>OUTPUT ENV</b></em>' literal object.

@@ -256,7 +264,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	OUTPUT_ENV(22, "OUTPUT_ENV", "output#env"),

+	OUTPUT_ENV(0, "OUTPUT_ENV", "output#env"),

 

 	/**

 	 * The '<em><b>INPUT RDV</b></em>' literal object.

@@ -266,7 +274,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INPUT_RDV(23, "INPUT_RDV", "input#rdv"),

+	INPUT_RDV(0, "INPUT_RDV", "input#rdv"),

 

 	/**

 	 * The '<em><b>OUTPUT RDV</b></em>' literal object.

@@ -276,7 +284,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	OUTPUT_RDV(24, "OUTPUT_RDV", "output#rdv"),

+	OUTPUT_RDV(0, "OUTPUT_RDV", "output#rdv"),

 

 	/**

 	 * The '<em><b>INPUT BUFFER</b></em>' literal object.

@@ -286,7 +294,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INPUT_BUFFER(25, "INPUT_BUFFER", "input#buffer"),

+	INPUT_BUFFER(0, "INPUT_BUFFER", "input#buffer"),

 

 	/**

 	 * The '<em><b>OUTPUT BUFFER</b></em>' literal object.

@@ -296,7 +304,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	OUTPUT_BUFFER(26, "OUTPUT_BUFFER", "output#buffer"),

+	OUTPUT_BUFFER(0, "OUTPUT_BUFFER", "output#buffer"),

 

 	/**

 	 * The '<em><b>INPUT VAR</b></em>' literal object.

@@ -306,7 +314,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INPUT_VAR(27, "INPUT_VAR", "input#var"),

+	INPUT_VAR(0, "INPUT_VAR", "input#var"),

 

 	/**

 	 * The '<em><b>OUTPUT VAR</b></em>' literal object.

@@ -316,7 +324,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	OUTPUT_VAR(28, "OUTPUT_VAR", "output#var"),

+	OUTPUT_VAR(0, "OUTPUT_VAR", "output#var"),

 

 	/**

 	 * The '<em><b>PORT</b></em>' literal object.

@@ -326,7 +334,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	PORT(29, "PORT", "port"),

+	PORT(0, "PORT", "port"),

 

 	/**

 	 * The '<em><b>SIGNAL</b></em>' literal object.

@@ -336,7 +344,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	SIGNAL(30, "SIGNAL", "signal"),

+	SIGNAL(0, "SIGNAL", "signal"),

 

 	/**

 	 * The '<em><b>MESSAGE</b></em>' literal object.

@@ -346,7 +354,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	MESSAGE(31, "MESSAGE", "message"),

+	MESSAGE(0, "MESSAGE", "message"),

 

 	/**

 	 * The '<em><b>CHANNEL</b></em>' literal object.

@@ -356,7 +364,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	CHANNEL(32, "CHANNEL", "channel"),

+	CHANNEL(0, "CHANNEL", "channel"),

 

 	/**

 	 * The '<em><b>BUFFER</b></em>' literal object.

@@ -366,7 +374,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	BUFFER(33, "BUFFER", "buffer"),

+	BUFFER(0, "BUFFER", "buffer"),

 

 	/**

 	 * The '<em><b>RUNNABLE</b></em>' literal object.

@@ -376,7 +384,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	RUNNABLE(34, "RUNNABLE", "runnable"),

+	RUNNABLE(0, "RUNNABLE", "runnable"),

 

 	/**

 	 * The '<em><b>ROUTINE</b></em>' literal object.

@@ -386,7 +394,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	ROUTINE(35, "ROUTINE", "routine"),

+	ROUTINE(0, "ROUTINE", "routine"),

 

 	/**

 	 * The '<em><b>TRANSITION</b></em>' literal object.

@@ -396,7 +404,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	TRANSITION(36, "TRANSITION", "transition"),

+	TRANSITION(0, "TRANSITION", "transition"),

 

 	/**

 	 * The '<em><b>MACHINE</b></em>' literal object.

@@ -406,7 +414,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	MACHINE(37, "MACHINE", "machine"),

+	MACHINE(0, "MACHINE", "machine"),

 

 	/**

 	 * The '<em><b>STATE</b></em>' literal object.

@@ -416,7 +424,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	STATE(38, "STATE", "state"),

+	STATE(0, "STATE", "state"),

 

 	/**

 	 * The '<em><b>STATEMACHINE</b></em>' literal object.

@@ -426,7 +434,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	STATEMACHINE(39, "STATEMACHINE", "statemachine"),

+	STATEMACHINE(0, "STATEMACHINE", "statemachine"),

 

 	/**

 	 * The '<em><b>SYSTEM</b></em>' literal object.

@@ -436,7 +444,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	SYSTEM(40, "SYSTEM", "system"),

+	SYSTEM(0, "SYSTEM", "system"),

 

 	/**

 	 * The '<em><b>FILE HEADER</b></em>' literal object.

@@ -446,7 +454,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	FILE_HEADER(41, "FILE_HEADER", "header"),

+	FILE_HEADER(0, "FILE_HEADER", "header"),

 

 	/**

 	 * The '<em><b>FILE BEGIN</b></em>' literal object.

@@ -456,7 +464,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	FILE_BEGIN(42, "FILE_BEGIN", "begin"),

+	FILE_BEGIN(0, "FILE_BEGIN", "begin"),

 

 	/**

 	 * The '<em><b>FILE END</b></em>' literal object.

@@ -466,7 +474,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	FILE_END(43, "FILE_END", "end"),

+	FILE_END(0, "FILE_END", "end"),

 

 	/**

 	 * The '<em><b>TESTCASE HEADER</b></em>' literal object.

@@ -476,7 +484,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	TESTCASE_HEADER(44, "TESTCASE_HEADER", "testcase#header"),

+	TESTCASE_HEADER(0, "TESTCASE_HEADER", "testcase#header"),

 

 	/**

 	 * The '<em><b>TESTCASE BEGIN</b></em>' literal object.

@@ -486,7 +494,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	TESTCASE_BEGIN(45, "TESTCASE_BEGIN", "testcase#begin"),

+	TESTCASE_BEGIN(0, "TESTCASE_BEGIN", "testcase#begin"),

 

 	/**

 	 * The '<em><b>TESTCASE END</b></em>' literal object.

@@ -496,7 +504,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	TESTCASE_END(46, "TESTCASE_END", "testcase#end"),

+	TESTCASE_END(0, "TESTCASE_END", "testcase#end"),

 

 	/**

 	 * The '<em><b>INIT HEADER</b></em>' literal object.

@@ -506,7 +514,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INIT_HEADER(47, "INIT_HEADER", "init#header"),

+	INIT_HEADER(0, "INIT_HEADER", "init#header"),

 

 	/**

 	 * The '<em><b>INIT BEGIN</b></em>' literal object.

@@ -516,7 +524,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INIT_BEGIN(48, "INIT_BEGIN", "init#begin"),

+	INIT_BEGIN(0, "INIT_BEGIN", "init#begin"),

 

 	/**

 	 * The '<em><b>INIT END</b></em>' literal object.

@@ -526,7 +534,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	INIT_END(49, "INIT_END", "init#end"),

+	INIT_END(0, "INIT_END", "init#end"),

 

 	/**

 	 * The '<em><b>STEP HEADER</b></em>' literal object.

@@ -536,7 +544,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	STEP_HEADER(50, "STEP_HEADER", "step#header"),

+	STEP_HEADER(0, "STEP_HEADER", "step#header"),

 

 	/**

 	 * The '<em><b>STEP BEGIN</b></em>' literal object.

@@ -546,7 +554,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	STEP_BEGIN(51, "STEP_BEGIN", "step#begin"),

+	STEP_BEGIN(0, "STEP_BEGIN", "step#begin"),

 

 	/**

 	 * The '<em><b>STEP END</b></em>' literal object.

@@ -556,7 +564,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	STEP_END(52, "STEP_END", "step#end"),

+	STEP_END(0, "STEP_END", "step#end"),

 

 	/**

 	 * The '<em><b>COMMENT</b></em>' literal object.

@@ -566,7 +574,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	COMMENT(53, "COMMENT", "comment"),

+	COMMENT(0, "COMMENT", "comment"),

 

 	/**

 	 * The '<em><b>SEPARATOR</b></em>' literal object.

@@ -576,7 +584,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	SEPARATOR(54, "SEPARATOR", "separator"),

+	SEPARATOR(0, "SEPARATOR", "separator"),

 

 	/**

 	 * The '<em><b>NEWLINE</b></em>' literal object.

@@ -586,7 +594,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	NEWLINE(55, "NEWLINE", "newline"),

+	NEWLINE(0, "NEWLINE", "newline"),

 

 	/**

 	 * The '<em><b>NEXT</b></em>' literal object.

@@ -596,7 +604,55 @@
 	 * @generated

 	 * @ordered

 	 */

-	NEXT(56, "NEXT", "next");

+	NEXT(0, "NEXT", "next"), /**

+	 * The '<em><b>LIFELINE</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	LIFELINE(0, "LIFELINE", "lifeline"), /**

+	 * The '<em><b>LIFELINE HEADER</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_HEADER_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	LIFELINE_HEADER(0, "LIFELINE_HEADER", "lifeline#header"), /**

+	 * The '<em><b>LIFELINE BEGIN</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_BEGIN_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	LIFELINE_BEGIN(0, "LIFELINE_BEGIN", "lifeline#begin"), /**

+	 * The '<em><b>LIFELINE END</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_END_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	LIFELINE_END(0, "LIFELINE_END", "lifeline#end"), /**

+	 * The '<em><b>LIFELINE ID</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_ID_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	LIFELINE_ID(0, "LIFELINE_ID", "lifeline#id"), /**

+	 * The '<em><b>LIFELINE STATE</b></em>' literal object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_STATE_VALUE

+	 * @generated

+	 * @ordered

+	 */

+	LIFELINE_STATE(0, "LIFELINE_STATE", "lifeline#state");

 

 	/**

 	 * The '<em><b>UNDEFINED</b></em>' literal value.

@@ -611,7 +667,22 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int UNDEFINED_VALUE = 0;

+	public static final int UNDEFINED_VALUE = 1;

+

+	/**

+	 * The '<em><b>UNKNOWN</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>UNKNOWN</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #UNKNOWN

+	 * @model literal="unknown"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int UNKNOWN_VALUE = 2;

 

 	/**

 	 * The '<em><b>CONDITION</b></em>' literal value.

@@ -626,7 +697,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int CONDITION_VALUE = 1;

+	public static final int CONDITION_VALUE = 0;

 

 	/**

 	 * The '<em><b>DECISION</b></em>' literal value.

@@ -641,7 +712,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int DECISION_VALUE = 2;

+	public static final int DECISION_VALUE = 0;

 

 	/**

 	 * The '<em><b>FORMULA</b></em>' literal value.

@@ -656,7 +727,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int FORMULA_VALUE = 3;

+	public static final int FORMULA_VALUE = 0;

 

 	/**

 	 * The '<em><b>PATH CONDITION</b></em>' literal value.

@@ -671,7 +742,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int PATH_CONDITION_VALUE = 4;

+	public static final int PATH_CONDITION_VALUE = 0;

 

 	/**

 	 * The '<em><b>PATH CONDITION LEAF</b></em>' literal value.

@@ -686,7 +757,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int PATH_CONDITION_LEAF_VALUE = 5;

+	public static final int PATH_CONDITION_LEAF_VALUE = 0;

 

 	/**

 	 * The '<em><b>PATH TIMED CONDITION</b></em>' literal value.

@@ -701,7 +772,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int PATH_TIMED_CONDITION_VALUE = 6;

+	public static final int PATH_TIMED_CONDITION_VALUE = 0;

 

 	/**

 	 * The '<em><b>PATH TIMED CONDITION LEAF</b></em>' literal value.

@@ -716,7 +787,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int PATH_TIMED_CONDITION_LEAF_VALUE = 7;

+	public static final int PATH_TIMED_CONDITION_LEAF_VALUE = 0;

 

 	/**

 	 * The '<em><b>NODE CONDITION</b></em>' literal value.

@@ -731,7 +802,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NODE_CONDITION_VALUE = 8;

+	public static final int NODE_CONDITION_VALUE = 0;

 

 	/**

 	 * The '<em><b>NODE CONDITION LEAF</b></em>' literal value.

@@ -746,7 +817,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NODE_CONDITION_LEAF_VALUE = 9;

+	public static final int NODE_CONDITION_LEAF_VALUE = 0;

 

 	/**

 	 * The '<em><b>NODE TIMED CONDITION</b></em>' literal value.

@@ -761,7 +832,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NODE_TIMED_CONDITION_VALUE = 10;

+	public static final int NODE_TIMED_CONDITION_VALUE = 0;

 

 	/**

 	 * The '<em><b>NODE TIMED CONDITION LEAF</b></em>' literal value.

@@ -776,7 +847,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NODE_TIMED_CONDITION_LEAF_VALUE = 11;

+	public static final int NODE_TIMED_CONDITION_LEAF_VALUE = 0;

 

 	/**

 	 * The '<em><b>ASSIGN</b></em>' literal value.

@@ -791,7 +862,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int ASSIGN_VALUE = 12;

+	public static final int ASSIGN_VALUE = 0;

 

 	/**

 	 * The '<em><b>DELTA</b></em>' literal value.

@@ -806,7 +877,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int DELTA_VALUE = 13;

+	public static final int DELTA_VALUE = 0;

 

 	/**

 	 * The '<em><b>TIME</b></em>' literal value.

@@ -821,7 +892,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int TIME_VALUE = 14;

+	public static final int TIME_VALUE = 0;

 

 	/**

 	 * The '<em><b>VARIABLE</b></em>' literal value.

@@ -836,7 +907,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int VARIABLE_VALUE = 15;

+	public static final int VARIABLE_VALUE = 0;

 

 	/**

 	 * The '<em><b>NEWFRESH</b></em>' literal value.

@@ -851,7 +922,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NEWFRESH_VALUE = 16;

+	public static final int NEWFRESH_VALUE = 0;

 

 	/**

 	 * The '<em><b>COM</b></em>' literal value.

@@ -866,7 +937,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int COM_VALUE = 17;

+	public static final int COM_VALUE = 0;

 

 	/**

 	 * The '<em><b>INOUT</b></em>' literal value.

@@ -881,7 +952,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INOUT_VALUE = 18;

+	public static final int INOUT_VALUE = 0;

 

 	/**

 	 * The '<em><b>INPUT</b></em>' literal value.

@@ -896,7 +967,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INPUT_VALUE = 19;

+	public static final int INPUT_VALUE = 0;

 

 	/**

 	 * The '<em><b>OUTPUT</b></em>' literal value.

@@ -911,7 +982,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int OUTPUT_VALUE = 20;

+	public static final int OUTPUT_VALUE = 0;

 

 	/**

 	 * The '<em><b>INPUT ENV</b></em>' literal value.

@@ -926,7 +997,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INPUT_ENV_VALUE = 21;

+	public static final int INPUT_ENV_VALUE = 0;

 

 	/**

 	 * The '<em><b>OUTPUT ENV</b></em>' literal value.

@@ -941,7 +1012,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int OUTPUT_ENV_VALUE = 22;

+	public static final int OUTPUT_ENV_VALUE = 0;

 

 	/**

 	 * The '<em><b>INPUT RDV</b></em>' literal value.

@@ -956,7 +1027,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INPUT_RDV_VALUE = 23;

+	public static final int INPUT_RDV_VALUE = 0;

 

 	/**

 	 * The '<em><b>OUTPUT RDV</b></em>' literal value.

@@ -971,7 +1042,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int OUTPUT_RDV_VALUE = 24;

+	public static final int OUTPUT_RDV_VALUE = 0;

 

 	/**

 	 * The '<em><b>INPUT BUFFER</b></em>' literal value.

@@ -986,7 +1057,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INPUT_BUFFER_VALUE = 25;

+	public static final int INPUT_BUFFER_VALUE = 0;

 

 	/**

 	 * The '<em><b>OUTPUT BUFFER</b></em>' literal value.

@@ -1001,7 +1072,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int OUTPUT_BUFFER_VALUE = 26;

+	public static final int OUTPUT_BUFFER_VALUE = 0;

 

 	/**

 	 * The '<em><b>INPUT VAR</b></em>' literal value.

@@ -1016,7 +1087,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INPUT_VAR_VALUE = 27;

+	public static final int INPUT_VAR_VALUE = 0;

 

 	/**

 	 * The '<em><b>OUTPUT VAR</b></em>' literal value.

@@ -1031,7 +1102,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int OUTPUT_VAR_VALUE = 28;

+	public static final int OUTPUT_VAR_VALUE = 0;

 

 	/**

 	 * The '<em><b>PORT</b></em>' literal value.

@@ -1046,7 +1117,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int PORT_VALUE = 29;

+	public static final int PORT_VALUE = 0;

 

 	/**

 	 * The '<em><b>SIGNAL</b></em>' literal value.

@@ -1061,7 +1132,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int SIGNAL_VALUE = 30;

+	public static final int SIGNAL_VALUE = 0;

 

 	/**

 	 * The '<em><b>MESSAGE</b></em>' literal value.

@@ -1076,7 +1147,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int MESSAGE_VALUE = 31;

+	public static final int MESSAGE_VALUE = 0;

 

 	/**

 	 * The '<em><b>CHANNEL</b></em>' literal value.

@@ -1091,7 +1162,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int CHANNEL_VALUE = 32;

+	public static final int CHANNEL_VALUE = 0;

 

 	/**

 	 * The '<em><b>BUFFER</b></em>' literal value.

@@ -1106,7 +1177,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int BUFFER_VALUE = 33;

+	public static final int BUFFER_VALUE = 0;

 

 	/**

 	 * The '<em><b>RUNNABLE</b></em>' literal value.

@@ -1121,7 +1192,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int RUNNABLE_VALUE = 34;

+	public static final int RUNNABLE_VALUE = 0;

 

 	/**

 	 * The '<em><b>ROUTINE</b></em>' literal value.

@@ -1136,7 +1207,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int ROUTINE_VALUE = 35;

+	public static final int ROUTINE_VALUE = 0;

 

 	/**

 	 * The '<em><b>TRANSITION</b></em>' literal value.

@@ -1151,7 +1222,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int TRANSITION_VALUE = 36;

+	public static final int TRANSITION_VALUE = 0;

 

 	/**

 	 * The '<em><b>MACHINE</b></em>' literal value.

@@ -1166,7 +1237,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int MACHINE_VALUE = 37;

+	public static final int MACHINE_VALUE = 0;

 

 	/**

 	 * The '<em><b>STATE</b></em>' literal value.

@@ -1181,7 +1252,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int STATE_VALUE = 38;

+	public static final int STATE_VALUE = 0;

 

 	/**

 	 * The '<em><b>STATEMACHINE</b></em>' literal value.

@@ -1196,7 +1267,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int STATEMACHINE_VALUE = 39;

+	public static final int STATEMACHINE_VALUE = 0;

 

 	/**

 	 * The '<em><b>SYSTEM</b></em>' literal value.

@@ -1211,7 +1282,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int SYSTEM_VALUE = 40;

+	public static final int SYSTEM_VALUE = 0;

 

 	/**

 	 * The '<em><b>FILE HEADER</b></em>' literal value.

@@ -1226,7 +1297,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int FILE_HEADER_VALUE = 41;

+	public static final int FILE_HEADER_VALUE = 0;

 

 	/**

 	 * The '<em><b>FILE BEGIN</b></em>' literal value.

@@ -1241,7 +1312,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int FILE_BEGIN_VALUE = 42;

+	public static final int FILE_BEGIN_VALUE = 0;

 

 	/**

 	 * The '<em><b>FILE END</b></em>' literal value.

@@ -1256,7 +1327,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int FILE_END_VALUE = 43;

+	public static final int FILE_END_VALUE = 0;

 

 	/**

 	 * The '<em><b>TESTCASE HEADER</b></em>' literal value.

@@ -1271,7 +1342,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int TESTCASE_HEADER_VALUE = 44;

+	public static final int TESTCASE_HEADER_VALUE = 0;

 

 	/**

 	 * The '<em><b>TESTCASE BEGIN</b></em>' literal value.

@@ -1286,7 +1357,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int TESTCASE_BEGIN_VALUE = 45;

+	public static final int TESTCASE_BEGIN_VALUE = 0;

 

 	/**

 	 * The '<em><b>TESTCASE END</b></em>' literal value.

@@ -1301,7 +1372,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int TESTCASE_END_VALUE = 46;

+	public static final int TESTCASE_END_VALUE = 0;

 

 	/**

 	 * The '<em><b>INIT HEADER</b></em>' literal value.

@@ -1316,7 +1387,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INIT_HEADER_VALUE = 47;

+	public static final int INIT_HEADER_VALUE = 0;

 

 	/**

 	 * The '<em><b>INIT BEGIN</b></em>' literal value.

@@ -1331,7 +1402,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INIT_BEGIN_VALUE = 48;

+	public static final int INIT_BEGIN_VALUE = 0;

 

 	/**

 	 * The '<em><b>INIT END</b></em>' literal value.

@@ -1346,7 +1417,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int INIT_END_VALUE = 49;

+	public static final int INIT_END_VALUE = 0;

 

 	/**

 	 * The '<em><b>STEP HEADER</b></em>' literal value.

@@ -1361,7 +1432,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int STEP_HEADER_VALUE = 50;

+	public static final int STEP_HEADER_VALUE = 0;

 

 	/**

 	 * The '<em><b>STEP BEGIN</b></em>' literal value.

@@ -1376,7 +1447,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int STEP_BEGIN_VALUE = 51;

+	public static final int STEP_BEGIN_VALUE = 0;

 

 	/**

 	 * The '<em><b>STEP END</b></em>' literal value.

@@ -1391,7 +1462,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int STEP_END_VALUE = 52;

+	public static final int STEP_END_VALUE = 0;

 

 	/**

 	 * The '<em><b>COMMENT</b></em>' literal value.

@@ -1406,7 +1477,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int COMMENT_VALUE = 53;

+	public static final int COMMENT_VALUE = 0;

 

 	/**

 	 * The '<em><b>SEPARATOR</b></em>' literal value.

@@ -1421,7 +1492,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int SEPARATOR_VALUE = 54;

+	public static final int SEPARATOR_VALUE = 0;

 

 	/**

 	 * The '<em><b>NEWLINE</b></em>' literal value.

@@ -1436,7 +1507,7 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NEWLINE_VALUE = 55;

+	public static final int NEWLINE_VALUE = 0;

 

 	/**

 	 * The '<em><b>NEXT</b></em>' literal value.

@@ -1451,7 +1522,97 @@
 	 * @generated

 	 * @ordered

 	 */

-	public static final int NEXT_VALUE = 56;

+	public static final int NEXT_VALUE = 0;

+

+	/**

+	 * The '<em><b>LIFELINE</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>LIFELINE</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE

+	 * @model literal="lifeline"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int LIFELINE_VALUE = 0;

+

+	/**

+	 * The '<em><b>LIFELINE HEADER</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>LIFELINE HEADER</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_HEADER

+	 * @model literal="lifeline#header"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int LIFELINE_HEADER_VALUE = 0;

+

+	/**

+	 * The '<em><b>LIFELINE BEGIN</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>LIFELINE BEGIN</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_BEGIN

+	 * @model literal="lifeline#begin"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int LIFELINE_BEGIN_VALUE = 0;

+

+	/**

+	 * The '<em><b>LIFELINE END</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>LIFELINE END</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_END

+	 * @model literal="lifeline#end"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int LIFELINE_END_VALUE = 0;

+

+	/**

+	 * The '<em><b>LIFELINE ID</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>LIFELINE ID</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_ID

+	 * @model literal="lifeline#id"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int LIFELINE_ID_VALUE = 0;

+

+	/**

+	 * The '<em><b>LIFELINE STATE</b></em>' literal value.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of '<em><b>LIFELINE STATE</b></em>' literal object isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @see #LIFELINE_STATE

+	 * @model literal="lifeline#state"

+	 * @generated

+	 * @ordered

+	 */

+	public static final int LIFELINE_STATE_VALUE = 0;

 

 	/**

 	 * An array of all the '<em><b>Trace Element Kind</b></em>' enumerators.

@@ -1462,6 +1623,7 @@
 	private static final TraceElementKind[] VALUES_ARRAY =

 		new TraceElementKind[] {

 			UNDEFINED,

+			UNKNOWN,

 			CONDITION,

 			DECISION,

 			FORMULA,

@@ -1518,6 +1680,12 @@
 			SEPARATOR,

 			NEWLINE,

 			NEXT,

+			LIFELINE,

+			LIFELINE_HEADER,

+			LIFELINE_BEGIN,

+			LIFELINE_END,

+			LIFELINE_ID,

+			LIFELINE_STATE,

 		};

 

 	/**

@@ -1575,62 +1743,8 @@
 	public static TraceElementKind get(int value) {

 		switch (value) {

 			case UNDEFINED_VALUE: return UNDEFINED;

+			case UNKNOWN_VALUE: return UNKNOWN;

 			case CONDITION_VALUE: return CONDITION;

-			case DECISION_VALUE: return DECISION;

-			case FORMULA_VALUE: return FORMULA;

-			case PATH_CONDITION_VALUE: return PATH_CONDITION;

-			case PATH_CONDITION_LEAF_VALUE: return PATH_CONDITION_LEAF;

-			case PATH_TIMED_CONDITION_VALUE: return PATH_TIMED_CONDITION;

-			case PATH_TIMED_CONDITION_LEAF_VALUE: return PATH_TIMED_CONDITION_LEAF;

-			case NODE_CONDITION_VALUE: return NODE_CONDITION;

-			case NODE_CONDITION_LEAF_VALUE: return NODE_CONDITION_LEAF;

-			case NODE_TIMED_CONDITION_VALUE: return NODE_TIMED_CONDITION;

-			case NODE_TIMED_CONDITION_LEAF_VALUE: return NODE_TIMED_CONDITION_LEAF;

-			case ASSIGN_VALUE: return ASSIGN;

-			case DELTA_VALUE: return DELTA;

-			case TIME_VALUE: return TIME;

-			case VARIABLE_VALUE: return VARIABLE;

-			case NEWFRESH_VALUE: return NEWFRESH;

-			case COM_VALUE: return COM;

-			case INOUT_VALUE: return INOUT;

-			case INPUT_VALUE: return INPUT;

-			case OUTPUT_VALUE: return OUTPUT;

-			case INPUT_ENV_VALUE: return INPUT_ENV;

-			case OUTPUT_ENV_VALUE: return OUTPUT_ENV;

-			case INPUT_RDV_VALUE: return INPUT_RDV;

-			case OUTPUT_RDV_VALUE: return OUTPUT_RDV;

-			case INPUT_BUFFER_VALUE: return INPUT_BUFFER;

-			case OUTPUT_BUFFER_VALUE: return OUTPUT_BUFFER;

-			case INPUT_VAR_VALUE: return INPUT_VAR;

-			case OUTPUT_VAR_VALUE: return OUTPUT_VAR;

-			case PORT_VALUE: return PORT;

-			case SIGNAL_VALUE: return SIGNAL;

-			case MESSAGE_VALUE: return MESSAGE;

-			case CHANNEL_VALUE: return CHANNEL;

-			case BUFFER_VALUE: return BUFFER;

-			case RUNNABLE_VALUE: return RUNNABLE;

-			case ROUTINE_VALUE: return ROUTINE;

-			case TRANSITION_VALUE: return TRANSITION;

-			case MACHINE_VALUE: return MACHINE;

-			case STATE_VALUE: return STATE;

-			case STATEMACHINE_VALUE: return STATEMACHINE;

-			case SYSTEM_VALUE: return SYSTEM;

-			case FILE_HEADER_VALUE: return FILE_HEADER;

-			case FILE_BEGIN_VALUE: return FILE_BEGIN;

-			case FILE_END_VALUE: return FILE_END;

-			case TESTCASE_HEADER_VALUE: return TESTCASE_HEADER;

-			case TESTCASE_BEGIN_VALUE: return TESTCASE_BEGIN;

-			case TESTCASE_END_VALUE: return TESTCASE_END;

-			case INIT_HEADER_VALUE: return INIT_HEADER;

-			case INIT_BEGIN_VALUE: return INIT_BEGIN;

-			case INIT_END_VALUE: return INIT_END;

-			case STEP_HEADER_VALUE: return STEP_HEADER;

-			case STEP_BEGIN_VALUE: return STEP_BEGIN;

-			case STEP_END_VALUE: return STEP_END;

-			case COMMENT_VALUE: return COMMENT;

-			case SEPARATOR_VALUE: return SEPARATOR;

-			case NEWLINE_VALUE: return NEWLINE;

-			case NEXT_VALUE: return NEXT;

 		}

 		return null;

 	}

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/impl/CommonPackageImpl.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/impl/CommonPackageImpl.java
index 6b54afb..b7d64ca 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/impl/CommonPackageImpl.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/common/impl/CommonPackageImpl.java
@@ -1759,6 +1759,7 @@
 

 		initEEnum(traceElementKindEEnum, TraceElementKind.class, "TraceElementKind");

 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.UNDEFINED);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.UNKNOWN);

 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.CONDITION);

 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.DECISION);

 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.FORMULA);

@@ -1815,6 +1816,12 @@
 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.SEPARATOR);

 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.NEWLINE);

 		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.NEXT);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.LIFELINE);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.LIFELINE_HEADER);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.LIFELINE_BEGIN);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.LIFELINE_END);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.LIFELINE_ID);

+		addEEnumLiteral(traceElementKindEEnum, TraceElementKind.LIFELINE_STATE);

 

 		initEEnum(heuristicClassKindEEnum, HeuristicClassKind.class, "HeuristicClassKind");

 		addEEnumLiteral(heuristicClassKindEEnum, HeuristicClassKind.BASIC);

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/SerializerImpl.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/SerializerImpl.java
index 8e5c511..107ca3b 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/SerializerImpl.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/SerializerImpl.java
@@ -38,7 +38,8 @@
  *   <li>{@link org.eclipse.efm.execution.core.workflow.impl.SerializerImpl#getFolderName <em>Folder Name</em>}</li>

  *   <li>{@link org.eclipse.efm.execution.core.workflow.impl.SerializerImpl#getFileName <em>File Name</em>}</li>

  *   <li>{@link org.eclipse.efm.execution.core.workflow.impl.SerializerImpl#isEnabledNormalization <em>Enabled Normalization</em>}</li>

- *   <li>{@link org.eclipse.efm.execution.core.workflow.impl.SerializerImpl#isShowInitialization <em>Show Initialization</em>}</li>

+ *   <li>{@link org.eclipse.efm.execution.core.workflow.impl.SerializerImpl#isEnabledInitialValuesPrinting <em>Enabled Initial Values Printing</em>}</li>

+ *   <li>{@link org.eclipse.efm.execution.core.workflow.impl.SerializerImpl#isEnabledLifelinesPrinting <em>Enabled Lifelines Printing</em>}</li>

  * </ul>

  *

  * @generated

@@ -125,24 +126,44 @@
 	protected boolean enabledNormalization = ENABLED_NORMALIZATION_EDEFAULT;

 

 	/**

-	 * The default value of the '{@link #isShowInitialization() <em>Show Initialization</em>}' attribute.

+	 * The default value of the '{@link #isEnabledInitialValuesPrinting() <em>Enabled Initial Values Printing</em>}' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

-	 * @see #isShowInitialization()

+	 * @see #isEnabledInitialValuesPrinting()

 	 * @generated

 	 * @ordered

 	 */

-	protected static final boolean SHOW_INITIALIZATION_EDEFAULT = false;

+	protected static final boolean ENABLED_INITIAL_VALUES_PRINTING_EDEFAULT = false;

 

 	/**

-	 * The cached value of the '{@link #isShowInitialization() <em>Show Initialization</em>}' attribute.

+	 * The cached value of the '{@link #isEnabledInitialValuesPrinting() <em>Enabled Initial Values Printing</em>}' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

-	 * @see #isShowInitialization()

+	 * @see #isEnabledInitialValuesPrinting()

 	 * @generated

 	 * @ordered

 	 */

-	protected boolean showInitialization = SHOW_INITIALIZATION_EDEFAULT;

+	protected boolean enabledInitialValuesPrinting = ENABLED_INITIAL_VALUES_PRINTING_EDEFAULT;

+

+	/**

+	 * The default value of the '{@link #isEnabledLifelinesPrinting() <em>Enabled Lifelines Printing</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #isEnabledLifelinesPrinting()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final boolean ENABLED_LIFELINES_PRINTING_EDEFAULT = false;

+

+	/**

+	 * The cached value of the '{@link #isEnabledLifelinesPrinting() <em>Enabled Lifelines Printing</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #isEnabledLifelinesPrinting()

+	 * @generated

+	 * @ordered

+	 */

+	protected boolean enabledLifelinesPrinting = ENABLED_LIFELINES_PRINTING_EDEFAULT;

 

 	/**

 	 * <!-- begin-user-doc -->

@@ -317,8 +338,8 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

-	public boolean isShowInitialization() {

-		return showInitialization;

+	public boolean isEnabledInitialValuesPrinting() {

+		return enabledInitialValuesPrinting;

 	}

 

 	/**

@@ -326,11 +347,32 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

-	public void setShowInitialization(boolean newShowInitialization) {

-		boolean oldShowInitialization = showInitialization;

-		showInitialization = newShowInitialization;

+	public void setEnabledInitialValuesPrinting(boolean newEnabledInitialValuesPrinting) {

+		boolean oldEnabledInitialValuesPrinting = enabledInitialValuesPrinting;

+		enabledInitialValuesPrinting = newEnabledInitialValuesPrinting;

 		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION, oldShowInitialization, showInitialization));

+			eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING, oldEnabledInitialValuesPrinting, enabledInitialValuesPrinting));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean isEnabledLifelinesPrinting() {

+		return enabledLifelinesPrinting;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setEnabledLifelinesPrinting(boolean newEnabledLifelinesPrinting) {

+		boolean oldEnabledLifelinesPrinting = enabledLifelinesPrinting;

+		enabledLifelinesPrinting = newEnabledLifelinesPrinting;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING, oldEnabledLifelinesPrinting, enabledLifelinesPrinting));

 	}

 

 	/**

@@ -367,8 +409,10 @@
 				return getFileName();

 			case WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION:

 				return isEnabledNormalization();

-			case WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION:

-				return isShowInitialization();

+			case WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING:

+				return isEnabledInitialValuesPrinting();

+			case WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING:

+				return isEnabledLifelinesPrinting();

 		}

 		return super.eGet(featureID, resolve, coreType);

 	}

@@ -396,8 +440,11 @@
 			case WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION:

 				setEnabledNormalization((Boolean)newValue);

 				return;

-			case WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION:

-				setShowInitialization((Boolean)newValue);

+			case WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING:

+				setEnabledInitialValuesPrinting((Boolean)newValue);

+				return;

+			case WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING:

+				setEnabledLifelinesPrinting((Boolean)newValue);

 				return;

 		}

 		super.eSet(featureID, newValue);

@@ -426,8 +473,11 @@
 			case WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION:

 				setEnabledNormalization(ENABLED_NORMALIZATION_EDEFAULT);

 				return;

-			case WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION:

-				setShowInitialization(SHOW_INITIALIZATION_EDEFAULT);

+			case WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING:

+				setEnabledInitialValuesPrinting(ENABLED_INITIAL_VALUES_PRINTING_EDEFAULT);

+				return;

+			case WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING:

+				setEnabledLifelinesPrinting(ENABLED_LIFELINES_PRINTING_EDEFAULT);

 				return;

 		}

 		super.eUnset(featureID);

@@ -451,8 +501,10 @@
 				return FILE_NAME_EDEFAULT == null ? fileName != null : !FILE_NAME_EDEFAULT.equals(fileName);

 			case WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION:

 				return enabledNormalization != ENABLED_NORMALIZATION_EDEFAULT;

-			case WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION:

-				return showInitialization != SHOW_INITIALIZATION_EDEFAULT;

+			case WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING:

+				return enabledInitialValuesPrinting != ENABLED_INITIAL_VALUES_PRINTING_EDEFAULT;

+			case WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING:

+				return enabledLifelinesPrinting != ENABLED_LIFELINES_PRINTING_EDEFAULT;

 		}

 		return super.eIsSet(featureID);

 	}

@@ -473,8 +525,10 @@
 		result.append(fileName);

 		result.append(", enabledNormalization: ");

 		result.append(enabledNormalization);

-		result.append(", showInitialization: ");

-		result.append(showInitialization);

+		result.append(", enabledInitialValuesPrinting: ");

+		result.append(enabledInitialValuesPrinting);

+		result.append(", enabledLifelinesPrinting: ");

+		result.append(enabledLifelinesPrinting);

 		result.append(')');

 		return result.toString();

 	}

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/WorkflowPackageImpl.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/WorkflowPackageImpl.java
index 5688a25..7a7ea60 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/WorkflowPackageImpl.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/impl/WorkflowPackageImpl.java
@@ -603,7 +603,7 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

-	public EAttribute getSerializer_ShowInitialization() {

+	public EAttribute getSerializer_EnabledInitialValuesPrinting() {

 		return (EAttribute)serializerEClass.getEStructuralFeatures().get(5);

 	}

 

@@ -612,6 +612,15 @@
 	 * <!-- end-user-doc -->

 	 * @generated

 	 */

+	public EAttribute getSerializer_EnabledLifelinesPrinting() {

+		return (EAttribute)serializerEClass.getEStructuralFeatures().get(6);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

 	public WorkflowFactory getWorkflowFactory() {

 		return (WorkflowFactory)getEFactoryInstance();

 	}

@@ -688,7 +697,8 @@
 		createEAttribute(serializerEClass, SERIALIZER__FOLDER_NAME);

 		createEAttribute(serializerEClass, SERIALIZER__FILE_NAME);

 		createEAttribute(serializerEClass, SERIALIZER__ENABLED_NORMALIZATION);

-		createEAttribute(serializerEClass, SERIALIZER__SHOW_INITIALIZATION);

+		createEAttribute(serializerEClass, SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING);

+		createEAttribute(serializerEClass, SERIALIZER__ENABLED_LIFELINES_PRINTING);

 	}

 

 	/**

@@ -793,7 +803,8 @@
 		initEAttribute(getSerializer_FolderName(), ecorePackage.getEString(), "folderName", null, 0, 1, Serializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

 		initEAttribute(getSerializer_FileName(), ecorePackage.getEString(), "fileName", null, 0, 1, Serializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

 		initEAttribute(getSerializer_EnabledNormalization(), ecorePackage.getEBoolean(), "enabledNormalization", null, 0, 1, Serializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

-		initEAttribute(getSerializer_ShowInitialization(), ecorePackage.getEBoolean(), "showInitialization", null, 0, 1, Serializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getSerializer_EnabledInitialValuesPrinting(), ecorePackage.getEBoolean(), "enabledInitialValuesPrinting", "false", 0, 1, Serializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+		initEAttribute(getSerializer_EnabledLifelinesPrinting(), ecorePackage.getEBoolean(), "enabledLifelinesPrinting", "false", 0, 1, Serializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

 

 		// Create resource

 		createResource(eNS_URI);

diff --git a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/serializer/SerializerPackage.java b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/serializer/SerializerPackage.java
index 3be8c11..f7f2f92 100644
--- a/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/serializer/SerializerPackage.java
+++ b/execution/org.eclipse.efm.execution.core/src-gen/org/eclipse/efm/execution/core/workflow/serializer/SerializerPackage.java
@@ -177,13 +177,22 @@
 	int MODEL_GRAPHVIZ_SERIALIZER_WORKER__ENABLED_NORMALIZATION = WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION;

 

 	/**

-	 * The feature id for the '<em><b>Show Initialization</b></em>' attribute.

+	 * The feature id for the '<em><b>Enabled Initial Values Printing</b></em>' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int MODEL_GRAPHVIZ_SERIALIZER_WORKER__SHOW_INITIALIZATION = WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION;

+	int MODEL_GRAPHVIZ_SERIALIZER_WORKER__ENABLED_INITIAL_VALUES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING;

+

+	/**

+	 * The feature id for the '<em><b>Enabled Lifelines Printing</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int MODEL_GRAPHVIZ_SERIALIZER_WORKER__ENABLED_LIFELINES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING;

 

 	/**

 	 * The number of structural features of the '<em>Model Graphviz Serializer Worker</em>' class.

@@ -313,13 +322,22 @@
 	int SYMBEX_GRAPH_VIZ_SERIALIZER_WORKER__ENABLED_NORMALIZATION = WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION;

 

 	/**

-	 * The feature id for the '<em><b>Show Initialization</b></em>' attribute.

+	 * The feature id for the '<em><b>Enabled Initial Values Printing</b></em>' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int SYMBEX_GRAPH_VIZ_SERIALIZER_WORKER__SHOW_INITIALIZATION = WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION;

+	int SYMBEX_GRAPH_VIZ_SERIALIZER_WORKER__ENABLED_INITIAL_VALUES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING;

+

+	/**

+	 * The feature id for the '<em><b>Enabled Lifelines Printing</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int SYMBEX_GRAPH_VIZ_SERIALIZER_WORKER__ENABLED_LIFELINES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING;

 

 	/**

 	 * The number of structural features of the '<em>Symbex Graph Viz Serializer Worker</em>' class.

@@ -449,13 +467,22 @@
 	int BASIC_TRACE_SERIALIZER__ENABLED_NORMALIZATION = WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION;

 

 	/**

-	 * The feature id for the '<em><b>Show Initialization</b></em>' attribute.

+	 * The feature id for the '<em><b>Enabled Initial Values Printing</b></em>' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int BASIC_TRACE_SERIALIZER__SHOW_INITIALIZATION = WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION;

+	int BASIC_TRACE_SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING;

+

+	/**

+	 * The feature id for the '<em><b>Enabled Lifelines Printing</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int BASIC_TRACE_SERIALIZER__ENABLED_LIFELINES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING;

 

 	/**

 	 * The number of structural features of the '<em>Basic Trace Serializer</em>' class.

@@ -585,13 +612,22 @@
 	int TTCN_TRACE_SERIALIZER__ENABLED_NORMALIZATION = WorkflowPackage.SERIALIZER__ENABLED_NORMALIZATION;

 

 	/**

-	 * The feature id for the '<em><b>Show Initialization</b></em>' attribute.

+	 * The feature id for the '<em><b>Enabled Initial Values Printing</b></em>' attribute.

 	 * <!-- begin-user-doc -->

 	 * <!-- end-user-doc -->

 	 * @generated

 	 * @ordered

 	 */

-	int TTCN_TRACE_SERIALIZER__SHOW_INITIALIZATION = WorkflowPackage.SERIALIZER__SHOW_INITIALIZATION;

+	int TTCN_TRACE_SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_INITIAL_VALUES_PRINTING;

+

+	/**

+	 * The feature id for the '<em><b>Enabled Lifelines Printing</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 * @ordered

+	 */

+	int TTCN_TRACE_SERIALIZER__ENABLED_LIFELINES_PRINTING = WorkflowPackage.SERIALIZER__ENABLED_LIFELINES_PRINTING;

 

 	/**

 	 * The feature id for the '<em><b>Enabled Customization</b></em>' attribute.

diff --git a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationConstants.java b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationConstants.java
index 9de1d55..ad51352 100644
--- a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationConstants.java
+++ b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationConstants.java
@@ -380,8 +380,17 @@
 

 

 	public static final String ATTR_BASIC_TRACE_ENABLED_GENERATION =

-			PLUGIN_LAUNCH_ID + ".ATTR_BASIC_TRACE_ENABLED"; //$NON-NLS-1$

+			PLUGIN_LAUNCH_ID + ".ATTR_BASIC_TRACE_ENABLED_GENERATION"; //$NON-NLS-1$

 

+	public static final boolean DEFAULT_BASIC_TRACE_ENABLED_GENERATION = false;

+

+	

+	public static final String ATTR_BASIC_TRACE_LIFELINES_ENABLED_PRINTING =

+			PLUGIN_LAUNCH_ID + ".ATTR_BASIC_LIFELINES_TRACE_ENABLED_PRINTING"; //$NON-NLS-1$

+

+	public static final boolean DEFAULT_BASIC_TRACE_LIFELINES_ENABLED_PRINTING = false;

+

+	

 	public static final String DEFAULT_BASIC_TRACE_FOLDER_NAME =

 			"basic"; //$NON-NLS-1$

 

@@ -399,8 +408,8 @@
 	public static final String ATTR_BASIC_TRACE_ENABLED_NORMALIZATION =

 			PLUGIN_LAUNCH_ID + ".ATTR_BASIC_TRACE_ELIMINATION_REDUNDANCE"; //$NON-NLS-1$

 

-	public static final String ATTR_BASIC_TRACE_SHOW_INITIALIZATION =

-			PLUGIN_LAUNCH_ID + ".ATTR_BASIC_TRACE_SHOW_INITIALIZATION"; //$NON-NLS-1$

+	public static final String ATTR_BASIC_TRACE_INITIAL_VALUES_ENABLED_PRINTING =

+			PLUGIN_LAUNCH_ID + ".ATTR_BASIC_TRACE_INITIAL_VALUES_ENABLED_PRINTING"; //$NON-NLS-1$

 

 

 	public static final String ATTR_BASIC_TRACE_ALL_EXTERNAL_INPUT_COM_SELECTION =

@@ -460,28 +469,29 @@
 //			%2% --> machine identifier name

 //			%3% --> port | signal | variable | machine | transition | routine

 //			%4% --> value

+//			%5% --> machine target identifier name

 			+ "\ntime       = \"\\tdelta = %4%\\n\""

 //			+ "\nassign     = \"\\t2%:%3%=%4%\\n\""

 			+ "\nassign     = \"\\t%3%=%4%\\n\""

 			+ "\nnewfresh   = \"\\tnewfresh(%2%:%3%) <- %4%\\n\""

 

-			+ "\ninput#env  = \"\\tINPUT  %2%->%3%%4%\\n\""

-			+ "\ninput#rdv  = \"\\tinput  %2%->%3%%4%\\n\""

-			+ "\ninput      = \"\\tinput  %2%->%3%%4%\\n\""

+			+ "\ninput#env  = \"\\tINPUT  %2%:%3%%4%\\n\""

+			+ "\ninput#rdv  = \"\\tinput  %2%:%3%%4%\\n\""

+			+ "\ninput      = \"\\tinput  %2%:%3%%4%\\n\""

 //			+ "\ninput      = \"\\t%2%->%3% ? %4%\\n\""

-			+ "\noutput#env = \"\\tOUTPUT %2%->%3%%4%\\n\""

-			+ "\noutput#rdv = \"\\toutput %2%->%3%%4%\\n\""

-			+ "\noutput     = \"\\toutput %2%->%3%%4%\\n\""

+			+ "\noutput#env = \"\\tOUTPUT %2%:%3%%4%\\n\""

+			+ "\noutput#rdv = \"\\toutput %2%:%3%%4%\\n\""

+			+ "\noutput     = \"\\toutput %2%:%3%%4%\\n\""

 

 			+ "\nroutine    = \"\\tinvoke %2%:%3%\\n\""

 			+ "\ntransition = \"\\tfired transition %2%:%3%\\n\""

 

-			+ "\nmachine    = \"\\trun %1%:%2%\\n\""; //$NON-NLS-1$

+			+ "\nmachine    = \"\\trun %2%:%3%\\n\""; //$NON-NLS-1$

 

 

 	// TTCN Tests Generation

 	public static final String ATTR_TTCN_ENABLED_GENERATION =

-			PLUGIN_LAUNCH_ID + ".ATTR_TTCN_ENABLED"; //$NON-NLS-1$

+			PLUGIN_LAUNCH_ID + ".ATTR_TTCN_ENABLED_GENERATION"; //$NON-NLS-1$

 

 	public static final String ATTR_TTCN_ENABLED_CUSTOMIZATION =

 			PLUGIN_LAUNCH_ID + ".ATTR_TTCN_ENABLED_CUSTOMIZATION"; //$NON-NLS-1$

@@ -696,22 +706,22 @@
 			// %4% --> value

 //			+ "\nassign     = %2%:%3%=%4%"

 			+ "\nassign     = %3%=%4%"

-			+ "\nnewfresh   = newfresh(%1%:%3%) <- %4%"

+			+ "\nnewfresh   = newfresh(%2%:%3%) <- %4%"

 

-			+ "\ninput#env  = INPUT %3%%4%"

-			+ "\ninput#rdv  = input %3%%4%"

-			+ "\ninput      = input %3%%4%"

+			+ "\ninput#env  = INPUT %2%:%3%%4%"

+			+ "\ninput#rdv  = input %2%:%3%%4%"

+			+ "\ninput      = input %2%:%3%%4%"

 //			+ "\ninput      = %1%->%3% ? %4%"

 

-			+ "\noutput#env = OUTPUT %3%%4%"

-			+ "\noutput#rdv = output %3%%4%"

-			+ "\noutput     = output %3%%4%"

+			+ "\noutput#env = OUTPUT %2%:%3%%4%"

+			+ "\noutput#rdv = output %2%:%3%%4%"

+			+ "\noutput     = output %2%:%3%%4%"

 //			+ "\noutput     = %1%->%3% ? %4%"

 

 			+ "\nroutine    = invoke %2%:%3%"

 			+ "\ntransition = fired transition %3%"

 

-			+ "\nmachine    = \"run %1%:%3%\""; //$NON-NLS-1$

+			+ "\nmachine    = \"run %2%:%3%\""; //$NON-NLS-1$

 

 

 	// Second Symbex Workflow Page

diff --git a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationSyntax.java b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationSyntax.java
index 4bd958a..d249e9d 100644
--- a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationSyntax.java
+++ b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/IWorkflowConfigurationSyntax.java
@@ -101,8 +101,16 @@
 			+ "\n"

 			+ "\n// %1% --> trace number"

 			+ "\n// %2% --> execution context leaf identifier"

-			+ "\n- header = \"TRACE NUMBER %1%\""

-			+ "\n- end    = \"\""

+			+ "\n- file#header = \"TRACE NUMBER %1%\""

+			+ "\n- file#begin  = \"\""

+			+ "\n- file#end    = \"\""

+			+ "\n"

+			+ "\n// %1% --> trace number"

+			+ "\n// %2% --> execution context leaf identifier"

+			+ "\n- testcase#header = \"TRACE NUMBER %1%\""

+			+ "\n- testcase#begin  = \"\""

+			+ "\n- testcase#end    = \"\""

+			+ "\n- testcase#end    = \"\""

 			+ "\n- init#begin = \"\\t// Initialization parameter values:\""

 			+ "\n- init#end   = \"\\n\""

 			+ "\n"

diff --git a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/common/TraceElementCustomImpl.java b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/common/TraceElementCustomImpl.java
index da0af22..e92185b 100644
--- a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/common/TraceElementCustomImpl.java
+++ b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/common/TraceElementCustomImpl.java
@@ -72,7 +72,8 @@
 			writer.appendTab( getNature().getLiteral() ).append( " = " );

 			if( value instanceof String ) {

 				final String str = value.toString();

-				if( (! str.startsWith("\"")) && (! str.startsWith("'")) ) {

+				if( (! str.startsWith("\"")) && (! str.startsWith("'"))

+					&& ((! str.startsWith("[")) || str.startsWith("[*]")) ) {

 					writer.append( "\"" ).append( str ).appendEol( "\"" );

 				}

 				else {

diff --git a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/serializer/BasicTraceSerializerWorkerCustomImpl.java b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/serializer/BasicTraceSerializerWorkerCustomImpl.java
index c7f5bf2..784c013 100644
--- a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/serializer/BasicTraceSerializerWorkerCustomImpl.java
+++ b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/serializer/BasicTraceSerializerWorkerCustomImpl.java
@@ -69,14 +69,25 @@
 

 		try {

 			enabled = configuration.getAttribute(

-					ATTR_BASIC_TRACE_SHOW_INITIALIZATION, false);

+					ATTR_BASIC_TRACE_INITIAL_VALUES_ENABLED_PRINTING, false);

 		}

 		catch( CoreException e2 ) {

 			e2.printStackTrace();

 

 			enabled = false;

 		}

-		serializerWorker.setShowInitialization( enabled );

+		serializerWorker.setEnabledInitialValuesPrinting( enabled );

+

+		try {

+			enabled = configuration.getAttribute(

+					ATTR_BASIC_TRACE_LIFELINES_ENABLED_PRINTING, false);

+		}

+		catch( CoreException e2 ) {

+			e2.printStackTrace();

+

+			enabled = false;

+		}

+		serializerWorker.setEnabledLifelinesPrinting( enabled );

 

 

 		try {

@@ -310,8 +321,11 @@
 		writer2.appendTab2( "normalize = " )

 			.appendEol( isEnabledNormalization() );

 

-		writer2.appendTab2( "show#initialization = " )

-			.appendEol( isShowInitialization() );

+		writer2.appendTab2( "print#initial#values = " )

+		.appendEol( isEnabledInitialValuesPrinting() );

+

+		writer2.appendTab2( "print#lifelines = " )

+		.appendEol( isEnabledLifelinesPrinting() );

 

 		writer2.appendTabEol( "] // end property" );

 

diff --git a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/test/OfflineTestWorkerCustomImpl.java b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/test/OfflineTestWorkerCustomImpl.java
index 44f9f49..e1fb350 100644
--- a/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/test/OfflineTestWorkerCustomImpl.java
+++ b/execution/org.eclipse.efm.execution.core/src/org/eclipse/efm/execution/core/workflow/test/OfflineTestWorkerCustomImpl.java
@@ -84,14 +84,38 @@
 			testWorker.setTestPurposeFile(path);

 		}

 

-		TraceSpecificationCustomImpl trace =

-				TraceSpecificationCustomImpl.create("observable",

-						DEFAULT_TEST_OFFLINE_OBSERVABLE_SPECIFICATION);

-		testWorker.setObservable( trace );

+		

+		String observableTrace;

+		try {

+			observableTrace = configuration.getAttribute(

+					ATTR_TEST_OFFLINE_OBSERVABLE_SPECIFICATION,

+					DEFAULT_TEST_OFFLINE_OBSERVABLE_SPECIFICATION);

+		}

+		catch( CoreException e ) {

+			e.printStackTrace();

 

-		trace = TraceSpecificationCustomImpl.create("controllable",

-				DEFAULT_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION);

-		testWorker.setControllable( trace );

+			observableTrace = DEFAULT_TEST_OFFLINE_OBSERVABLE_SPECIFICATION;

+		}

+

+		testWorker.setObservable(

+				TraceSpecificationCustomImpl.create(

+						"observable", observableTrace) );

+

+		String controllableTrace;

+		try {

+			controllableTrace = configuration.getAttribute(

+					ATTR_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION,

+					DEFAULT_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION);

+		}

+		catch( CoreException e ) {

+			e.printStackTrace();

+

+			controllableTrace = DEFAULT_TEST_OFFLINE_CONTROLLABLE_SPECIFICATION;

+		}

+

+		testWorker.setControllable(

+				TraceSpecificationCustomImpl.create(

+						"controllable", controllableTrace) );

 

 

 //		ConsoleLogFormatCustomImpl console =

@@ -127,6 +151,11 @@
 			manifest.toWriter(writer2);

 		}

 

+

+		writer.appendTab2Eol( "property [" )

+			.appendTab3Eol( "format = \"myformat\"" )

+			.appendTab2Eol( "] // end property" );

+						

 		writer.appendTab2Eol( "merged_trace [" );

 

 		if( (str = getMergedTraceFile()) != null ) {

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/AbstractSewLaunchConfigurationTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/AbstractSewLaunchConfigurationTab.java
index a0e34ea..65fa648 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/AbstractSewLaunchConfigurationTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/AbstractSewLaunchConfigurationTab.java
@@ -107,7 +107,8 @@
 	 */

 	@Override

 	public boolean isValid(ILaunchConfiguration launchConfig) {

-		FieldValidationReturn fieldValidation = fContentCompositeManager.areFieldsValid(launchConfig);

+		FieldValidationReturn fieldValidation =

+				fContentCompositeManager.areFieldsValid(launchConfig);

 		if (fieldValidation.areFieldsValid()) {

 			setMessage(fieldValidation.getReason());

 		} else {

diff --git a/execution/org.eclipse.efm.execution.ui.views/META-INF/MANIFEST.MF b/execution/org.eclipse.efm.execution.ui.views/META-INF/MANIFEST.MF
index ef95375..9867a3c 100644
--- a/execution/org.eclipse.efm.execution.ui.views/META-INF/MANIFEST.MF
+++ b/execution/org.eclipse.efm.execution.ui.views/META-INF/MANIFEST.MF
@@ -14,6 +14,8 @@
 Import-Package: org.eclipse.core.resources,
  org.eclipse.debug.core,
  org.eclipse.debug.ui,
+ org.eclipse.efm.execution.core,
+ org.eclipse.efm.execution.launchconfiguration,
  org.eclipse.ui.dialogs,
  org.eclipse.ui.forms.events,
  org.eclipse.ui.forms.widgets,
diff --git a/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/FormWidgetToolkit.java b/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/FormWidgetToolkit.java
index f2a452b..030f5f0 100644
--- a/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/FormWidgetToolkit.java
+++ b/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/FormWidgetToolkit.java
@@ -117,11 +117,16 @@
 //		gd.heightHint = 2;
 		tabFolder.setLayoutData(gd);
 
-		FormColors colors = super.getColors();
+		FormColors formColors = super.getColors();
+
+//		String tabItemSelKey = "__tisk__";
+//		RGB selRGB = formColors.getSystemColor(SWT.COLOR_GREEN);
+
 		tabFolder.setSelectionBackground(
 				new Color[] {
-						colors.getColor(IFormColors.TB_BG),
-						colors.getBackground()
+						formColors.getColor(IFormColors.TB_BG),
+						formColors.getBackground()
+//						formColors.createColor(tabItemSelKey, selRGB)
 					},
 				new int[] {100}, true);
 
diff --git a/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/SymbexWorkflowView.java b/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/SymbexWorkflowView.java
index ae4e422..1143d9c 100644
--- a/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/SymbexWorkflowView.java
+++ b/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/SymbexWorkflowView.java
@@ -12,6 +12,7 @@
  *******************************************************************************/
 package org.eclipse.efm.execution.ui.views.symbexlauncher;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
@@ -25,10 +26,16 @@
 import org.eclipse.debug.ui.ILaunchGroup;
 import org.eclipse.efm.execution.configuration.common.ui.api.AbstractConfigurationPage;
 import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;
+import org.eclipse.efm.execution.configuration.common.ui.page.debug.DebugConfigurationPage;
+import org.eclipse.efm.execution.configuration.common.ui.page.developer.DeveloperTuningConfigurationPage;
+import org.eclipse.efm.execution.configuration.common.ui.page.expert.ExpertConfigurationPage;
 import org.eclipse.efm.execution.configuration.common.ui.page.overview.OverviewConfigurationPage;
 import org.eclipse.efm.execution.configuration.common.ui.page.supervisor.SupervisorConfigurationPage;
 import org.eclipse.efm.execution.configuration.common.ui.page.testgen.TestGenerationConfigurationPage;
 import org.eclipse.efm.execution.configuration.common.ui.util.GenericCompositeCreator;
+import org.eclipse.efm.execution.core.IWorkflowPreferenceConstants;
+import org.eclipse.efm.execution.core.SymbexPreferenceUtil;
+import org.eclipse.efm.execution.launchconfiguration.LaunchDelegate;
 import org.eclipse.efm.ui.utils.ImageResources;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -55,7 +62,6 @@
 
 	private AbstractConfigurationPage[] fConfigurationPages;
 	
-
 	protected Composite tabbedCompositeMaster;
 	protected CTabFolder fTabFolder;
 	protected Combo combo;
@@ -190,13 +196,34 @@
 	
 	private void createSectionsContent(IWidgetToolkit widgetToolkit)
 	{
-		fConfigurationPages = new AbstractConfigurationPage[3];
+		ArrayList< AbstractConfigurationPage > confPage = new ArrayList<>();
+		
+		createOverviewTabItem(widgetToolkit, confPage);
 
-		createOverviewTabItem(widgetToolkit);
+		createSupervisorTabItem(widgetToolkit, confPage);
 
-		createSupervisorTabItem(widgetToolkit);
+		createTestGenerationTabItem(widgetToolkit, confPage);
 
-		createTestGenerationTabItem(widgetToolkit);
+		if( SymbexPreferenceUtil.getBooleanPreference(
+				IWorkflowPreferenceConstants.PREF_DEBUG_OPTIONS) )
+		{
+			createDebugTabItem(widgetToolkit, confPage);
+		}
+		if( SymbexPreferenceUtil.getBooleanPreference(
+				IWorkflowPreferenceConstants.PREF_EXPERT_MODE) )
+		{
+			createExpertTabItem(widgetToolkit, confPage);
+		}
+
+		if ( LaunchDelegate.ENABLED_SYMBEX_DEVELOPER_MODE_OPTION
+			&& SymbexPreferenceUtil.getBooleanPreference(
+					IWorkflowPreferenceConstants.PREF_SYMBEX_DEVELOPER_MODE) )
+		{
+			createDeveloperTuningTabItem(widgetToolkit, confPage);
+		}
+		
+		fConfigurationPages = confPage.toArray(
+				new AbstractConfigurationPage[confPage.size()]);
 
 		fTabFolder.setSelection(fOverviewTabItem);
 	}
@@ -211,7 +238,7 @@
 	private CTabItem fOverviewTabItem;
 	private Composite fOverviewControl;
 
-	private void createOverviewTabItem(IWidgetToolkit widgetToolkit)
+	private void createOverviewTabItem(IWidgetToolkit widgetToolkit, ArrayList<AbstractConfigurationPage> confPage)
 	{
 		fOverviewTabItem = new CTabItem(fTabFolder, SWT.NONE );
 		fOverviewTabItem.setText("Overview");
@@ -231,20 +258,20 @@
 		if (fOverviewControl != null) {
 			scrolledComposite.setContent(fOverviewControl);
 			
-//			scrolledComposite.setMinSize(
-//					fOverviewControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			scrolledComposite.setMinSize(
+					fOverviewControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 
 			fOverviewTabItem.setControl(scrolledComposite);
 		}
 
-		fConfigurationPages[0] = overviewPage;
+		confPage.add( overviewPage );
 	}
 
 
 	private CTabItem fSupervisorTabItem;
 	private Composite fSupervisorControl;
 
-	private void createSupervisorTabItem(IWidgetToolkit widgetToolkit)
+	private void createSupervisorTabItem(IWidgetToolkit widgetToolkit, ArrayList<AbstractConfigurationPage> confPage)
 	{
 		fSupervisorTabItem = new CTabItem(fTabFolder, SWT.NONE );
 		fSupervisorTabItem.setText("Supervisor");
@@ -260,20 +287,20 @@
 		if (fSupervisorControl != null) {
 			scrolledComposite.setContent(fSupervisorControl);
 			
-//			scrolledComposite.setMinSize(
-//					fSupervisorControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			scrolledComposite.setMinSize(
+					fSupervisorControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 
 			fSupervisorTabItem.setControl(scrolledComposite);
 		}
 
-		fConfigurationPages[1] = supervisorPage;
+		confPage.add( supervisorPage );
 	}
 
 
 	private CTabItem fTestGenTabItem;
 	private Composite fTestGenControl;
 
-	private void createTestGenerationTabItem(IWidgetToolkit widgetToolkit)
+	private void createTestGenerationTabItem(IWidgetToolkit widgetToolkit, ArrayList<AbstractConfigurationPage> confPage)
 	{
 		fTestGenTabItem = new CTabItem(fTabFolder, SWT.NONE );
 		fTestGenTabItem.setText("Test Generation");
@@ -289,20 +316,103 @@
 		if (fTestGenControl != null) {
 			scrolledComposite.setContent(fTestGenControl);
 			
-//			scrolledComposite.setMinSize(
-//					fTestGenControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			scrolledComposite.setMinSize(
+					fTestGenControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 
 			fTestGenTabItem.setControl(scrolledComposite);
 		}
 
-		fConfigurationPages[2] = testGenPage;
+		confPage.add( testGenPage );
+	}
+	
+	private CTabItem fDebugTabItem;
+	private Composite fDebugControl;
+
+	private void createDebugTabItem(IWidgetToolkit widgetToolkit, ArrayList<AbstractConfigurationPage> confPage)
+	{
+		fDebugTabItem = new CTabItem(fTabFolder, SWT.NONE );
+		fDebugTabItem.setText("Debug");
+
+		ScrolledComposite scrolledComposite =
+				widgetToolkit.createScrolledComposite(fTabFolder);
+
+		DebugConfigurationPage devugPage = new DebugConfigurationPage(this);
+
+		devugPage.createControl(scrolledComposite, widgetToolkit);
+
+		fDebugControl = devugPage.getControl();
+		if (fDebugControl != null) {
+			scrolledComposite.setContent(fDebugControl);
+			
+			scrolledComposite.setMinSize(
+					fSupervisorControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+			fDebugTabItem.setControl(scrolledComposite);
+		}
+
+		confPage.add( devugPage );
+	}
+
+	private CTabItem fExpertTabItem;
+	private Composite fExpertControl;
+
+	private void createExpertTabItem(IWidgetToolkit widgetToolkit, ArrayList<AbstractConfigurationPage> confPage)
+	{
+		fExpertTabItem = new CTabItem(fTabFolder, SWT.NONE );
+		fExpertTabItem.setText("Expert");
+
+		ScrolledComposite scrolledComposite =
+				widgetToolkit.createScrolledComposite(fTabFolder);
+
+		ExpertConfigurationPage expertPage = new ExpertConfigurationPage(this);
+
+		expertPage.createControl(scrolledComposite, widgetToolkit);
+
+		fExpertControl = expertPage.getControl();
+		if (fExpertControl != null) {
+			scrolledComposite.setContent(fExpertControl);
+			
+			scrolledComposite.setMinSize(
+					fExpertControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+			fExpertTabItem.setControl(scrolledComposite);
+		}
+
+		confPage.add( expertPage );
+	}
+
+	private CTabItem fDeveloperTuningTabItem;
+	private Composite fDeveloperTuningControl;
+
+	private void createDeveloperTuningTabItem(IWidgetToolkit widgetToolkit, ArrayList<AbstractConfigurationPage> confPage)
+	{
+		fDeveloperTuningTabItem = new CTabItem(fTabFolder, SWT.NONE );
+		fDeveloperTuningTabItem.setText("Developer");
+
+		ScrolledComposite scrolledComposite =
+				widgetToolkit.createScrolledComposite(fTabFolder);
+
+		DeveloperTuningConfigurationPage developerPage =
+				new DeveloperTuningConfigurationPage(this);
+
+		developerPage.createControl(scrolledComposite, widgetToolkit);
+
+		fDeveloperTuningControl = developerPage.getControl();
+		if (fDeveloperTuningControl != null) {
+			scrolledComposite.setContent(fDeveloperTuningControl);
+			
+			scrolledComposite.setMinSize(
+					fSupervisorControl.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+			fDeveloperTuningTabItem.setControl(scrolledComposite);
+		}
+
+		confPage.add( developerPage );
 	}
 
 
 	private void updateEnableTab(boolean isLaunchConfSelected) {
 	    fOverviewControl.setEnabled(isLaunchConfSelected);
-	    //fTestGenControl.setEnabled(isLaunchConfSelected);
-	    //fSupervisorControl.setEnabled(isLaunchConfSelected);
 	}
 	
 	///////////////////////////////////////////////////////////////////////////
diff --git a/gui/org.eclipse.efm.ui/resources/icons/error_ovr.gif b/gui/org.eclipse.efm.ui/resources/icons/error_ovr.gif
new file mode 100644
index 0000000..119dccc
--- /dev/null
+++ b/gui/org.eclipse.efm.ui/resources/icons/error_ovr.gif
Binary files differ
diff --git a/gui/org.eclipse.efm.ui/resources/icons/lock_ovr.gif b/gui/org.eclipse.efm.ui/resources/icons/lock_ovr.gif
new file mode 100644
index 0000000..c1facbb
--- /dev/null
+++ b/gui/org.eclipse.efm.ui/resources/icons/lock_ovr.gif
Binary files differ
diff --git a/gui/org.eclipse.efm.ui/resources/icons/template.gif b/gui/org.eclipse.efm.ui/resources/icons/template.gif
deleted file mode 100644
index bec9f0e..0000000
--- a/gui/org.eclipse.efm.ui/resources/icons/template.gif
+++ /dev/null
Binary files differ
diff --git a/gui/org.eclipse.efm.ui/resources/icons/validate.gif b/gui/org.eclipse.efm.ui/resources/icons/validate.gif
new file mode 100644
index 0000000..2b347ac
--- /dev/null
+++ b/gui/org.eclipse.efm.ui/resources/icons/validate.gif
Binary files differ
diff --git a/gui/org.eclipse.efm.ui/resources/icons/warn_ovr.gif b/gui/org.eclipse.efm.ui/resources/icons/warn_ovr.gif
new file mode 100644
index 0000000..6f46bf9
--- /dev/null
+++ b/gui/org.eclipse.efm.ui/resources/icons/warn_ovr.gif
Binary files differ
diff --git a/gui/org.eclipse.efm.ui/src/org/eclipse/efm/ui/utils/ImageResources.java b/gui/org.eclipse.efm.ui/src/org/eclipse/efm/ui/utils/ImageResources.java
index 4a2cef5..4034a6f 100644
--- a/gui/org.eclipse.efm.ui/src/org/eclipse/efm/ui/utils/ImageResources.java
+++ b/gui/org.eclipse.efm.ui/src/org/eclipse/efm/ui/utils/ImageResources.java
@@ -52,11 +52,15 @@
 	public static final String IMAGE__WARNING_ICON = ICONS_PLUGIN_PATH + "warning_st_obj.png";

 	public static final String IMAGE__ERROR_ICON = ICONS_PLUGIN_PATH + "error_st_obj.gif";

 

+	public static final String IMAGE__PINNED_OVR_ICON = ICONS_PLUGIN_PATH + "pinned_ovr.gif";

+

 	

 	public static final String IMAGE__REFRESH_ICON = ICONS_PLUGIN_PATH + "refresh_tab.png";

 	

 	public static final String IMAGE__SYNCED_ICON = ICONS_PLUGIN_PATH + "synced.gif";

 

+	public static final String IMAGE__VALIDATE_ICON = ICONS_PLUGIN_PATH + "validate.gif";

+

 	

 	// Helper/Util methods only below