Bug 514634 Save current configuration

[Updtate] Save current configuration on running workflow-view's actions

Change-Id: I690c6d1a61e443ad8a41d093550f2278b9972692
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/AbstractConfigurationProfile.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationProfile.java
index da3a0f6..3a22a8a 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationProfile.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractConfigurationProfile.java
@@ -34,10 +34,6 @@
 		fConfigurationPage = configurationPage;

 	}

 

-	public Composite getControl() {

-		return getSectionClient();

-	}

-

 	public void setVisibleAndEnabled(boolean visible) {

 		fConfigurationPage.getWidgetToolkit().setVisibleAndEnabled(getSection(), visible);

 	}

diff --git a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractSectionPart.java b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractSectionPart.java
index 6f8a0bb..1073710 100644
--- a/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractSectionPart.java
+++ b/execution/org.eclipse.efm.execution.configuration.common.ui/src/org/eclipse/efm/execution/configuration/common/ui/api/AbstractSectionPart.java
@@ -48,6 +48,12 @@
 	}
 
 	
+	public Composite getControl() {
+		return fSection;
+	}
+
+
+	
 	// Layout
 	public void updateLayouts() {
 		fSectionClient.layout(true);
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 f0b2f71..25a46f7 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
@@ -288,10 +288,10 @@
 		fNodeIntegerField.initializeFrom(configuration);

 		fWidthIntegerField.initializeFrom(configuration);

 		fHeightIntegerField.initializeFrom(configuration);

+		

 		fStepsIntegerField.initializeFrom(configuration);

 		fTimeoutIntegerField.initializeFrom(configuration);

 

-		fInclusionCriterionBooleanField.setEnabled(false);

 		fInclusionCriterionBooleanField.initializeFrom(configuration);

 

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

@@ -413,7 +413,6 @@
 //		fTransitionNameStringField.performApply(configuration);

 

 		fInclusionCriterionBooleanField.performApply(configuration);

-		fInclusionCriterionBooleanField.setEnabled(true);

 

 		configuration.setAttribute(

 				ATTR_SPECIFICATION_ANALYZE_STRATEGY,

diff --git a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/util/CoreUtil.java b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/util/CoreUtil.java
index 08d6ddd..f79186d 100644
--- a/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/util/CoreUtil.java
+++ b/execution/org.eclipse.efm.execution.launchconfiguration/src/org/eclipse/efm/execution/launchconfiguration/util/CoreUtil.java
@@ -104,7 +104,7 @@
 			String expandedLocation = getStringVariableManager().
 					performStringSubstitution(location.toString());
 			if (expandedLocation == null || expandedLocation.length() == 0) {
-				String msg = NLS.bind(" The file does not exist for the Avm Executable tool named {0}.",
+				String msg = NLS.bind(" The file does not exist for the Symbex Executable tool named {0}.",
 						new Object[] { configuration.getName()});
 				abort(msg, null, 0);
 			} else {
@@ -113,7 +113,7 @@
 					return new Path(expandedLocation);
 				}
 
-				String msg = NLS.bind(" The file does not exist for the Avm Executable tool named {0}.",
+				String msg = NLS.bind(" The file does not exist for the Symbex Executable tool named {0}.",
 						new Object[] { configuration.getName()});
 				abort(msg, null, 0);
 			}
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 8b5b12e..7a80fd4 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
@@ -308,15 +308,49 @@
 	    //fTestGenControl.setEnabled(isLaunchConfSelected);
 	    //fSupervisorControl.setEnabled(isLaunchConfSelected);
 	}
-
-	private void openLaunchConfigurationDialog(ILaunchConfiguration launchConfig, String mode) {
-		IStructuredSelection selection = new StructuredSelection(launchConfig);
-		ILaunchGroup group = DebugUITools.getLaunchGroup(launchConfig, mode);
-		String groupIdentifier = group == null ? IDebugUIConstants.ID_RUN_LAUNCH_GROUP : group.getIdentifier();
-		DebugUITools.openLaunchConfigurationDialogOnGroup(scrollform.getShell(), selection, groupIdentifier, null);
+	
+	///////////////////////////////////////////////////////////////////////////
+	// Action utils
+	//
+	public void launchConfiguration(
+			final ILaunchConfiguration configuration, final String mode)
+	{
+		saveLaunchConfiguration( configuration );
+		
+		DebugUITools.launch(configuration, mode);
 	}
 
 
+	private void openLaunchConfigurationDialog(
+			final ILaunchConfiguration configuration, final String mode)
+	{
+		saveLaunchConfiguration( configuration );
+		
+		IStructuredSelection selection = new StructuredSelection(configuration);
+		ILaunchGroup group = DebugUITools.getLaunchGroup(configuration, mode);
+		
+		String groupIdentifier = group == null ?
+				IDebugUIConstants.ID_RUN_LAUNCH_GROUP : group.getIdentifier();
+		
+		DebugUITools.openLaunchConfigurationDialogOnGroup(
+				scrollform.getShell(), selection, groupIdentifier, null);
+	}
+
+	private void saveLaunchConfiguration(final ILaunchConfiguration configuration) {
+		ILaunchConfigurationWorkingCopy rwConfiguration;
+		try {
+			rwConfiguration = configuration.getWorkingCopy();
+			for(AbstractConfigurationPage acm : compMakers) {
+				acm.applyUpdatesOnFieldValuesFrom(rwConfiguration);
+			}
+			rwConfiguration.doSave();
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+
 
 	// ======================================================================================
 	//                              Actions for menus
@@ -334,7 +368,7 @@
 		action_launch_runconf = new Action() {
 			public void run() {
 				if( launchConfigurationManager.hasSelection() ) {
-					DebugUITools.launch(
+					launchConfiguration(
 							launchConfigurationManager.getSelection(),
 							ILaunchManager.RUN_MODE);
 				} else {
@@ -350,7 +384,7 @@
 		action_launch_debugconf = new Action() {
 			public void run() {
 				if( launchConfigurationManager.hasSelection() ) {
-					DebugUITools.launch(
+					launchConfiguration(
 							launchConfigurationManager.getSelection(),
 							ILaunchManager.DEBUG_MODE);
 				} else {
@@ -409,19 +443,8 @@
 		action_apply_changes = new Action() {
 			public void run() {
 				if( launchConfigurationManager.hasSelection() ) {
-					ILaunchConfiguration selectedConfiguration = launchConfigurationManager.getSelection();
-					ILaunchConfigurationWorkingCopy rwConfiguration;
-					try {
-						rwConfiguration = selectedConfiguration.getWorkingCopy();
-						for(AbstractConfigurationPage acm : compMakers) {
-							acm.applyUpdatesOnFieldValuesFrom(rwConfiguration);
-						}
-						rwConfiguration.doSave();
-					} catch (CoreException e) {
-						e.printStackTrace();
-					}
+					saveLaunchConfiguration( launchConfigurationManager.getSelection() );
 				}
-
 			}
 		};
 		action_apply_changes.setText("Apply changes on Launch Configuration");
@@ -433,6 +456,7 @@
 	//                              ILaunchConfigurationGUIelement interface methods
 	// ======================================================================================
 
+	
 	private ILaunchConfigurationWorkingCopy fLasLaunchConfigurationWorkingCopy;
 
 	public void initializeFieldValuesFrom(ILaunchConfiguration configuration) {