Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/AbstractInsertEventComposite.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/AbstractInsertEventComposite.java	(revision 230)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/AbstractInsertEventComposite.java	(revision 230)
@@ -0,0 +1,20 @@
+package de.ugoe.cs.eventbench.swt;
+
+import java.util.SortedSet;
+
+import org.eclipse.swt.widgets.Composite;
+
+import de.ugoe.cs.eventbench.data.Event;
+
+abstract public class AbstractInsertEventComposite extends Composite {
+
+	protected SortedSet<String> targets;
+	
+	public AbstractInsertEventComposite(Composite parent, int style, SortedSet<String> targets) {
+		super(parent, style);
+		this.targets = targets;
+	}
+	
+	public abstract Event<?> getEvent(); 
+
+}
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/EditSequenceDialog.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/EditSequenceDialog.java	(revision 230)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/EditSequenceDialog.java	(revision 230)
@@ -0,0 +1,147 @@
+package de.ugoe.cs.eventbench.swt;
+
+import java.util.SortedSet;
+
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+import de.ugoe.cs.eventbench.data.Event;
+
+public class EditSequenceDialog extends Dialog {
+
+	protected Object result;
+	protected Shell shell;
+	private Table table;
+	private TableColumn tblclmnEventType;
+	private TableColumn tblclmnEventTarget;
+	
+	private java.util.List<Event<?>> sequence;
+	private SortedSet<String> targets;
+
+	/**
+	 * Create the dialog.
+	 * @param parent
+	 * @param style
+	 */
+	public EditSequenceDialog(Shell parent, int style, SortedSet<String> targets) {
+		super(parent, style);
+		setText("SWT Dialog");
+		this.targets = targets;
+	}
+
+	/**
+	 * Open the dialog.
+	 * @return the result
+	 */
+	public Object open(java.util.List<Event<?>> sequence) {
+		this.sequence = sequence;
+		createContents();
+		shell.open();
+		shell.layout();
+		Display display = getParent().getDisplay();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch()) {
+				display.sleep();
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * Create contents of the dialog.
+	 */
+	private void createContents() {
+		shell = new Shell(getParent(), SWT.SHELL_TRIM | SWT.BORDER | SWT.APPLICATION_MODAL);
+		shell.setSize(450, 300);
+		shell.setText(getText());
+		shell.setLayout(new GridLayout(3, false));
+		
+		table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
+		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+		
+		tblclmnEventType = new TableColumn(table, SWT.NONE);
+		tblclmnEventType.setWidth(100);
+		tblclmnEventType.setText("Event Type");
+		
+		tblclmnEventTarget = new TableColumn(table, SWT.NONE);
+		tblclmnEventTarget.setWidth(100);
+		tblclmnEventTarget.setText("Event Target");
+		
+		updateTableContents();
+		
+		Button btnInsertBefore = new Button(shell, SWT.NONE);
+		btnInsertBefore.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = table.getSelectionIndex();
+				if( index==-1 ) {
+					MessageBox messageBox = new MessageBox(shell, SWT.ERROR);
+					messageBox.setMessage("No event selected!");
+					messageBox.setText("Error");
+					messageBox.open();
+				} else {
+					openInsertDialog(index);
+				}
+			}
+		});
+		btnInsertBefore.setText("Insert Before");
+		
+		Button btnInsertAfter = new Button(shell, SWT.NONE);
+		btnInsertAfter.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = table.getSelectionIndex();
+				if( index==-1 ) {
+					MessageBox messageBox = new MessageBox(shell, SWT.ERROR);
+					messageBox.setMessage("No event selected!");
+					messageBox.setText("Error");
+					messageBox.open();
+				} else {
+					openInsertDialog(index+1);
+				}
+			}
+		});
+		btnInsertAfter.setText("Insert After");
+		
+		Button btnClose = new Button(shell, SWT.NONE);
+		btnClose.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				shell.dispose();
+			}
+		});
+		btnClose.setText("Close");
+
+	}
+	
+	private void updateTableContents() {
+		table.removeAll();
+		for( Event<?> event : sequence ) {
+			TableItem tableItem = new TableItem(table, SWT.NONE);
+			tableItem.setText(new String[]{event.getType(),event.getTarget()});
+		}
+	}
+	
+	private void openInsertDialog(int position) {
+		InsertAssertionDialog insertDialog = new InsertAssertionDialog(shell, SWT.NONE, targets);
+		Event<?> event = insertDialog.open();
+		if( event!=null ) {
+			sequence.add(position, event);
+			updateTableContents();
+		}
+	}
+
+}
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertAssertionDialog.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertAssertionDialog.java	(revision 230)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertAssertionDialog.java	(revision 230)
@@ -0,0 +1,106 @@
+package de.ugoe.cs.eventbench.swt;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.SortedSet;
+
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+
+import de.ugoe.cs.eventbench.data.Event;
+
+public class InsertAssertionDialog extends Dialog {
+
+	protected Event<?> result;
+	protected Shell shell;
+	
+	private TabFolder tabFolder;
+	
+	List<AbstractInsertEventComposite> insertEventComposites;
+	SortedSet<String> targets;
+
+	/**
+	 * Create the dialog.
+	 * @param parent
+	 * @param style
+	 */
+	public InsertAssertionDialog(Shell parent, int style, SortedSet<String> targets) {
+		super(parent, style);
+		setText("SWT Dialog");
+		this.targets = targets;
+	}
+
+	/**
+	 * Open the dialog.
+	 * @return the result
+	 */
+	public Event<?> open() {
+		result = null;
+		insertEventComposites = new ArrayList<AbstractInsertEventComposite>();
+		createContents();
+		shell.open();
+		shell.layout();
+		Display display = getParent().getDisplay();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch()) {
+				display.sleep();
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * Create contents of the dialog.
+	 */
+	private void createContents() {
+		shell = new Shell(getParent(), SWT.SHELL_TRIM | SWT.BORDER | SWT.APPLICATION_MODAL);
+		shell.setSize(450, 300);
+		shell.setText(getText());
+		shell.setLayout(new GridLayout(2, false));
+		
+		tabFolder = new TabFolder(shell, SWT.NONE);
+		tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+		
+		
+		TabItem tbtmTextEquals = new TabItem(tabFolder, SWT.NONE);
+		tbtmTextEquals.setText("TextEquals");
+		AbstractInsertEventComposite compTextEquals = new InsertTextEquals(tabFolder, SWT.NO_BACKGROUND, targets);
+		tbtmTextEquals.setControl(compTextEquals);
+		insertEventComposites.add(compTextEquals);
+		
+		TabItem tbtmFileEquals = new TabItem(tabFolder, SWT.NONE);
+		tbtmFileEquals.setText("FileEquals");
+		AbstractInsertEventComposite compFileEquals = new InsertFileEquals(tabFolder, SWT.NO_BACKGROUND, targets);
+		tbtmFileEquals.setControl(compFileEquals);
+		insertEventComposites.add(compFileEquals);
+		
+		Button btnInsert = new Button(shell, SWT.NONE);
+		btnInsert.setText("Insert");
+		btnInsert.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = tabFolder.getSelectionIndex();
+				result = insertEventComposites.get(index).getEvent();
+				shell.dispose();
+			}
+		});
+		
+		Button btnAbort = new Button(shell, SWT.NONE);
+		btnAbort.setText("Abort");
+		btnAbort.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				shell.dispose();
+			}
+		});
+	}
+}
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertFileEquals.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertFileEquals.java	(revision 230)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertFileEquals.java	(revision 230)
@@ -0,0 +1,83 @@
+package de.ugoe.cs.eventbench.swt;
+
+import java.util.SortedSet;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+
+import de.ugoe.cs.eventbench.assertions.AssertEvent;
+import de.ugoe.cs.eventbench.assertions.FileEqualsReplay;
+import de.ugoe.cs.eventbench.data.Event;
+
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+public class InsertFileEquals extends AbstractInsertEventComposite {
+	private Text actualText;
+	private Text expectedText;
+
+	public InsertFileEquals(Composite parent, int style) {
+		this(parent, style, null);
+	}
+	
+	/**
+	 * Create the composite.
+	 * @param parent
+	 * @param style
+	 */
+	public InsertFileEquals(Composite parent, int style, SortedSet<String> targets) {
+		super(parent, style, targets);
+		setLayout(new GridLayout(3, false));
+		
+				
+				Label lblExpectedFile = new Label(this, SWT.NONE);
+				lblExpectedFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+				lblExpectedFile.setText("Expected file:");
+		
+		expectedText = new Text(this, SWT.BORDER);
+		expectedText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+		
+		Button btnSearch = new Button(this, SWT.NONE);
+		btnSearch.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				FileDialog fileDialog = new FileDialog(getShell(), SWT.OPEN);
+				String filename = fileDialog.open();
+				if( filename!= null ) {
+					expectedText.setText(filename);
+				}
+			}
+		});
+		btnSearch.setText("Search...");
+		
+		Label lblActualFile = new Label(this, SWT.NONE);
+		
+		lblActualFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+		lblActualFile.setText("Actual file:");
+		
+		actualText = new Text(this, SWT.BORDER);
+		actualText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+		new Label(this, SWT.NONE);
+
+	}
+
+	@Override
+	protected void checkSubclass() {
+		// Disable the check that prevents subclassing of SWT components
+	}
+
+	@Override
+	public Event<?> getEvent() {
+		FileEqualsReplay replay = new FileEqualsReplay(expectedText.getText(), actualText.getText());
+		AssertEvent<FileEqualsReplay> event = new AssertEvent<FileEqualsReplay>("FileEqualsAssertion");
+		event.addReplayEvent(replay);
+		return event;
+	}
+
+}
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertTextEquals.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertTextEquals.java	(revision 230)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/InsertTextEquals.java	(revision 230)
@@ -0,0 +1,129 @@
+package de.ugoe.cs.eventbench.swt;
+
+import java.util.SortedSet;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.TreeItem;
+
+import de.ugoe.cs.eventbench.assertions.AssertEvent;
+import de.ugoe.cs.eventbench.assertions.TextEqualsReplay;
+import de.ugoe.cs.eventbench.data.Event;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+public class InsertTextEquals extends AbstractInsertEventComposite {
+	private Text expectedText;
+	private Tree targetTree;
+	private Text targetText;
+	
+	/**
+	 * Create the composite.
+	 * @param parent
+	 * @param style
+	 */
+	public InsertTextEquals(Composite parent, int style, SortedSet<String> targets) {
+		super(parent, style, targets);
+		setLayout(new GridLayout(3, false));
+		
+		Label lblExpectedValue = new Label(this, SWT.NONE);
+		lblExpectedValue.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+		lblExpectedValue.setText("Expected Value:");
+		
+		expectedText = new Text(this, SWT.BORDER);
+		expectedText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+		
+		Label lblTargetWidget = new Label(this, SWT.NONE);
+		lblTargetWidget.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+		lblTargetWidget.setText("Target Widget:");
+		
+		targetText = new Text(this, SWT.BORDER);
+		targetText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+		new Label(this, SWT.NONE);
+		
+		targetTree = new Tree(this, SWT.BORDER);
+		targetTree.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				TreeItem[] selection = targetTree.getSelection();
+				if( selection.length==1 ) {
+					TreeItem item = selection[0];
+					String targetString = item.getText();
+					item = item.getParentItem();
+					while( item!=null ) {
+						targetString = item.getText()+targetString;
+						item = item.getParentItem();
+					}
+					targetText.setText(targetString);
+				}
+			}
+		});
+		targetTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+		buildTargetTree();
+		new Label(this, SWT.NONE);
+		
+		Button btnExpandAll = new Button(this, SWT.NONE);
+		btnExpandAll.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				expandAll(targetTree, true);
+			}
+		});
+		btnExpandAll.setText("Expand all");
+		
+		Button btnCollapseAll = new Button(this, SWT.NONE);
+		btnCollapseAll.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				expandAll(targetTree, false);
+			}
+		});
+		btnCollapseAll.setText("Collapse all");
+
+	}
+
+	@Override
+	protected void checkSubclass() {
+		// Disable the check that prevents subclassing of SWT components
+	}
+
+	@Override
+	public Event<?> getEvent() {		
+		String target = targetText.getText();
+		TextEqualsReplay replay = new TextEqualsReplay(expectedText.getText(), target);
+		AssertEvent<TextEqualsReplay> event = new AssertEvent<TextEqualsReplay>("TextEqualsAssertion");
+		event.setTarget(target);
+		event.addReplayEvent(replay);
+		return event;
+	}
+	
+	private void buildTargetTree() {
+		for( String target : targets ) {
+			TreeItem item = new TreeItem(targetTree, SWT.NULL);
+			item.setText(target);
+			// TODO needs rule that "splits" targets if necessary
+		}
+
+	}
+	
+	private void expandAll(Tree tree, boolean expanded) {
+		for( TreeItem item : tree.getItems() ) {
+			expandAll(item, expanded);
+		}
+	}
+	
+	private void expandAll(TreeItem item, boolean expanded) {
+		item.setExpanded(expanded);
+		for( TreeItem childItem : item.getItems() ) {
+			expandAll(childItem, expanded);
+		}
+	}
+	
+	
+}
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SequencesDialog.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SequencesDialog.java	(revision 230)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SequencesDialog.java	(revision 230)
@@ -0,0 +1,153 @@
+package de.ugoe.cs.eventbench.swt;
+
+import java.util.Collection;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.layout.GridData;
+
+import de.ugoe.cs.eventbench.SequenceInstanceOf;
+import de.ugoe.cs.eventbench.data.Event;
+import de.ugoe.cs.eventbench.data.GlobalDataContainer;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+public class SequencesDialog extends Dialog {
+
+	private String sequencesName;
+	
+	private List sequenceList;
+	private Collection<java.util.List<Event<?>>> sequences;
+	private SortedSet<String> targets;
+	
+	protected Object result;
+	protected Shell shell;
+
+	/**
+	 * Create the dialog.
+	 * @param parent
+	 * @param style
+	 */
+	public SequencesDialog(Shell parent, int style) {
+		super(parent, style);
+		setText("SWT Dialog");
+	}
+
+	/**
+	 * Open the dialog.
+	 * @return the result
+	 */
+	public Object open(String sequencesName) {
+		this.sequencesName = sequencesName;
+		sequences = null;
+		createContents();
+		shell.open();
+		shell.layout();
+		Display display = getParent().getDisplay();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch()) {
+				display.sleep();
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * Create contents of the dialog.
+	 */
+	private void createContents() {
+		shell = new Shell(getParent(), SWT.SHELL_TRIM | SWT.BORDER | SWT.APPLICATION_MODAL);
+		shell.setSize(248, 299);
+		shell.setText(getText());
+		shell.setLayout(new GridLayout(2, false));
+		
+		sequenceList = new List(shell, SWT.BORDER | SWT.V_SCROLL);
+		sequenceList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+		updateSequenceList();
+		
+		Button btnShow = new Button(shell, SWT.NONE);
+		btnShow.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = sequenceList.getSelectionIndex();
+				if( index==-1 ) {
+					MessageBox messageBox = new MessageBox(shell, SWT.ERROR);
+					messageBox.setMessage("No sequence selected!");
+					messageBox.setText("Error");
+					messageBox.open();
+				} else {
+					EditSequenceDialog editSequenceDialog = new EditSequenceDialog(shell, SWT.NONE, targets);
+					int counter = 0;
+					java.util.List<Event<?>> selectedSequence = null;
+					for( java.util.List<Event<?>> sequence : sequences ) {
+						if( counter==index ) {
+							selectedSequence = sequence;
+							break;
+						}
+						counter++;
+					}
+					editSequenceDialog.open(selectedSequence);
+					updateSequenceList();
+				}
+			}
+		});
+		btnShow.setText("Show");
+		
+		Button btnClose = new Button(shell, SWT.NONE);
+		btnClose.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				shell.dispose();
+			}
+		});
+		btnClose.setText("Close");
+
+	}
+	
+	@SuppressWarnings("unchecked")
+	private void updateSequenceList() {
+		sequenceList.removeAll();
+		Object dataObject = GlobalDataContainer.getInstance().getData(sequencesName);
+		if( SequenceInstanceOf.isCollectionOfSequences(dataObject)) {
+			sequences = (Collection<java.util.List<Event<?>>>) dataObject;
+			int seqDigits = 4; // TODO calculate seqDigits dynamically
+			int counter = 1;
+			for( java.util.List<Event<?>> sequence : sequences ) {
+				String seqName = "#"+Integer.toString(counter, seqDigits)+": "+sequence.size();
+				sequenceList.add(seqName);
+				counter++;
+			}
+			Object targetObject = GlobalDataContainer.getInstance().getData(sequencesName+"_targets");
+			targets = null;
+			if( targetObject instanceof SortedSet ) {
+				if( !((SortedSet<?>) targetObject).isEmpty() ) {
+					if( ((SortedSet<?>) targetObject).first() instanceof String ) {
+						targets = (SortedSet<String>) targetObject;
+					}
+				}
+			}
+			if( targets==null ) {
+				targets = new TreeSet<String>();
+				for( java.util.List<Event<?>> sequence : sequences ) {
+					for( Event<?> event : sequence ) {
+						String target = event.getTarget();
+						if( target!=null ) {
+							targets.add(target);
+						}
+					}
+				}
+			}
+		} else {
+			// TODO this should not happen - needs to be handled anyways
+		}
+	}
+
+}
Index: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SequencesTabComposite.java
===================================================================
--- trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SequencesTabComposite.java	(revision 229)
+++ trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SequencesTabComposite.java	(revision 230)
@@ -42,9 +42,17 @@
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				// TODO implement edit sequences.
-				MessageBox messageBox = new MessageBox(getShell(), SWT.ICON_INFORMATION);
-				messageBox.setText("Not implemented!");
-				messageBox.setMessage("Sorry! This functionality has not been implemented yet!");
-				messageBox.open();
+				String[] selectedSequences = sequenceList.getSelection();
+				if( selectedSequences.length==0 ) {
+					SWTHelpers.noSelectionError(getShell());
+				} 
+				else if(selectedSequences.length>1) {
+					MessageBox messageBox = new MessageBox(getShell(), SWT.ERROR);
+					messageBox.setMessage("Only one sequence can be edited at a time!");
+					messageBox.setText("Error");
+					messageBox.open();
+				} else {
+					SequencesDialog sequencesDialog = new SequencesDialog(getShell(), SWT.NONE);
+					sequencesDialog.open(selectedSequences[0]);
+				}
 			}
 		});
