Bug 514634 Fix all contextual Control visibility regressions 

Change-Id: Iafb924f4c50c936791cbc992460762937efbff42
Signed-off-by: Arnault Lapitre <arnault.lapitre@cea.fr>
diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationPage.java
index a45c87f..33a912d 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationPage.java
@@ -28,7 +28,6 @@
 import org.eclipse.jface.action.Action;

 import org.eclipse.swt.layout.GridData;

 import org.eclipse.swt.widgets.Composite;

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

 

 public abstract class AbstractConfigurationPage

 		implements IWorkflowConfigurationConstants, IWorkflowPreferenceConstants {

@@ -113,7 +112,20 @@
 		return fControl;

 	}

 

+	

+	///////////////////////////////////////////////////////////////////////////

+	// Model Analysis Profile changed

+	//

+	public void handleModelAnalysisProfileSelectionChanged(String analysisProfile) {

+		//!! Nothing 

+	}

 

+	

+	public AbstractConfigurationPage[] getConfigurationPages() {

+		return masterGUIelement.getConfigurationPages();

+	}

+

+	

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

 	//                              Fields Validation

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

@@ -176,17 +188,12 @@
 		masterGUIelement.updateGUI();

 	}

 

-	public void propagateVisibility(Control aControl, boolean visible) {

-		aControl.setVisible(visible);

+	public void setVisibleAndEnabled(Composite aComposite, boolean visible) {

+		getWidgetToolkit().setVisibleAndEnabled(aComposite, visible);

+	}

 

-		Object gd = aControl.getLayoutData();

-		if (gd instanceof GridData) {

-			GridData data = (GridData) gd;

-			data.exclude = (! visible);

-			aControl.getShell().layout(false);

-		} else {

-			//

-		}

+	public void propagateVisibility(Composite aComposite, boolean visible) {

+		getWidgetToolkit().propagateVisibility(aComposite, visible);

 	}

 

 	public void propagateUpdateJobScheduling() {

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 1c7ab7c..3dd07fd 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
@@ -16,7 +16,6 @@
 import org.eclipse.efm.execution.configuration.common.ui.editors.FieldEditor;

 import org.eclipse.efm.execution.core.IWorkflowConfigurationConstants;

 import org.eclipse.jface.action.IToolBarManager;

-import org.eclipse.jface.action.ToolBarManager;

 import org.eclipse.swt.widgets.Composite;

 import org.eclipse.ui.forms.widgets.Section;

 

@@ -25,26 +24,27 @@
 

 	protected AbstractConfigurationPage fConfigurationPage;

 

-	public AbstractConfigurationSection(AbstractConfigurationPage configurationPage,

-			Composite parent, ToolBarManager toolBarManager)

+	public AbstractConfigurationSection(AbstractConfigurationPage configurationPage)

 	{

 		this.fConfigurationPage = configurationPage;

-

-		this.initialize(parent, toolBarManager);

 	}

 

 	public AbstractConfigurationPage getConfigurationPage() {

 		return fConfigurationPage;

 	}

 

-	public void initialize(Composite parent, IToolBarManager toolBarManager) {

-		IWidgetToolkit toolkit = fConfigurationPage.getWidgetToolkit();

-		

-		toolkit.createSectionPart(this, parent,

+	public AbstractConfigurationPage[] getConfigurationPages() {

+		return fConfigurationPage.getConfigurationPages();

+	}

+

+	public void createControl(Composite parent,

+			IToolBarManager toolBarManager, IWidgetToolkit widgetToolkit)

+	{

+		widgetToolkit.createSectionPart(this, parent,

 				Section.TITLE_BAR | Section.DESCRIPTION |

 				Section.EXPANDED  | Section.TWISTIE, toolBarManager);

 		

-		createContent(getSectionClient(), fConfigurationPage.getWidgetToolkit());

+		createContent(getSectionClient(), widgetToolkit);

 	}

 

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/ILaunchConfigurationGUIelement.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/ILaunchConfigurationGUIelement.java
index cd58ec3..ff0db23 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/ILaunchConfigurationGUIelement.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/ILaunchConfigurationGUIelement.java
@@ -11,19 +11,15 @@
 

 package org.eclipse.efm.execution.configuration.common.ui.api;

 

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-

-

 public interface ILaunchConfigurationGUIelement {

 

 	///////////////////////////////////////////////////////////////////////////

-	// Form / Widget Toolkit

+	// Widget Toolkit

 	///////////////////////////////////////////////////////////////////////////

 

-	public FormToolkit getFormToolkit();

-

 	public IWidgetToolkit getWidgetToolkit();

+	

+	public AbstractConfigurationPage[] getConfigurationPages();

 

 

 	///////////////////////////////////////////////////////////////////////////

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/IWidgetToolkit.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/IWidgetToolkit.java
index 31f8382..d21bfb1 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/IWidgetToolkit.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/IWidgetToolkit.java
@@ -26,7 +26,6 @@
 import org.eclipse.swt.widgets.Button;

 import org.eclipse.swt.widgets.Combo;

 import org.eclipse.swt.widgets.Composite;

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

 import org.eclipse.swt.widgets.Group;

 import org.eclipse.swt.widgets.Label;

 import org.eclipse.swt.widgets.Text;

@@ -43,7 +42,20 @@
 	 * @param control the receiver

 	 * @param visible visible the new visibility state

 	 */

-	abstract public void setVisibleAndEnabled(Control control, boolean visible);

+	abstract public void setVisibleAndEnabled(Composite aComposite, boolean visible);

+	

+	public default void propagateVisibility(Composite aComposite, boolean visible) { 

+		aComposite.setVisible(visible);

+

+		Object gd = aComposite.getLayoutData();

+		if (gd instanceof GridData) {

+			GridData data = (GridData) gd;

+			data.exclude = (! visible);

+			aComposite.requestLayout();

+		} else {

+			//

+		}

+	}

 	

 

 	/**

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertBehaviorSelectionConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertBehaviorSelectionConfigurationProfile.java
index 7730eb7..5c091f6 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertBehaviorSelectionConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertBehaviorSelectionConfigurationProfile.java
@@ -12,7 +12,6 @@
  *******************************************************************************/

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

 

-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;

@@ -199,20 +198,6 @@
 	}

 

 

-	private void setEnableGroupHOJPage(ILaunchConfiguration configuration) {

-		try {

-			String modelAnalysisProfile = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-

-			setVisibleAndEnabled( modelAnalysisProfile.equals(

-					ANALYSIS_PROFILE_MODEL_COVERAGE_BEHAVIOR) );

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-		}

-	}

-

-

 	@Override

 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

 //		fHoJBeginStep.setDefaults(configuration);

@@ -270,8 +255,6 @@
 

 	@Override

 	public void initializeFrom(ILaunchConfiguration configuration) {

-		setEnableGroupHOJPage(configuration);

-

 		fHoJBeginStep.initializeFrom(configuration);

 		fHoJHeuristic.initializeFrom(configuration);

 		fHoJStop.initializeFrom(configuration);

@@ -295,8 +278,6 @@
 

 	@Override

 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

-		setEnableGroupHOJPage(configuration);

-

 		fHoJBeginStep.performApply(configuration);

 		fHoJHeuristic.performApply(configuration);

 		fHoJStop.performApply(configuration);

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 574fdac..7178da6 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
@@ -93,8 +93,8 @@
 		fCompositeStack.layout();

 	}

 

-	public void setVisibleProfilePage(String profile) {

-		switch ( profile ) {

+	public void setVisibleProfilePage(String analysisProfile) {

+		switch ( analysisProfile ) {

 		case ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION:

 			setVisibleProfilePage( fTransitionCoveragePage );

 			break;

@@ -149,16 +149,9 @@
 		fTransitionCoveragePage.initializeFrom(configuration);

 	}

 

-	public void performApplyExploration(

-			ILaunchConfigurationWorkingCopy configuration) {

-		setEnableGroupExplorationPage(configuration);

-	}

-

 

 	@Override

 	public void applyUpdatesOnFieldValuesFrom(ILaunchConfigurationWorkingCopy configuration) {

-		performApplyExploration(configuration);

-

 		// BEHAVIOR SELECTION : HIT OR JUMP

 		fBehaviorSelectionPage.performApply(configuration);

 

@@ -183,4 +176,14 @@
 		return new FieldValidationReturn(true, null);

 	}

 

+	

+	///////////////////////////////////////////////////////////////////////////

+	// Model Analysis Profile changed

+	//

+	@Override

+	public void handleModelAnalysisProfileSelectionChanged(String analysisProfile) {

+		setVisibleProfilePage(analysisProfile);

+	}

+

+

 }

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertTransitionCoverageConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertTransitionCoverageConfigurationProfile.java
index 7778d93..26325cd 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertTransitionCoverageConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/expert/ExpertTransitionCoverageConfigurationProfile.java
@@ -368,20 +368,6 @@
 	}

 

 

-	private void setEnableGroupTCPage(ILaunchConfiguration configuration) {

-		try {

-			String modelAnalysisProfile = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-

-			setVisibleAndEnabled( modelAnalysisProfile.equals(

-					ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION) );

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-		}

-	}

-

-

 	@Override

 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

 //		fTCBeginStep.setDefaults(configuration);

@@ -462,8 +448,6 @@
 

 	@Override

 	public void initializeFrom(ILaunchConfiguration configuration) {

-		setEnableGroupTCPage(configuration);

-

 		fTCBeginStep.initializeFrom(configuration);

 		fTCStop.initializeFrom(configuration);

 		fTCMinimize.initializeFrom(configuration);

@@ -527,7 +511,6 @@
 					ATTR_TRANSITION_COVERAGE_DIRECTIVE_TRACE_HEURISTIC,

 					DIRECTIVE_TRACE_HEURISTIC_COMBO_ITEM_SMART);

 		} catch (CoreException e) {

-			// TODO Auto-generated catch block

 			e.printStackTrace();

 		}

 

@@ -563,8 +546,6 @@
 

 	@Override

 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

-		setEnableGroupTCPage(configuration);

-

 		fTCBeginStep.performApply(configuration);

 		fTCStop.performApply(configuration);

 		fTCMinimize.performApply(configuration);

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 6ebce80..0995df4 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
@@ -21,7 +21,6 @@
 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.FieldEditor;

-import org.eclipse.jface.action.ToolBarManager;

 import org.eclipse.swt.SWT;

 import org.eclipse.swt.custom.CTabFolder;

 import org.eclipse.swt.custom.CTabItem;

@@ -33,11 +32,9 @@
 

 public class OverviewAnalysisProfileSection extends AbstractConfigurationSection {

 

-	public OverviewAnalysisProfileSection(

-			AbstractConfigurationPage configurationPage,

-			Composite parent, ToolBarManager toolBarManager)

+	public OverviewAnalysisProfileSection(AbstractConfigurationPage configurationPage)

 	{

-		super(configurationPage, parent, toolBarManager);

+		super(configurationPage);

 	}

 

 	private FieldEditor[] contentFieldEdit;

@@ -242,6 +239,10 @@
 		CTabItem selectionTabItem = fTabFolder.getItem( fTabFolder.getSelectionIndex() );

 		fModelAnalysisProfile = selectionTabItem.getText();

 

+		for( AbstractConfigurationPage confPage : getConfigurationPages() ) {

+			confPage.handleModelAnalysisProfileSelectionChanged(fModelAnalysisProfile);

+		}

+		

 //		getConfigurationPage().propagateGUIupdate();

 	}

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewConfigurationPage.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewConfigurationPage.java
index 7cd9590..b9d38a4 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewConfigurationPage.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewConfigurationPage.java
@@ -77,6 +77,8 @@
 

 	public OverviewConfigurationPage(ILaunchConfigurationGUIelement masterGUIelement) {

 		super(masterGUIelement);

+		

+		fAnalysisProfileSection = new OverviewAnalysisProfileSection(this);

 	}

 

 

@@ -215,8 +217,9 @@
 		Action[] toputinbar = getActionsByStringKey(new String[]{"action_apply_changes"});

 		GenericCompositeCreator.fillToolBar(toolBarManager, toputinbar);

 

-		OverviewWorkspaceDataSection wfnsc =

-				new OverviewWorkspaceDataSection(this, parent, toolBarManager);

+		OverviewWorkspaceDataSection wfnsc = new OverviewWorkspaceDataSection(this);

+		wfnsc.createControl(parent, toolBarManager, widgetToolkit);

+		

 		FieldEditor[] editors = wfnsc.getFieldEditors();

 		fWorkspaceRootLocationStringField = (StringFieldEditor) editors[0];

 		fWorkspaceOuputFolderNameStringField = (StringFieldEditor) editors[1];

@@ -228,7 +231,8 @@
 		ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);

 		Action[] toputinbar = getActionsByStringKey(new String[]{"action_apply_changes"});

 		GenericCompositeCreator.fillToolBar(toolBarManager, toputinbar);

-		fAnalysisProfileSection = new OverviewAnalysisProfileSection(this, parent, toolBarManager);

+		

+		fAnalysisProfileSection.createControl(parent, toolBarManager, widgetToolkit);

 	}

 

 

@@ -353,4 +357,5 @@
 		return new FieldValidationReturn(isValid, messageToSend);

 	}

 

+

 }

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 d7f6789..ab3023d 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
@@ -221,6 +221,14 @@
 						"&Enable Observable / Controllable Configuration",

 						comp, false);

 

+		fEnabledTraceConfigurationBooleanField.addSelectionListener(

+				new SelectionAdapter() {

+					@Override

+					public void widgetSelected(SelectionEvent e) {

+						handleEnablingTraceConfiguration();

+					}

+				});

+

 

 		fGroupObservable  = widgetToolkit.createGroup(parent,

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

@@ -248,7 +256,7 @@
 	}

 

 

-	private void updateEnablingTraceConfiguration() {

+	private void handleEnablingTraceConfiguration() {

 		boolean enabled =

 				fEnabledTraceConfigurationBooleanField.getBooleanValue();

 

@@ -309,7 +317,7 @@
 		fObservableStringField.initializeFrom(configuration);

 		fControllableStringField.initializeFrom(configuration);

 

-		updateEnablingTraceConfiguration();

+		handleEnablingTraceConfiguration();

 	}

 

 	@Override

@@ -327,8 +335,6 @@
 

 		fObservableStringField.performApply(configuration);

 		fControllableStringField.performApply(configuration);

-

-		updateEnablingTraceConfiguration();

 	}

 

 

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTransitionCoverageConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTransitionCoverageConfigurationProfile.java
index 3d71cf1..1204119 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTransitionCoverageConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/page/overview/OverviewTransitionCoverageConfigurationProfile.java
@@ -92,8 +92,7 @@
 			new SelectionAdapter() {

 				@Override

 				public void widgetSelected(SelectionEvent e) {

-					fConfigurationPage.propagateVisibility(fCompDetailedSelection,

-							fEnabledDetailedSelectionBooleanField.getBooleanValue());

+					handleEnablingDetailedSelection();

 				}

 			});

 

@@ -271,20 +270,11 @@
 	}

 

 

-//	@Override

-//	public void setVisible(boolean visible) {

-//		fConfigurationPage.propagateVisibility(parent,visible);

-//

-//		if( visible ) {

-//			if( fEnabledDetailedSelectionBooleanField.getBooleanValue() )

-//			{

-//				fConfigurationPage.propagateVisibility(fCompDetailedSelection, true);

-//			}

-//			else {

-//				fConfigurationPage.propagateVisibility(fCompDetailedSelection, false);

-//			}

-//		}

-//	}

+	private void handleEnablingDetailedSelection() {

+		fConfigurationPage.propagateVisibility(fCompDetailedSelection,

+				fEnabledDetailedSelectionBooleanField.getBooleanValue());

+	}

+

 

 	private void initTransitionTable() {

 		loadTransitionListToBeSelected();

@@ -467,8 +457,7 @@
 

 		fEnabledDetailedSelectionBooleanField.initializeFrom(configuration);

 

-		fConfigurationPage.propagateVisibility(fCompDetailedSelection,

-				fEnabledDetailedSelectionBooleanField.getBooleanValue());

+		handleEnablingDetailedSelection();

 

 		try {

 			fSelectedTransitionsList = new ArrayList<String>();

@@ -493,9 +482,6 @@
 	{

 		fEnabledDetailedSelectionBooleanField.performApply(configuration);

 

-//		fConfigurationPage.propagateVisibility(fCompDetailedSelection,

-//				fEnabledDetailedSelectionBooleanField.getBooleanValue());

-

 		configuration.setAttribute(

 				ATTR_TRANSITION_COVERAGE_SELECTION, fSelectedTransitionsList);

 	}

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 a106369..bf26fea 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
@@ -18,16 +18,13 @@
 import org.eclipse.efm.execution.configuration.common.ui.api.IWidgetToolkit;

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

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

-import org.eclipse.jface.action.ToolBarManager;

 import org.eclipse.swt.widgets.Composite;

 

 public class OverviewWorkspaceDataSection extends AbstractConfigurationSection {

 

-	public OverviewWorkspaceDataSection(

-			AbstractConfigurationPage configurationPage,

-			Composite parent, ToolBarManager toolBarManager)

+	public OverviewWorkspaceDataSection(AbstractConfigurationPage configurationPage)

 	{

-		super(configurationPage, parent, toolBarManager);

+		super(configurationPage);

 	}

 

 

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 25a46f7..9a0b237 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
@@ -330,23 +330,10 @@
 

 

 			if ( ! modelAnalysisProfile.equals(ANALYSIS_PROFILE_MODEL_EXPLORATION) ) {

-//				fBFSButton.setEnabled(false);

-//				fDFSButton.setEnabled(false);

-//				fRFSButton.setEnabled(false);

-

-//				groupAnalyzeStrategy.setVisible(false);

 				propagateVisibility(groupAnalyzeStrategy,false);

 				propagateVisibility(groupInclusionCriterion,false);

-

-				fBFSButton.setSelection(false);

-				fDFSButton.setSelection(false);

-				fRFSButton.setSelection(false);

 			}

 			else {

-//				fBFSButton.setEnabled(true);

-//				fDFSButton.setEnabled(true);

-//				fRFSButton.setEnabled(true);

-				groupAnalyzeStrategy.setVisible(true);

 				propagateVisibility(groupAnalyzeStrategy,true);

 				propagateVisibility(groupInclusionCriterion,true);

 

@@ -369,7 +356,6 @@
 			}

 

 		} catch (CoreException e) {

-			// TODO Auto-generated catch block

 			e.printStackTrace();

 		}

 	}

@@ -398,7 +384,6 @@
 //			}

 //

 //		} catch (CoreException e) {

-//			// TODO Auto-generated catch block

 //			e.printStackTrace();

 //		}

 //	}

@@ -445,4 +430,28 @@
 //		}

 		return new FieldValidationReturn(true, null);

 	}

+

+

+	///////////////////////////////////////////////////////////////////////////

+	// Model Analysis Profile changed

+	//

+	@Override

+	public void handleModelAnalysisProfileSelectionChanged(String analysisProfile) {

+		switch ( analysisProfile ) {

+		case ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION:

+		case ANALYSIS_PROFILE_MODEL_COVERAGE_BEHAVIOR:

+		case ANALYSIS_PROFILE_MODEL_TEST_OFFLINE:

+			propagateVisibility(groupAnalyzeStrategy   , false);

+			propagateVisibility(groupInclusionCriterion, false);

+			

+			break;

+			

+		case ANALYSIS_PROFILE_MODEL_EXPLORATION:

+		default:

+			propagateVisibility(groupAnalyzeStrategy   , true);

+			propagateVisibility(groupInclusionCriterion, true);

+			break;

+		}

+	}

+

 }

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 c5ee8a4..a2c7870 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
@@ -12,16 +12,16 @@
  *******************************************************************************/

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

 

-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.AbstractConfigurationProfile;

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

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

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

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

-import org.eclipse.efm.execution.configuration.common.ui.util.GenericCompositeCreator;

 import org.eclipse.swt.SWT;

+import org.eclipse.swt.events.SelectionAdapter;

+import org.eclipse.swt.events.SelectionEvent;

 import org.eclipse.swt.layout.GridData;

 import org.eclipse.swt.widgets.Composite;

 import org.eclipse.swt.widgets.Group;

@@ -84,11 +84,28 @@
 						ATTR_BASIC_TRACE_ENABLED_GENERATION,

 						"&Enabled Generation", comp, false);

 

+		fBasicTraceEnabledGenerationBooleanField.addSelectionListener(

+				new SelectionAdapter() {

+					@Override

+					public void widgetSelected(SelectionEvent e) {

+						handleEnablingGeneration();

+					}

+				});

+

 		createBasicConfigurationComponent(parent, widgetToolkit);

 

 		createObservableSelectionComponent(parent, widgetToolkit);

 	}

 

+	private void handleEnablingGeneration() {

+		fConfigurationPage.propagateVisibility(groupBasicConfiguration,

+				fBasicTraceEnabledGenerationBooleanField.getBooleanValue() );

+		

+		fConfigurationPage.propagateVisibility(groupBasicObservable,

+				fBasicTraceEnabledGenerationBooleanField.getBooleanValue() );

+	}

+

+

 	private void createBasicConfigurationComponent(Composite parent, IWidgetToolkit widgetToolkit) {

 		groupBasicConfiguration = widgetToolkit.createGroup(parent,

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

@@ -331,76 +348,30 @@
 				DEFAULT_BASIC_TRACE_FORMAT_ELEMENT_LIST);

 	}

 

-	private String getAnalysisProfile(ILaunchConfiguration configuration) {

-		String modelAnalysisProfile;

-		try {

-			modelAnalysisProfile = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-			modelAnalysisProfile = "";

-		}

-		return modelAnalysisProfile;

-	}

-

-	private boolean getBasicTraceEnableGeneration(ILaunchConfiguration configuration) {

-		boolean basicTraceEnableGeneration;

-		try {

-			basicTraceEnableGeneration = configuration.getAttribute(ATTR_BASIC_TRACE_ENABLED_GENERATION, false);

-		} catch (CoreException e) {

-			e.printStackTrace();

-			basicTraceEnableGeneration = false;

-		}

-		return basicTraceEnableGeneration;

-	}

-

-	private void updateGreyedOutAreas(String modelAnalysisProfile, boolean basicTraceEnableGeneration) {

-		if ( modelAnalysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) ) {

-			fBasicTraceEnabledGenerationBooleanField.setEnabled(false);

-			GenericCompositeCreator.recursiveSetEnabled(groupBasicConfiguration, false);

-			GenericCompositeCreator.recursiveSetEnabled(groupBasicObservable, false);

-		}

-		else {

-			fBasicTraceEnabledGenerationBooleanField.setEnabled(true);

-			if (basicTraceEnableGeneration) {

-				GenericCompositeCreator.recursiveSetEnabled(groupBasicConfiguration, true);

-				GenericCompositeCreator.recursiveSetEnabled(groupBasicObservable, true);

-			} else {

-				GenericCompositeCreator.recursiveSetEnabled(groupBasicConfiguration, false);

-				GenericCompositeCreator.recursiveSetEnabled(groupBasicObservable, false);

-			}

-			fBasicTraceNormalizationBooleanField.setEnabled(true);

-			fBasicTraceShowInitializationBooleanField.setEnabled(true);

-		}

-	}

 

 	@Override

 	public void initializeFrom(ILaunchConfiguration configuration) {

-		String analysisProfile = getAnalysisProfile(configuration);

-		boolean basicTraceEnableGeneration = getBasicTraceEnableGeneration(configuration);

-		updateGreyedOutAreas(analysisProfile, basicTraceEnableGeneration);

+		fBasicTraceEnabledGenerationBooleanField.initializeFrom(configuration);	

+		

+		handleEnablingGeneration();

 

-		if ( ! analysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) ) {

-			fBasicTraceEnabledGenerationBooleanField.initializeFrom(configuration);

-			fBasicTraceFolderNameStringField.initializeFrom(configuration);

-			fBasicTraceFileNameStringField.initializeFrom(configuration);

-			fBasicTraceNormalizationBooleanField.initializeFrom(configuration);

-			fBasicTraceShowInitializationBooleanField.initializeFrom(configuration);

+		fBasicTraceFolderNameStringField.initializeFrom(configuration);

+		fBasicTraceFileNameStringField.initializeFrom(configuration);

+		fBasicTraceNormalizationBooleanField.initializeFrom(configuration);

+		fBasicTraceShowInitializationBooleanField.initializeFrom(configuration);

 

-			fBasicTraceAllExternalInputComBooleanField.initializeFrom(configuration);

-			fBasicTraceAllExternalOutputComBooleanField.initializeFrom(configuration);

-			fBasicTraceAllInternalInputComBooleanField.initializeFrom(configuration);

-			fBasicTraceAllInternalOutputComBooleanField.initializeFrom(configuration);

+		fBasicTraceAllExternalInputComBooleanField.initializeFrom(configuration);

+		fBasicTraceAllExternalOutputComBooleanField.initializeFrom(configuration);

+		fBasicTraceAllInternalInputComBooleanField.initializeFrom(configuration);

+		fBasicTraceAllInternalOutputComBooleanField.initializeFrom(configuration);

 

-			fBasicTraceTimeBooleanField.initializeFrom(configuration);

-			fBasicTraceAllVariableBooleanField.initializeFrom(configuration);

-			fBasicTraceAllTransitionBooleanField.initializeFrom(configuration);

-			fBasicTraceAllStateBooleanField.initializeFrom(configuration);

+		fBasicTraceTimeBooleanField.initializeFrom(configuration);

+		fBasicTraceAllVariableBooleanField.initializeFrom(configuration);

+		fBasicTraceAllTransitionBooleanField.initializeFrom(configuration);

+		fBasicTraceAllStateBooleanField.initializeFrom(configuration);

 

-			fBasicTraceObservableTraceDetailsStringField.initializeFrom(configuration);

-			fBasicTraceObservableFormatStringField.initializeFrom(configuration);

-		}

+		fBasicTraceObservableTraceDetailsStringField.initializeFrom(configuration);

+		fBasicTraceObservableFormatStringField.initializeFrom(configuration);

 	}

 

 	@Override

@@ -425,9 +396,6 @@
 

 		fBasicTraceObservableTraceDetailsStringField.performApply(configuration);

 		fBasicTraceObservableFormatStringField.performApply(configuration);

-

-		updateGreyedOutAreas(getAnalysisProfile(configuration),

-				getBasicTraceEnableGeneration(configuration));

 	}

 

 	@Override

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 76d7c76..babdaaf 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
@@ -13,7 +13,6 @@
 

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

 

-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;

@@ -23,11 +22,15 @@
 import org.eclipse.efm.execution.configuration.common.ui.editors.IntegerFieldEditor;

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

 import org.eclipse.swt.SWT;

+import org.eclipse.swt.events.SelectionAdapter;

+import org.eclipse.swt.events.SelectionEvent;

 import org.eclipse.swt.layout.GridData;

 import org.eclipse.swt.widgets.Composite;

 import org.eclipse.swt.widgets.Group;

 

 public class TestGenerationConfigurationPage extends AbstractConfigurationPage {

+	

+	private Group groupTraceExtension;

 	private Group groupExtensionObjective;

 

 	private BooleanFieldEditor fTraceExtensionEnabledBooleanField;

@@ -69,20 +72,28 @@
 	}

 

 	private void createExtensionSelectionComponent(Composite parent, IWidgetToolkit widgetToolkit) {

-		Group group = widgetToolkit.createGroup(parent,

+		groupTraceExtension = widgetToolkit.createGroup(parent,

 				"Trace Extension for Test Generation Purpose",

 				1, 1, GridData.FILL_HORIZONTAL);

 

 		Composite comp = widgetToolkit.createComposite(

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

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

 

 		fTraceExtensionEnabledBooleanField = new BooleanFieldEditor(

 				this, ATTR_ENABLED_TRACE_EXTENSION,

 				"&Enabled Extension", comp, false);

+		

+		fTraceExtensionEnabledBooleanField.addSelectionListener(

+				new SelectionAdapter() {

+					@Override

+					public void widgetSelected(SelectionEvent e) {

+						handleEnablingTraceExtension();

+					}

+				});

 

 

 		groupExtensionObjective = widgetToolkit.createGroup(

-				group, "Extension of Traces to reach Observables",

+				groupTraceExtension, "Extension of Traces to reach Observables",

 				1, 1, GridData.FILL_HORIZONTAL);

 

 		comp = widgetToolkit.createComposite(

@@ -108,27 +119,12 @@
 				DEFAULT_TRACE_EXTENSION_OBJECTIVE, SWT.MULTI);

 	}

 

-

-	private void setEnableExtensionPage(ILaunchConfiguration configuration) {

-		String fAnalysisProfile;

-		boolean localEnable;

-

-		try {

-			fAnalysisProfile = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-

-			localEnable = fTraceExtensionEnabledBooleanField.getBooleanValue() &&

-				(! fAnalysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) );

-

-			fTraceExtensionEvaluationStepsLimitIntegerField.setEnabled(localEnable);

-

-			propagateVisibility(groupExtensionObjective, localEnable);

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-		}

+	private void handleEnablingTraceExtension() {

+		propagateVisibility(groupExtensionObjective,

+				fTraceExtensionEnabledBooleanField.getBooleanValue() );

 	}

 

+

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

 	//                              Fields Values Management

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

@@ -158,35 +154,31 @@
 

 	@Override

 	public void initializeFieldValuesFrom(ILaunchConfiguration configuration) {

-		String analysisProfile;

-		try {

-			analysisProfile = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-			analysisProfile = "";

-		}

+		fTraceExtensionEnabledBooleanField.initializeFrom(configuration);

+		fTraceExtensionEvaluationStepsLimitIntegerField.initializeFrom(configuration);

+		fTraceExtensionObjectiveStringField.initializeFrom(configuration);

 

-		if ( analysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) ) {

-			fTraceExtensionEnabledBooleanField.setEnabled(false);

-		}

-		else {

-			fTraceExtensionEnabledBooleanField.setEnabled(true);

+//		String analysisProfile;

+//		try {

+//			analysisProfile = configuration.getAttribute(

+//					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

+//		}

+//		catch (CoreException e) {

+//			analysisProfile = "";

+//

+//			e.printStackTrace();

+//		}

+//

+//		if ( analysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) ) {

+//			fTraceExtensionEnabledBooleanField.setEnabled(false);

+//		}

 

-			fTraceExtensionEnabledBooleanField.initializeFrom(configuration);

-			fTraceExtensionEvaluationStepsLimitIntegerField.initializeFrom(configuration);

-			fTraceExtensionObjectiveStringField.initializeFrom(configuration);

-		}

-

-		setEnableExtensionPage(configuration);

+		handleEnablingTraceExtension();

 

 

 		fBasicTracePage.initializeFrom(configuration);

-		fBasicTracePage.setVisibleAndEnabled(true);

 

 		fTTCNTracePage.initializeFrom(configuration);

-		fTTCNTracePage.setVisibleAndEnabled(true);

 	}

 

 

@@ -195,8 +187,6 @@
 	{

 		fTraceExtensionEnabledBooleanField.performApply(configuration);

 

-		setEnableExtensionPage(configuration);

-

 		fTraceExtensionEvaluationStepsLimitIntegerField.performApply(configuration);

 		fTraceExtensionObjectiveStringField.performApply(configuration);

 

@@ -223,5 +213,39 @@
 		return new FieldValidationReturn(true, null);

 	}

 

+	

+	///////////////////////////////////////////////////////////////////////////

+	// Model Analysis Profile changed

+	//

+	@Override

+	public void handleModelAnalysisProfileSelectionChanged(String analysisProfile) {

+		switch ( analysisProfile ) {

+		case ANALYSIS_PROFILE_MODEL_TEST_OFFLINE:

+			groupTraceExtension.setEnabled(false);

+			

+			propagateVisibility(groupExtensionObjective, false);

+			

+			setVisibleAndEnabled(fBasicTracePage.getSection(), false);

+			setVisibleAndEnabled(fTTCNTracePage.getSection() , false);

+			

+			break;

+			

+		case ANALYSIS_PROFILE_MODEL_COVERAGE_TRANSITION:

+		case ANALYSIS_PROFILE_MODEL_COVERAGE_BEHAVIOR:

+		case ANALYSIS_PROFILE_MODEL_EXPLORATION:

+		default:

+			groupTraceExtension.setEnabled(true);

+			

+			propagateVisibility(groupExtensionObjective, true);

+			

+			setVisibleAndEnabled(fBasicTracePage.getSection(), true);

+			setVisibleAndEnabled(fTTCNTracePage.getSection() , true);

+

+			

+			handleEnablingTraceExtension();;

+			break;

+		}

+	}

+

 

 }

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 b804820..551f929 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
@@ -12,7 +12,6 @@
  *******************************************************************************/

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

 

-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;

@@ -20,8 +19,9 @@
 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.editors.StringFieldEditor;

-import org.eclipse.efm.execution.configuration.common.ui.util.GenericCompositeCreator;

 import org.eclipse.swt.SWT;

+import org.eclipse.swt.events.SelectionAdapter;

+import org.eclipse.swt.events.SelectionEvent;

 import org.eclipse.swt.layout.GridData;

 import org.eclipse.swt.widgets.Composite;

 import org.eclipse.swt.widgets.Group;

@@ -85,6 +85,15 @@
 						ATTR_TTCN_ENABLED_GENERATION,

 						"&Generation", comp, false);

 

+		fTTCNEnabledGenerationBooleanField.addSelectionListener(

+				new SelectionAdapter() {

+					@Override

+					public void widgetSelected(SelectionEvent e) {

+						handleEnablingGeneration();

+					}

+				});

+

+		

 		comp = widgetToolkit.createComposite(

 				group, 2, 1, GridData.FILL_HORIZONTAL);

 

@@ -94,11 +103,38 @@
 						"&Customization", comp,

 						DEFAULT_TTCN_ENABLED_CUSTOMIZATION);

 

+		fTTCNEnabledAdaptationModuleBooleanField.addSelectionListener(

+				new SelectionAdapter() {

+					@Override

+					public void widgetSelected(SelectionEvent e) {

+						handleEnablingAdaptationModule();

+					}

+				});

+

+		

 		createTTCNConfigurationComponent(parent, widgetToolkit);

 

 		createTTCNModuleConfigurationComponent(parent, widgetToolkit);

 	}

 

+	private void handleEnablingGeneration() {

+		fConfigurationPage.propagateVisibility(groupTTCNConfiguration,

+				fTTCNEnabledGenerationBooleanField.getBooleanValue() );

+		

+		fTTCNEnabledAdaptationModuleBooleanField.setEnabled(

+				fTTCNEnabledGenerationBooleanField.getBooleanValue() );

+		

+		fConfigurationPage.propagateVisibility(groupTTCNModule,

+				fTTCNEnabledAdaptationModuleBooleanField.getBooleanValue() &&

+				fTTCNEnabledGenerationBooleanField.getBooleanValue() );

+	}

+

+	private void handleEnablingAdaptationModule() {

+		fConfigurationPage.propagateVisibility(groupTTCNModule,

+				fTTCNEnabledAdaptationModuleBooleanField.getBooleanValue() &&

+				fTTCNEnabledGenerationBooleanField.getBooleanValue() );

+	}

+

 

 	private void createTTCNConfigurationComponent(Composite parent, IWidgetToolkit widgetToolkit) {

 		groupTTCNConfiguration = widgetToolkit.createGroup(parent,

@@ -410,83 +446,31 @@
 				DEFAULT_TTCN_TESTCASES_RECEIVING_IMPL);

 	}

 

-	private String getAnalysisProfile(ILaunchConfiguration configuration) {

-		String analysisProfile;

-		try {

-			analysisProfile = configuration.getAttribute(

-					ATTR_SPECIFICATION_MODEL_ANALYSIS_PROFILE, "");

-		}

-		catch (CoreException e) {

-			e.printStackTrace();

-			analysisProfile = "";

-		}

-		return analysisProfile;

-	}

-

-	private boolean getTTCNTraceEnableGeneration(ILaunchConfiguration configuration) {

-		boolean basicTraceEnableGeneration;

-		try {

-			basicTraceEnableGeneration = configuration.getAttribute(ATTR_TTCN_ENABLED_GENERATION, false);

-		} catch (CoreException e) {

-			e.printStackTrace();

-			basicTraceEnableGeneration = false;

-		}

-		return basicTraceEnableGeneration;

-	}

-

-	private void updateGreyedOutAreas(String analysisProfile, boolean TTCNEnableGeneration) {

-		if ( analysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) ) {

-			fTTCNEnabledGenerationBooleanField.setEnabled(false);

-			fTTCNEnabledAdaptationModuleBooleanField.setEnabled(false);

-

-			fTTCNEnabledAdaptationModuleBooleanField.setEnabled(false);

-			GenericCompositeCreator.recursiveSetEnabled(groupTTCNConfiguration, false);

-			GenericCompositeCreator.recursiveSetEnabled(groupTTCNModule, false);

-		}

-		else {

-			fTTCNEnabledGenerationBooleanField.setEnabled(true);

-			fTTCNEnabledAdaptationModuleBooleanField.setEnabled(true);

-			if (TTCNEnableGeneration) {

-				fTTCNEnabledAdaptationModuleBooleanField.setEnabled(true);

-				GenericCompositeCreator.recursiveSetEnabled(groupTTCNConfiguration, true);

-				boolean enabledAdaptation = fTTCNEnabledAdaptationModuleBooleanField.getBooleanValue();

-				GenericCompositeCreator.recursiveSetEnabled(groupTTCNModule, enabledAdaptation);

-			} else {

-				fTTCNEnabledAdaptationModuleBooleanField.setEnabled(false);

-				GenericCompositeCreator.recursiveSetEnabled(groupTTCNConfiguration, false);

-				GenericCompositeCreator.recursiveSetEnabled(groupTTCNModule, false);

-			}

-		}

-

-

-	}

-

 

 	@Override

 	public void initializeFrom(ILaunchConfiguration configuration) {

-		String analysisProfile = getAnalysisProfile(configuration);

-		boolean ttcn3TraceEnableGeneration = getTTCNTraceEnableGeneration(configuration);

-		updateGreyedOutAreas(analysisProfile, ttcn3TraceEnableGeneration);

-		if ( ! analysisProfile.equals(ANALYSIS_PROFILE_MODEL_TEST_OFFLINE ) ) {

-			fTTCNEnabledGenerationBooleanField.initializeFrom(configuration);

-			fTTCNEnabledAdaptationModuleBooleanField.initializeFrom(configuration);

-			fTTCNFolderNameStringField.initializeFrom(configuration);

-			fTTCNControlModuleNameStringField.initializeFrom(configuration);

-			fTTCNDeclarationsModuleNameStringField.initializeFrom(configuration);

-			fTTCNTemplatesModuleNameStringField.initializeFrom(configuration);

+		fTTCNEnabledGenerationBooleanField.initializeFrom(configuration);

+		fTTCNEnabledAdaptationModuleBooleanField.initializeFrom(configuration);

 

-			fTTCNTestcasesModuleNameStringField.initializeFrom(configuration);

-			fTTCNTestcasesStartingWrapperStringField.initializeFrom(configuration);

-			fTTCNTestcasesEndingWrapperStringField.initializeFrom(configuration);

-			fTTCNTestcasesSendingWrapperStringField.initializeFrom(configuration);

-			fTTCNTestcasesReceivingWrapperStringField.initializeFrom(configuration);

+		handleEnablingGeneration();

+		handleEnablingAdaptationModule();

 

-			fTTCNAdaptationModuleNameStringField.initializeFrom(configuration);

-			fTTCNAdaptationUtilsImplStringField.initializeFrom(configuration);

-			fTTCNTestcasesStartingEndingImplStringField.initializeFrom(configuration);

-			fTTCNTestcasesSendingImplStringField.initializeFrom(configuration);

-			fTTCNTestcasesReceivingImplStringField.initializeFrom(configuration);

-		}

+		fTTCNFolderNameStringField.initializeFrom(configuration);

+		fTTCNControlModuleNameStringField.initializeFrom(configuration);

+		fTTCNDeclarationsModuleNameStringField.initializeFrom(configuration);

+		fTTCNTemplatesModuleNameStringField.initializeFrom(configuration);

+

+		fTTCNTestcasesModuleNameStringField.initializeFrom(configuration);

+		fTTCNTestcasesStartingWrapperStringField.initializeFrom(configuration);

+		fTTCNTestcasesEndingWrapperStringField.initializeFrom(configuration);

+		fTTCNTestcasesSendingWrapperStringField.initializeFrom(configuration);

+		fTTCNTestcasesReceivingWrapperStringField.initializeFrom(configuration);

+

+		fTTCNAdaptationModuleNameStringField.initializeFrom(configuration);

+		fTTCNAdaptationUtilsImplStringField.initializeFrom(configuration);

+		fTTCNTestcasesStartingEndingImplStringField.initializeFrom(configuration);

+		fTTCNTestcasesSendingImplStringField.initializeFrom(configuration);

+		fTTCNTestcasesReceivingImplStringField.initializeFrom(configuration);

 	}

 

 	@Override

@@ -512,9 +496,8 @@
 		fTTCNTestcasesSendingImplStringField.performApply(configuration);

 		fTTCNTestcasesReceivingImplStringField.performApply(configuration);

 

-		String analysisProfile = getAnalysisProfile(configuration);

-		boolean ttcn3TraceEnableGeneration = getTTCNTraceEnableGeneration(configuration);

-		updateGreyedOutAreas(analysisProfile, ttcn3TraceEnableGeneration);

+//		String analysisProfile = getAnalysisProfile(configuration);

+//		updateGreyedOutAreas(analysisProfile, fTTCNEnabledGenerationBooleanField.getBooleanValue());

 	}

 

 	@Override

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/util/StandardWidgetToolkit.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/util/StandardWidgetToolkit.java
index 21e510e..ea7de5d 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/util/StandardWidgetToolkit.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/util/StandardWidgetToolkit.java
@@ -22,7 +22,6 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
@@ -36,10 +35,10 @@
 	 * @param control the receiver
 	 * @param visible visible the new visibility state
 	 */
-	public void setVisibleAndEnabled(Control control, boolean visible) {
-		control.setVisible(visible);
+	public void setVisibleAndEnabled(Composite aComposite, boolean visible) {
+		propagateVisibility(aComposite, visible);
 		
-		control.setEnabled(visible);
+		aComposite.setEnabled(visible);
 	}
 	
 	
diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/HelpContextIdConstants.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/HelpContextIdConstants.java
index 5ceba69..02b3359 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/HelpContextIdConstants.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/HelpContextIdConstants.java
@@ -20,7 +20,7 @@
 

 	public static final String sew_launch_tabgroup = CONTEXT_ID + ".sew_launch_tabgroup";

 

-	public static final String sew_launch_CommonCriteria_tab = CONTEXT_ID + ".sew_launch_CommonCriteria_tab";

+	public static final String sew_launch_Supervisor_tab = CONTEXT_ID + ".sew_launch_Supervisor_tab";

 

 	public static final String sew_launch_Main_tab = CONTEXT_ID + ".sew_launch_Main_tab";

 

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/LaunchConfigurationTabGroup.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/LaunchConfigurationTabGroup.java
index 8fc6c54..e4d3a3e 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/LaunchConfigurationTabGroup.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/LaunchConfigurationTabGroup.java
@@ -21,6 +21,7 @@
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;

 import org.eclipse.debug.ui.ILaunchConfigurationTab;

 import org.eclipse.debug.ui.RefreshTab;

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

 import org.eclipse.efm.execution.core.IWorkflowPreferenceConstants;

 import org.eclipse.efm.execution.core.SymbexPreferenceUtil;

 import org.eclipse.efm.execution.launchconfiguration.ui.tabs.SupervisorTab;

@@ -33,12 +34,19 @@
 

 public class LaunchConfigurationTabGroup extends AbstractLaunchConfigurationTabGroup {

 

-	protected OverviewTab fMainTab;

+	private AbstractConfigurationPage[] fConfigurationPages;

+	

+	protected OverviewTab fOverviewTab;

 

 	protected ExpertTab fExpertTab;

 

-	public OverviewTab getMainTab() {

-		return fMainTab;

+	

+	public AbstractConfigurationPage[] getConfigurationPages() {

+		return fConfigurationPages;

+	}

+

+	public OverviewTab getOverviewTab() {

+		return fOverviewTab;

 	}

 

 	public ExpertTab getExpertTab() {

@@ -51,11 +59,23 @@
 		ArrayList<ILaunchConfigurationTab> tabList =

 				new ArrayList<ILaunchConfigurationTab>();

 

-		fMainTab = new OverviewTab(this);

-		tabList.add( fMainTab );

+		ArrayList<AbstractConfigurationPage> confPageList =

+				new ArrayList<AbstractConfigurationPage>();

 

-		tabList.add( new SupervisorTab(this) );

-		tabList.add( new TestGenerationTab(this) );

+		// OverviewTab

+		fOverviewTab = new OverviewTab(this);

+		tabList.add( fOverviewTab );

+		confPageList.add( fOverviewTab.getConfigurationPage() );

+

+		// SupervisorTab

+		SupervisorTab supervisorTab = new SupervisorTab(this);

+		tabList.add( supervisorTab );

+		confPageList.add( supervisorTab.getConfigurationPage() );

+		

+		// TestGenerationTab

+		TestGenerationTab testGenerationTab = new TestGenerationTab(this);

+		tabList.add( testGenerationTab );

+		confPageList.add( testGenerationTab.getConfigurationPage() );

 

 		if( ILaunchManager.DEBUG_MODE.equals(mode) )

 		{

@@ -68,7 +88,9 @@
 					IWorkflowPreferenceConstants.PREF_EXPERT_MODE) )

 			{

 				fExpertTab = new ExpertTab(this);

+				

 				tabList.add( fExpertTab );

+				confPageList.add( fExpertTab.getConfigurationPage() );

 			}

 

 			if( LaunchDelegate.ENABLED_SYMBEX_DEVELOPER_MODE_OPTION )

@@ -90,7 +112,13 @@
 

 		tabList.add( new CommonTab() );

 

-		setTabs( tabList.toArray( new ILaunchConfigurationTab[tabList.size()] ) );

+		setTabs( tabList.toArray(

+				new ILaunchConfigurationTab[tabList.size()] ) );

+		

+		fConfigurationPages = confPageList.toArray(

+				new AbstractConfigurationPage[confPageList.size()]);

+		

+

 	}

 

 

@@ -116,11 +144,9 @@
 

 	@Override

 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

-		// TODO Auto-generated method stub

 		super.performApply(configuration);

 

 		setDefaultAttributes(configuration);

 	}

 

-

 }

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 d230fa7..a0e34ea 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
@@ -12,9 +12,6 @@
  *******************************************************************************/

 package org.eclipse.efm.execution.launchconfiguration.ui.tabs;

 

-//import java.lang.reflect.Constructor;

-//import java.lang.reflect.InvocationTargetException;

-

 import org.eclipse.debug.core.ILaunchConfiguration;

 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;

 import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;

@@ -30,16 +27,15 @@
 import org.eclipse.swt.widgets.Display;

 import org.eclipse.ui.PlatformUI;

 import org.eclipse.ui.dialogs.ContainerSelectionDialog;

-import org.eclipse.ui.forms.widgets.FormToolkit;

 

-public abstract class AbstractSewLaunchConfigurationTab extends AbstractLaunchConfigurationTab implements ILaunchConfigurationGUIelement {

-

-	protected FormToolkit fFormToolkit;

+public abstract class AbstractSewLaunchConfigurationTab 

+		extends AbstractLaunchConfigurationTab

+		implements ILaunchConfigurationGUIelement {

 

 	protected IWidgetToolkit fWidgetToolkit;

 

 	protected LaunchConfigurationTabGroup fGroupTab;

-	protected AbstractConfigurationPage contentCompositeManager;

+	protected AbstractConfigurationPage fContentCompositeManager;

 

 	/**

 	 * Constructor

@@ -51,13 +47,12 @@
 		if (display == null) {

 			display = Display.getDefault();

 		}

-		fFormToolkit = new FormToolkit(display);

 

 		fWidgetToolkit = new StandardWidgetToolkit();

 

 		this.fGroupTab = groupTab;

 

-		this.contentCompositeManager = null;

+		this.fContentCompositeManager = null;

 	}

 

 

@@ -65,15 +60,27 @@
 		return fGroupTab;

 	}

 

-	public OverviewTab getMainTab() {

-		return fGroupTab.getMainTab();

+	public OverviewTab getOverviewTab() {

+		return fGroupTab.getOverviewTab();

 	}

+	

+	public AbstractConfigurationPage getConfigurationPage() {

+		return fContentCompositeManager;

+	}

+	

+

+	

+	@Override

+	public AbstractConfigurationPage[] getConfigurationPages() {

+		return fGroupTab.getConfigurationPages();

+	}

+

 

 	@Override

 	public void createControl(Composite parent) {

-		contentCompositeManager.createControl(parent, fWidgetToolkit);

+		fContentCompositeManager.createControl(parent, fWidgetToolkit);

 

-		setControl( contentCompositeManager.getControl() );

+		setControl( fContentCompositeManager.getControl() );

 

 		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), getHelpContextId());

 	}

@@ -82,17 +89,17 @@
 

 	@Override

 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {

-		contentCompositeManager.setDefaultFieldValues(configuration);

+		fContentCompositeManager.setDefaultFieldValues(configuration);

 	}

 

 	@Override

 	public void initializeFrom(ILaunchConfiguration configuration) {

-		contentCompositeManager.initializeFieldValuesFrom(configuration);

+		fContentCompositeManager.initializeFieldValuesFrom(configuration);

 	}

 

 	@Override

 	public void performApply(ILaunchConfigurationWorkingCopy configuration) {

-		contentCompositeManager.applyUpdatesOnFieldValuesFrom(configuration);

+		fContentCompositeManager.applyUpdatesOnFieldValuesFrom(configuration);

 	}

 

 	/**

@@ -100,7 +107,7 @@
 	 */

 	@Override

 	public boolean isValid(ILaunchConfiguration launchConfig) {

-		FieldValidationReturn fieldValidation = contentCompositeManager.areFieldsValid(launchConfig);

+		FieldValidationReturn fieldValidation = fContentCompositeManager.areFieldsValid(launchConfig);

 		if (fieldValidation.areFieldsValid()) {

 			setMessage(fieldValidation.getReason());

 		} else {

@@ -135,11 +142,6 @@
 	///////////////////////////////////////////////////////////////////////////

 

 	@Override

-	public FormToolkit getFormToolkit() {

-		return fFormToolkit;

-	}

-

-	@Override

 	public IWidgetToolkit getWidgetToolkit() {

 		return fWidgetToolkit;

 	}

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DebugTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DebugTab.java
index ec4d394..2c27fbb 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DebugTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DebugTab.java
@@ -22,7 +22,7 @@
 	public DebugTab(LaunchConfigurationTabGroup groupTab) {

 		super(groupTab);

 

-		contentCompositeManager = new DebugConfigurationPage(this);

+		fContentCompositeManager = new DebugConfigurationPage(this);

 

 		setHelpContextId(HelpContextIdConstants.sew_launch_Debug_tab);

 	}

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DeveloperTuningTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DeveloperTuningTab.java
index 8b31416..197a92a 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DeveloperTuningTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/DeveloperTuningTab.java
@@ -21,7 +21,7 @@
 	public DeveloperTuningTab(LaunchConfigurationTabGroup groupTab) {

 		super(groupTab);

 

-		contentCompositeManager = new DeveloperTuningConfigurationPage(this);

+		fContentCompositeManager = new DeveloperTuningConfigurationPage(this);

 

 		setHelpContextId(HelpContextIdConstants.sew_launch_Debug_tab);

 	}

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/ExpertTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/ExpertTab.java
index dc8c6e1..ae94df8 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/ExpertTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/ExpertTab.java
@@ -21,7 +21,7 @@
 	public ExpertTab(LaunchConfigurationTabGroup groupTab) {

 		super(groupTab);

 

-		contentCompositeManager = new ExpertConfigurationPage(this);

+		fContentCompositeManager = new ExpertConfigurationPage(this);

 

 		setHelpContextId(HelpContextIdConstants.sew_launch_Expert_tab);

 	}

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/OverviewTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/OverviewTab.java
index 5e3a5b9..b49b470 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/OverviewTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/OverviewTab.java
@@ -26,7 +26,7 @@
 	public OverviewTab(LaunchConfigurationTabGroup groupTab) {

 		super(groupTab);

 

-		contentCompositeManager = new OverviewConfigurationPage(this);

+		fContentCompositeManager = new OverviewConfigurationPage(this);

 

 		setHelpContextId(HelpContextIdConstants.sew_launch_Main_tab);

 	}

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/SupervisorTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/SupervisorTab.java
index 563287c..9c324fb 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/SupervisorTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/SupervisorTab.java
@@ -20,9 +20,9 @@
 	public SupervisorTab(LaunchConfigurationTabGroup groupTab) {

 		super(groupTab);

 

-		contentCompositeManager = new SupervisorConfigurationPage(this);

+		fContentCompositeManager = new SupervisorConfigurationPage(this);

 

-		setHelpContextId(HelpContextIdConstants.sew_launch_CommonCriteria_tab);

+		setHelpContextId(HelpContextIdConstants.sew_launch_Supervisor_tab);

 	}

 

 	@Override

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/TestGenerationTab.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/TestGenerationTab.java
index 8e88630..50c80cd 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/TestGenerationTab.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/ui/tabs/TestGenerationTab.java
@@ -25,7 +25,7 @@
 	public TestGenerationTab(LaunchConfigurationTabGroup groupTab) {

 		super(groupTab);

 

-		contentCompositeManager = new TestGenerationConfigurationPage(this);

+		fContentCompositeManager = new TestGenerationConfigurationPage(this);

 

 		setHelpContextId(HelpContextIdConstants.sew_launch_TestGeneration_tab);

 	}

diff --git a/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/AbstractSymbexWorkflowView.java b/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/AbstractSymbexWorkflowView.java
index 2287b18..16fc5d2 100644
--- a/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/AbstractSymbexWorkflowView.java
+++ b/execution/org.eclipse.efm.execution.ui.views/src/org/eclipse/efm/execution/ui/views/symbexlauncher/AbstractSymbexWorkflowView.java
@@ -27,7 +27,6 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.part.ViewPart;
 
@@ -44,14 +43,13 @@
 
 	protected void setupFormFrame() {
 		toolkit = new FormWidgetToolkit(parentComposite.getDisplay());
+		
 		scrollform = toolkit.createScrolledForm(parentComposite);
 		//scrollform.setText("Run Configuration");
 		GridLayout layout = new GridLayout(1, false);
 		scrollform.getBody().setLayout(layout);
 
 		createMessageDisplayGraphics();
-		//scrollform.addHelpListener(listener);
-		//this.setHelpContextId("org.eclipse.efm.runconfiguration.efm_runconf_commoncriteria_tab");
 	}
 
 
@@ -108,11 +106,6 @@
 	///////////////////////////////////////////////////////////////////////////
 
 	@Override
-	public FormToolkit getFormToolkit() {
-		return toolkit;
-	}
-
-	@Override
 	public IWidgetToolkit getWidgetToolkit() {
 		return toolkit;
 	}
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 9a9c85e..f2a452b 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
@@ -25,7 +25,6 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
@@ -50,14 +49,14 @@
 	 * @param control the receiver
 	 * @param visible visible the new visibility state
 	 */
-	public void setVisibleAndEnabled(Control control, boolean visible) {
-		if( control instanceof ExpandableComposite ) {
-			((ExpandableComposite)control).setExpanded(visible);
+	public void setVisibleAndEnabled(Composite aComposite, boolean visible) {
+		if( aComposite instanceof ExpandableComposite ) {
+			((ExpandableComposite)aComposite).setExpanded(visible);
 		} else {
-			control.setVisible(visible);
+			propagateVisibility(aComposite, visible);
 		}
 		
-		control.setEnabled(visible);
+		aComposite.setEnabled(visible);
 	}
 	
 
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 7a80fd4..5c65ad5 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,7 +12,6 @@
  *******************************************************************************/
 package org.eclipse.efm.execution.ui.views.symbexlauncher;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
@@ -54,7 +53,8 @@
 
 	//public Set<SectionCompositeCreator> compositeSections;
 
-	private ArrayList<AbstractConfigurationPage> compMakers;
+	private AbstractConfigurationPage[] fConfigurationPages;
+	
 
 	protected Composite tabbedCompositeMaster;
 	protected CTabFolder fTabFolder;
@@ -189,11 +189,9 @@
 	}
 
 	
-	//private Map<Integer, AbstractCompositeMaker> quickDico;
-
 	private void createSectionsContent(IWidgetToolkit widgetToolkit)
 	{
-		compMakers = new ArrayList<AbstractConfigurationPage>();
+		fConfigurationPages = new AbstractConfigurationPage[3];
 
 		createOverviewTabItem(widgetToolkit);
 
@@ -203,6 +201,12 @@
 
 		fTabFolder.setSelection(fOverviewTabItem);
 	}
+	
+	
+	@Override
+	public AbstractConfigurationPage[] getConfigurationPages() {
+		return fConfigurationPages;
+	}
 
 
 	private CTabItem fOverviewTabItem;
@@ -233,15 +237,7 @@
 			fOverviewTabItem.setControl(scrolledComposite);
 		}
 
-		compMakers.add(overviewPage);
-//		quickDico.put(1, overviewPage);
-
-
-//		GridLayout gl = new GridLayout(1, false);
-//		control.setLayout(gl);
-//
-//		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-//		control.setLayoutData(gd);
+		fConfigurationPages[0] = overviewPage;
 	}
 
 
@@ -269,8 +265,7 @@
 			fSupervisorTabItem.setControl(scrolledComposite);
 		}
 
-		compMakers.add(supervisorPage);
-//		quickDico.put(3, supervisorPage);
+		fConfigurationPages[1] = supervisorPage;
 	}
 
 
@@ -298,8 +293,7 @@
 			fTestGenTabItem.setControl(scrolledComposite);
 		}
 
-		compMakers.add(testGenPage);
-//		quickDico.put(3, testGenPage);
+		fConfigurationPages[2] = testGenPage;
 	}
 
 
@@ -312,7 +306,7 @@
 	///////////////////////////////////////////////////////////////////////////
 	// Action utils
 	//
-	public void launchConfiguration(
+	private void execLaunchConfiguration(
 			final ILaunchConfiguration configuration, final String mode)
 	{
 		saveLaunchConfiguration( configuration );
@@ -340,7 +334,7 @@
 		ILaunchConfigurationWorkingCopy rwConfiguration;
 		try {
 			rwConfiguration = configuration.getWorkingCopy();
-			for(AbstractConfigurationPage acm : compMakers) {
+			for(AbstractConfigurationPage acm : fConfigurationPages) {
 				acm.applyUpdatesOnFieldValuesFrom(rwConfiguration);
 			}
 			rwConfiguration.doSave();
@@ -368,7 +362,7 @@
 		action_launch_runconf = new Action() {
 			public void run() {
 				if( launchConfigurationManager.hasSelection() ) {
-					launchConfiguration(
+					execLaunchConfiguration(
 							launchConfigurationManager.getSelection(),
 							ILaunchManager.RUN_MODE);
 				} else {
@@ -384,7 +378,7 @@
 		action_launch_debugconf = new Action() {
 			public void run() {
 				if( launchConfigurationManager.hasSelection() ) {
-					launchConfiguration(
+					execLaunchConfiguration(
 							launchConfigurationManager.getSelection(),
 							ILaunchManager.DEBUG_MODE);
 				} else {
@@ -460,7 +454,7 @@
 	private ILaunchConfigurationWorkingCopy fLasLaunchConfigurationWorkingCopy;
 
 	public void initializeFieldValuesFrom(ILaunchConfiguration configuration) {
-		for(AbstractConfigurationPage acm : compMakers) {
+		for(AbstractConfigurationPage acm : fConfigurationPages) {
 			acm.initializeFieldValuesFrom(configuration);
 		}
 
@@ -479,7 +473,7 @@
 					fLasLaunchConfigurationWorkingCopy = newcopy;
 					System.err.println("++++---- Biopp");
 
-					for(AbstractConfigurationPage acm : compMakers) {
+					for(AbstractConfigurationPage acm : fConfigurationPages) {
 						acm.initializeFieldValuesFrom(selectedLC);
 					}
 				}