Bug 511573

Continued working on Symbex Workflow View
updated actions and menubars
updated graphical resources
updated sections hierarchy

Change-Id: Ibd1ac3b1110f055fbc7906937d8e417c9f1df7c5
Signed-off-by: Erwan Mahe <erwan.mahe@cea.fr>
diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/AbstractSymbexWorkflowView.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/AbstractSymbexWorkflowView.java
index 03a0c6e..dc1b592 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/AbstractSymbexWorkflowView.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/AbstractSymbexWorkflowView.java
@@ -35,48 +35,35 @@
 	
 	public FormToolkit toolkit;
 	public ScrolledForm scrollform;
-	//public Form scrollform;
-	
 	
 	protected void setupFormFrame() {
 		toolkit = new FormToolkit(parentComposite.getDisplay());
 		scrollform = toolkit.createScrolledForm(parentComposite);
-		//scrollform = toolkit.createForm(parentComposite);
 		scrollform.setText("Run Configuration");
 		GridLayout layout = new GridLayout(1, false);
 		scrollform.getBody().setLayout(layout);
 	}
-	
-	public Action[] actions;
 
-	protected void contributeToActionBars() {
+	protected void setupTopLevelActionBars(Action[] acts) {
 		IActionBars bars = getViewSite().getActionBars();
-		fillLocalPullDown(bars.getMenuManager());
-		fillLocalToolBar(bars.getToolBarManager());
-	}
-
-	private void fillLocalPullDown(IMenuManager manager) {
-		for(Action action: actions) {
-			manager.add(action);
-			manager.add(new Separator());
+		IMenuManager pullDownMenuManager = bars.getMenuManager();
+		pullDownMenuManager.removeAll();
+		for(Action action: acts) {
+			pullDownMenuManager.add(action);
+			pullDownMenuManager.add(new Separator());
 		}
+		IToolBarManager toolBarMenuManager = bars.getToolBarManager();
+		toolBarMenuManager.removeAll();
+		fillToolBar(toolBarMenuManager, acts);
 	}
-
-//	private void fillContextMenu(IMenuManager manager) {
-//		for(Action action: actions) {
-//			manager.add(action);
-//		}
-//		// Other plug-ins can contribute there actions here
-//		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-//	}
 	
-	private void fillLocalToolBar(IToolBarManager manager) {
-		for(Action action: actions) {
+	protected void fillToolBar(IToolBarManager manager, Action[] acts) {
+		for(Action action: acts) {
 			manager.add(action);
 		}
 	}
 	
-	void showMessage(String message) {
+	protected void showMessage(String message) {
 		MessageDialog.openInformation(
 				scrollform.getShell(),
 			"Symbex Workflow",
diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/SymbexWorkflowView.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/SymbexWorkflowView.java
index 8ec6abf..ffd6030 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/SymbexWorkflowView.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/SymbexWorkflowView.java
@@ -16,6 +16,7 @@
 
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.widgets.Text;
@@ -37,9 +38,8 @@
 import org.eclipse.efm.runconfiguration.workflow.IWorkflowConfigurationConstants;
 import org.eclipse.efm.ui.views.mitems.ManagerLinker;
 import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.AnalysisProfileCompositeCreator;
-import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.DevelopperCompositeCreator;
+import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.DebugCompositeCreator;
 import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.ExecutionCompositeCreator;
-import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.ExpertCompositeCreator;
 import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.SectionCompositeCreator;
 import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.StopCriteriaCompositeCreator;
 import org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites.TestGenCompositeCreator;
@@ -59,15 +59,6 @@
 	private Text text_model_file_path;
 	
 	private Combo combo;
-	
-	/**
-	 * The constructor.
-	 */
-	public SymbexWorkflowView() {
-		mLinker = new ManagerLinker();
-		compositeSections = new HashSet<SectionCompositeCreator>();
-		makeActions();
-		}
 
 	/**
 	 * This is a callback that will allow us
@@ -75,11 +66,14 @@
 	 */
 	public void createPartControl(Composite parent) {
 		parentComposite = parent;
+		mLinker = new ManagerLinker();
+		compositeSections = new HashSet<SectionCompositeCreator>();
+		makeActions();
 
 		setupFormFrame();
 		createContents();
 
-		contributeToActionBars();
+		setupTopLevelActionBars(new Action[] {action_launch_runconf, action_launch_debugconf, action_opend_runconf, action_opend_debugconf});
 	}
 	
 	private void createContents() {
@@ -89,17 +83,27 @@
 		
 		text_model_file_path = GenericCompositeCreator.createComposite_label_text_from_toolkit(toolkit, scrollform.getBody(), "Model File :", 1);
 		
-		new StopCriteriaCompositeCreator(mLinker, this);
+		ToolBarManager tbm;
 		
-		new AnalysisProfileCompositeCreator(mLinker, this);
+		tbm = new ToolBarManager(SWT.FLAT);
+		fillToolBar(tbm, new Action[] {action_launch_runconf});
+		new AnalysisProfileCompositeCreator(mLinker, this, tbm);
 		
-		new ExpertCompositeCreator(mLinker, this);
+		tbm = new ToolBarManager(SWT.FLAT);
+		fillToolBar(tbm, new Action[] {action_launch_runconf});
+		new StopCriteriaCompositeCreator(mLinker, this, tbm);
 		
-		new DevelopperCompositeCreator(mLinker, this);
+		tbm = new ToolBarManager(SWT.FLAT);
+		fillToolBar(tbm, new Action[] {action_launch_runconf, action_opend_runconf});
+		new ExecutionCompositeCreator(mLinker, this, tbm);
 		
-		new ExecutionCompositeCreator(mLinker, this);
+		tbm = new ToolBarManager(SWT.FLAT);
+		fillToolBar(tbm, new Action[] {action_launch_runconf});
+		new TestGenCompositeCreator(mLinker, this, tbm);
 		
-		new TestGenCompositeCreator(mLinker, this);
+		tbm = new ToolBarManager(SWT.FLAT);
+		fillToolBar(tbm, new Action[] {action_launch_debugconf, action_opend_debugconf});
+		new DebugCompositeCreator(mLinker, this, tbm);
 		
 		combo.addSelectionListener(new SelectionAdapter() {
 			@Override
@@ -135,8 +139,52 @@
 		DebugUITools.openLaunchConfigurationDialogOnGroup(scrollform.getShell(), selection, groupIdentifier, null);
 	}
 
+	private Action action_launch_runconf;
+	private Action action_launch_debugconf;
+	private Action action_opend_runconf;
+	private Action action_opend_debugconf;
+	
 	private void makeActions() {
-		Action action_runconf = new Action() {
+		action_launch_runconf = new Action() {
+			public void run() {
+				int index = combo.getSelectionIndex();
+				if (index != -1) {
+					ILaunchConfiguration selectedLC = mLinker.getSymbexRunConfigurations()[index];
+					if (selectedLC != null) {
+						DebugUITools.launch(selectedLC, "run");
+					} else {
+						showMessage("Selected Launch Configuration not found");
+					}
+				} else {
+					showMessage("No Launch Configuration selected");
+				}
+			}
+		};
+		action_launch_runconf.setText("Launch Run Configuration");
+		action_launch_runconf.setToolTipText("Launch Selected Run Configuration");
+		action_launch_runconf.setImageDescriptor(UIfmlResources.getImageDescriptor(UIfmlResources.IMAGE__LAUNCHRUN_ICON));
+		
+		action_launch_debugconf = new Action() {
+			public void run() {
+				int index = combo.getSelectionIndex();
+				if (index != -1) {
+					ILaunchConfiguration selectedLC = mLinker.getSymbexRunConfigurations()[index];
+					if (selectedLC != null) {
+						DebugUITools.launch(selectedLC, "debug");
+					} else {
+						showMessage("Selected Launch Configuration not found");
+					}
+				} else {
+					showMessage("No Launch Configuration selected");
+				}
+			}
+		};
+		action_launch_debugconf.setText("Launch Debug Configuration");
+		action_launch_debugconf.setToolTipText("Launch Selected Debug Configuration");
+		action_launch_debugconf.setImageDescriptor(UIfmlResources.getImageDescriptor(UIfmlResources.IMAGE__LAUNCHDEBUG_ICON));
+
+		
+		action_opend_runconf = new Action() {
 			public void run() {
 				int index = combo.getSelectionIndex();
 				if (index != -1) {
@@ -151,11 +199,11 @@
 				}
 			}
 		};
-		action_runconf.setText("Launch Run Configuration");
-		action_runconf.setToolTipText("Launch Selected Run Configuration");
-		action_runconf.setImageDescriptor(UIfmlResources.getImageDescriptor(UIfmlResources.IMAGE__RUNCONF_ICON));
+		action_opend_runconf.setText("Open Run Configurations...");
+		action_opend_runconf.setToolTipText("Open the Run Configurations Dialog");
+		action_opend_runconf.setImageDescriptor(UIfmlResources.getImageDescriptor(UIfmlResources.IMAGE__DIALRUN_ICON));
 		
-		Action action_debugconf = new Action() {
+		action_opend_debugconf = new Action() {
 			public void run() {
 				int index = combo.getSelectionIndex();
 				if (index != -1) {
@@ -170,11 +218,9 @@
 				}
 			}
 		};
-		action_debugconf.setText("Launch Debug Configuration");
-		action_debugconf.setToolTipText("Launch Selected Debug Configuration");
-		action_debugconf.setImageDescriptor(UIfmlResources.getImageDescriptor(UIfmlResources.IMAGE__RUNDEBUG_ICON));
-		
-		actions = (new Action[] {action_runconf, action_debugconf});
+		action_opend_debugconf.setText("Open Debug Configuration...");
+		action_opend_debugconf.setToolTipText("Open the Debug Configuration Dialog");
+		action_opend_debugconf.setImageDescriptor(UIfmlResources.getImageDescriptor(UIfmlResources.IMAGE__DIALDEBUG_ICON));
 	}
 
 }
diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/AnalysisProfileCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/AnalysisProfileCompositeCreator.java
index d21b9be..272a253 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/AnalysisProfileCompositeCreator.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/AnalysisProfileCompositeCreator.java
@@ -19,7 +19,10 @@
 import org.eclipse.efm.ui.views.SymbexWorkflowView;

 import org.eclipse.efm.ui.views.mitems.ManagerLinker;

 import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.IToolBarManager;

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

 import org.eclipse.swt.widgets.Text;

+import org.eclipse.ui.forms.widgets.ExpandableComposite;

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

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

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

@@ -29,18 +32,21 @@
 	private Text ana_profile;

 	private Text ana_strategy;

 	

-	public AnalysisProfileCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

-		super(ml, swv);

+	public AnalysisProfileCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv, ToolBarManager tbm) {

+		super(ml, swv, tbm);

 	}

 	

-	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions) {

-		addComposite_internal(toolkit, scrollform, actions, "Analysis");

+	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm) {

+		addComposite_internal(toolkit, scrollform, tbm, "Analysis");

 	}

 

 	@Override

 	protected void addCollapsedContent(FormToolkit toolkit, ScrolledForm scrollform) {

 		ana_profile = GenericCompositeCreator.createComposite_label_text_from_toolkit(toolkit, sectionClient, "Profile :", 2);

 		ana_strategy = GenericCompositeCreator.createComposite_label_text_from_toolkit(toolkit, sectionClient, "Strategy :", 2); 

+	

+		ExpandableComposite expert_composite = toolkit.createExpandableComposite(sectionClient, sectionClient.getStyle());

+		expert_composite.setText("Expert Configuration");

 	}

 

 	@Override

diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/DevelopperCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/DebugCompositeCreator.java
similarity index 72%
rename from gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/DevelopperCompositeCreator.java
rename to gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/DebugCompositeCreator.java
index 8b788b2..b777bc3 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/DevelopperCompositeCreator.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/DebugCompositeCreator.java
@@ -19,23 +19,28 @@
 import org.eclipse.efm.ui.views.SymbexWorkflowView;

 import org.eclipse.efm.ui.views.mitems.ManagerLinker;

 import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.IToolBarManager;

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

 import org.eclipse.swt.widgets.Text;

+import org.eclipse.ui.forms.widgets.ExpandableComposite;

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

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

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

 

-public class DevelopperCompositeCreator extends SectionCompositeCreator {

+public class DebugCompositeCreator extends SectionCompositeCreator {

 	

-	public DevelopperCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

-		super(ml, swv);

+	public DebugCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv, ToolBarManager tbm) {

+		super(ml, swv, tbm);

 	}

 	

-	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions) {

-		addComposite_internal(toolkit, scrollform, actions, "Test Generation");

+	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm) {

+		addComposite_internal(toolkit, scrollform, tbm, "Debug");

 	}

 

 	@Override

 	protected void addCollapsedContent(FormToolkit toolkit, ScrolledForm scrollform) {

+		ExpandableComposite developper_composite = toolkit.createExpandableComposite(sectionClient, sectionClient.getStyle());

+		developper_composite.setText("Developper");

 	}

 

 	@Override

diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExecutionCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExecutionCompositeCreator.java
index 63c26ab..bf4711f 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExecutionCompositeCreator.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExecutionCompositeCreator.java
@@ -19,6 +19,8 @@
 import org.eclipse.efm.ui.views.SymbexWorkflowView;

 import org.eclipse.efm.ui.views.mitems.ManagerLinker;

 import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.IToolBarManager;

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

 import org.eclipse.swt.widgets.Text;

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

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

@@ -26,12 +28,12 @@
 

 public class ExecutionCompositeCreator extends SectionCompositeCreator {

 	

-	public ExecutionCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

-		super(ml, swv);

+	public ExecutionCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv, ToolBarManager tbm) {

+		super(ml, swv, tbm);

 	}

 	

-	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions) {

-		addComposite_internal(toolkit, scrollform, actions, "Developper");

+	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm) {

+		addComposite_internal(toolkit, scrollform, tbm, "Execution");

 	}

 

 	@Override

diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExpertCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExpertCompositeCreator.java
deleted file mode 100644
index 2a904bb..0000000
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/ExpertCompositeCreator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

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

- *  Erwan Mahe (CEA LIST) erwan.mahe@cea.fr

- *   - Initial API and Implementation

- *******************************************************************************/

-package org.eclipse.efm.ui.views.symbexworkflow_viewpart.collapsible_composites;

-

-import java.util.Map;

-

-import org.eclipse.efm.runconfiguration.workflow.IWorkflowConfigurationConstants;

-import org.eclipse.efm.ui.views.GenericCompositeCreator;

-import org.eclipse.efm.ui.views.SymbexWorkflowView;

-import org.eclipse.efm.ui.views.mitems.ManagerLinker;

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

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

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

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

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

-

-public class ExpertCompositeCreator extends SectionCompositeCreator {

-	

-	public ExpertCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

-		super(ml, swv);

-	}

-	

-	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions) {

-		addComposite_internal(toolkit, scrollform, actions, "Expert");

-	}

-

-	@Override

-	protected void addCollapsedContent(FormToolkit toolkit, ScrolledForm scrollform) {

-	}

-

-	@Override

-	public void updateCollapsedContent(Map<String, Object> lcAttributes) {

-		if(lcAttributes == null) {

-			lcAttributes = last_lcAttributes;

-		}

-		if(lcAttributes.isEmpty()) {

-

-		} else {

-

-		}

-		last_lcAttributes = lcAttributes;

-	}

-}

diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/SectionCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/SectionCompositeCreator.java
index 0a8063b..4010080 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/SectionCompositeCreator.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/SectionCompositeCreator.java
@@ -19,6 +19,7 @@
 import org.eclipse.efm.ui.views.SymbexWorkflowView;

 import org.eclipse.efm.ui.views.mitems.ManagerLinker;

 import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.IToolBarManager;

 import org.eclipse.jface.action.ToolBarManager;

 import org.eclipse.swt.SWT;

 import org.eclipse.swt.layout.GridData;

@@ -40,16 +41,16 @@
 	private Section section;

 	protected Composite sectionClient;

 	

-	public SectionCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

+	public SectionCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv, ToolBarManager tbm) {

 		this.ml = ml;

 		last_lcAttributes = new HashMap<String, Object>();

 		swv.compositeSections.add(this);

-		this.addComposite(swv.toolkit, swv.scrollform, swv.actions);

+		this.addComposite(swv.toolkit, swv.scrollform, tbm);

 	}

 	

-	public abstract void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions);

+	public abstract void addComposite(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm);

 	

-	protected void addComposite_internal(FormToolkit toolkit, ScrolledForm scrollform,  Action[] actions, String title) {

+	protected void addComposite_internal(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm, String title) {

 		section = toolkit.createSection(scrollform.getBody(), Section.DESCRIPTION|Section.TWISTIE|Section.TITLE_BAR|Section.EXPANDED);

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

 		section.setLayoutData(gd);

@@ -61,12 +62,8 @@
 		});

 		section.setText(title);

 		

-		ToolBarManager tbm = new ToolBarManager(SWT.FLAT);

-		ToolBar toolbar = tbm.createControl(section);

-		for(Action action: actions) {

-			tbm.add(action);

-		}

-		tbm.update(true);

+		//ToolBarManager tbm = new ToolBarManager(SWT.FLAT);

+		ToolBar toolbar = ((ToolBarManager) tbm).createControl(section);

 		section.setTextClient(toolbar);

 		

 		sectionClient = toolkit.createComposite(section);

diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/StopCriteriaCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/StopCriteriaCompositeCreator.java
index 0736ed1..60e94d6 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/StopCriteriaCompositeCreator.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/StopCriteriaCompositeCreator.java
@@ -18,6 +18,8 @@
 import org.eclipse.efm.ui.views.SymbexWorkflowView;

 import org.eclipse.efm.ui.views.mitems.ManagerLinker;

 import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.IToolBarManager;

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

 import org.eclipse.swt.widgets.Text;

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

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

@@ -32,12 +34,12 @@
 	private Text evalim_steps;

 	private Text evalim_timeout;

 	

-	public StopCriteriaCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

-		super(ml, swv);

+	public StopCriteriaCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv, ToolBarManager tbm) {

+		super(ml, swv, tbm);

 	}

 	

-	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions) {

-		addComposite_internal(toolkit, scrollform, actions, "Stop Criteria");

+	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm) {

+		addComposite_internal(toolkit, scrollform, tbm, "Graph Browsing Criteria");

 	}

 

 	@Override

diff --git a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/TestGenCompositeCreator.java b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/TestGenCompositeCreator.java
index 55b0028..5a3a3cc 100644
--- a/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/TestGenCompositeCreator.java
+++ b/gui/org.eclipse.efm.ui.views/src/org/eclipse/efm/ui/views/symbexworkflow_viewpart/collapsible_composites/TestGenCompositeCreator.java
@@ -19,23 +19,67 @@
 import org.eclipse.efm.ui.views.SymbexWorkflowView;

 import org.eclipse.efm.ui.views.mitems.ManagerLinker;

 import org.eclipse.jface.action.Action;

+import org.eclipse.jface.action.IToolBarManager;

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

+import org.eclipse.swt.SWT;

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

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

 import org.eclipse.swt.widgets.Text;

+import org.eclipse.ui.forms.events.ExpansionAdapter;

+import org.eclipse.ui.forms.events.ExpansionEvent;

+import org.eclipse.ui.forms.widgets.ExpandableComposite;

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

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

+import org.eclipse.ui.forms.widgets.ImageHyperlink;

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

+import org.eclipse.ui.forms.widgets.TableWrapData;

 

 public class TestGenCompositeCreator extends SectionCompositeCreator {

 	

-	public TestGenCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv) {

-		super(ml, swv);

+	public TestGenCompositeCreator(ManagerLinker ml, SymbexWorkflowView swv, ToolBarManager tbm) {

+		super(ml, swv, tbm);

 	}

 	

-	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, Action[] actions) {

-		addComposite_internal(toolkit, scrollform, actions, "Execution");

+	public void addComposite(FormToolkit toolkit, ScrolledForm scrollform, IToolBarManager tbm) {

+		addComposite_internal(toolkit, scrollform, tbm, "Test Generation");

 	}

 

 	@Override

 	protected void addCollapsedContent(FormToolkit toolkit, ScrolledForm scrollform) {

+		ExpandableComposite tracext_composite = toolkit.createExpandableComposite(sectionClient, sectionClient.getStyle());

+		tracext_composite.setText("Trace Extension");

+		

+		ExpandableComposite basic_composite = toolkit.createExpandableComposite(sectionClient, sectionClient.getStyle());

+		basic_composite.setText("Basic Test Generation");

+		

+		

+		

+		

+		

+		ExpandableComposite ttcn_composite = toolkit.createExpandableComposite(sectionClient, sectionClient.getStyle());

+		ttcn_composite.setText("TTCN-3 Test Generation");

+		

+		ExpandableComposite titan_composite = toolkit.createExpandableComposite(sectionClient, sectionClient.getStyle());

+		titan_composite.setText("Titan Format Configuration");

+		

+		//ImageHyperlink eci = toolkit.createImageHyperlink(ec, SWT.NULL);

+		//eci.setImage(FormArticlePlugin.getDefault().getImageRegistry().get(FormArticlePlugin.IMG_SAMPLE));

+//		ec.setTextClient(eci);

+//		ec.setText(Messages.getString("FormView.expandable")); //$NON-NLS-1$

+//		String ctext = Messages.getString("FormView.expandableText")+ //$NON-NLS-1$

+//		Messages.getString("FormView.expandablText2")+ //$NON-NLS-1$

+//		Messages.getString("FormView.expandableText3")+ //$NON-NLS-1$

+//		Messages.getString("FormView.expandableText4"); //$NON-NLS-1$

+//		Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);

+//		ec.setClient(client);

+//		td = new TableWrapData();

+//		td.colspan = 2;

+//		ec.setLayoutData(td);

+//		ec.addExpansionListener(new ExpansionAdapter() {

+//			public void expansionStateChanged(ExpansionEvent e) {

+//				form.reflow(true);

+//			}

+//		});

 	}

 

 	@Override