RESOLVED - bug 433001: loosing Focus of Req-Table 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=433001
diff --git a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/AbstractProrCellEditorProvider.java b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/AbstractProrCellEditorProvider.java
index 742b694..92b1975 100644
--- a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/AbstractProrCellEditorProvider.java
+++ b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/AbstractProrCellEditorProvider.java
@@ -76,7 +76,7 @@
 

 		if (dd instanceof DatatypeDefinitionBoolean) {

 			return new ProrCheckboxCellEditor(agileGrid, editingDomain,

-					parent);

+					parent, affectedObject);

 		}

 		else if (dd instanceof DatatypeDefinitionDate) {

 			return new ProrDateCellEditor(agileGrid, editingDomain,

@@ -110,11 +110,11 @@
 					.getAttributeDefinition(value)).isMultiValued();

 			if (multiValued == null || multiValued.booleanValue() == false) {

 				return new ProrEnumerationSingleValueCellEditor(agileGrid, dde,

-						parent,

+						parent, affectedObject,

 						editingDomain, adapterFactory);

 			} else {

 				return new ProrEnumerationMultiValueCellEditor(agileGrid, dde,

-						parent,

+						parent, affectedObject,

 						editingDomain, adapterFactory);

 			}

 		} else if (dd instanceof DatatypeDefinitionXHTML) {

diff --git a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCellEditor.java b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCellEditor.java
index 171a949..ea13660 100644
--- a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCellEditor.java
+++ b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCellEditor.java
@@ -43,7 +43,7 @@
 	public ProrCellEditor(AgileGrid agileGrid, EditingDomain editingDomain,

 			Object parent,

 			Object affectedObject) {

-		super(agileGrid);

+		super(agileGrid, SWT.WRAP);

 		this.editingDomain = editingDomain;

 		this.affectedObject = affectedObject;

 		this.parent = parent;

diff --git a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCheckboxCellEditor.java b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCheckboxCellEditor.java
index b75abe7..b3ac23c 100644
--- a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCheckboxCellEditor.java
+++ b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrCheckboxCellEditor.java
@@ -10,6 +10,10 @@
  ******************************************************************************/

 package org.eclipse.rmf.reqif10.pror.editor.agilegrid;

 

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.List;

+

 import org.agilemore.agilegrid.AgileGrid;

 import org.agilemore.agilegrid.CellEditor;

 import org.agilemore.agilegrid.EditorActivationEvent;

@@ -39,12 +43,14 @@
 	private EditingDomain domain;

 	private AttributeValueBoolean attributeValue;

 	private Object parent;

+	private Object affectedObject;

 

 	public ProrCheckboxCellEditor(AgileGrid agileGrid, EditingDomain domain,

-			Object parent) {

+			Object parent, Object affectedObject) {

 		super(agileGrid, SWT.NONE);

 		this.domain = domain;

 		this.parent = parent;

+		this.affectedObject = affectedObject;

 	}

 

 	/**

@@ -72,7 +78,17 @@
 		}

 

 		AttributeValueBoolean av = (AttributeValueBoolean) value;

-		CompoundCommand cmd = new CompoundCommand();

+

+		final List<? super Object> affectedElements = new ArrayList<Object>();

+		affectedElements.add(affectedObject);

+

+		CompoundCommand cmd = new CompoundCommand() {

+			@Override

+			public Collection<?> getAffectedObjects() {

+				return affectedElements;

+			}

+		};

+

 		if (av.eContainer() == null) {

 			cmd.append(AddCommand

 					.create(domain,

diff --git a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationMultiValueCellEditor.java b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationMultiValueCellEditor.java
index cda6641..725c695 100644
--- a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationMultiValueCellEditor.java
+++ b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationMultiValueCellEditor.java
@@ -50,16 +50,18 @@
 	private AttributeValueEnumeration attributeValue;

 	private final EditingDomain editingDomain;

 	private Object parent;

+	private Object affectedObject;

 

 	public ProrEnumerationMultiValueCellEditor(AgileGrid agileGrid,

 			DatatypeDefinitionEnumeration dde,

-			Object parent, EditingDomain editingDomain,

+			Object parent, Object affectedObject, EditingDomain editingDomain,

 			AdapterFactory adapterFactory) {

 		super(agileGrid);

 		this.dde = dde;

 		this.editingDomain = editingDomain;

 		this.adapterFactory = adapterFactory;

 		this.parent = parent;

+		this.affectedObject = affectedObject;

 		populateItemList(dde);

 	}

 

@@ -111,7 +113,7 @@
 		CompoundCommand cmd = new CompoundCommand("Set Enumeration") {

 			public java.util.Collection<?> getAffectedObjects() {

 				ArrayList<? super Object> list = new ArrayList<Object>();

-				list.add(parent);

+				list.add(affectedObject);

 				return list;

 			};

 		};

diff --git a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationSingleValueCellEditor.java b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationSingleValueCellEditor.java
index f19db09..d4a944a 100644
--- a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationSingleValueCellEditor.java
+++ b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrEnumerationSingleValueCellEditor.java
@@ -36,15 +36,17 @@
 	private final EditingDomain editingDomain;

 	private AttributeValueEnumeration attributeValue;

 	private Object parent;

+	private Object affectedObject;

 

 	public ProrEnumerationSingleValueCellEditor(AgileGrid agileGrid,

 			DatatypeDefinitionEnumeration dde,

-			Object parent, EditingDomain editingDomain,

+			Object parent, Object affectedObject, EditingDomain editingDomain,

 			AdapterFactory adapterFactory) {

 		super(agileGrid);

 		this.editingDomain = editingDomain;

 		this.adapterFactory = adapterFactory;

 		this.parent = parent;

+		this.affectedObject = affectedObject;

 

 		Combo combo = (Combo) getControl();

 		String[] items = populateItemList(dde);

@@ -84,7 +86,7 @@
 		CompoundCommand cmd = new CompoundCommand("Set Enumeration") {

 			public java.util.Collection<?> getAffectedObjects() {

 				List<? super Object> list = new ArrayList<Object>();

-				list.add(parent);

+				list.add(affectedObject);

 				return list;

 			};

 		};

diff --git a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrXhtmlSimplifiedCellEditor.java b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrXhtmlSimplifiedCellEditor.java
index 4aff5ea..323944f 100644
--- a/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrXhtmlSimplifiedCellEditor.java
+++ b/org.eclipse.rmf.reqif10.pror.editor/src/org/eclipse/rmf/reqif10/pror/editor/agilegrid/ProrXhtmlSimplifiedCellEditor.java
@@ -10,6 +10,10 @@
  ******************************************************************************/

 package org.eclipse.rmf.reqif10.pror.editor.agilegrid;

 

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.List;

+

 import org.agilemore.agilegrid.AgileGrid;

 import org.eclipse.emf.common.command.Command;

 import org.eclipse.emf.common.command.CompoundCommand;

@@ -26,7 +30,6 @@
 import org.eclipse.rmf.reqif10.pror.editor.presentation.Reqif10EditorPlugin;

 import org.eclipse.rmf.reqif10.pror.util.ProrXhtmlSimplifiedHelper;

 import org.eclipse.rmf.reqif10.xhtml.XhtmlDivType;

-import org.eclipse.swt.SWT;

 import org.eclipse.swt.widgets.Display;

 

 /**

@@ -39,7 +42,7 @@
 	public ProrXhtmlSimplifiedCellEditor(AgileGrid agileGrid,

 			EditingDomain editingDomain, Object parent,

 			Object affectedObject) {

-		super(agileGrid, editingDomain, parent, SWT.WRAP);

+		super(agileGrid, editingDomain, parent, affectedObject);

 		this.parent = parent;

 	}

 

@@ -51,7 +54,16 @@
 				.stringToSimplifiedXhtml(text.getText());

 		

 		XhtmlContent origTheValue = attributeValue.getTheValue();

-		CompoundCommand compoundCommand = new CompoundCommand();

+		

+		final List<? super Object> affectedObjects = new ArrayList<Object>();

+		affectedObjects.add(affectedObject);

+		

+		CompoundCommand compoundCommand = new CompoundCommand() {

+			@Override

+			public Collection<?> getAffectedObjects() {

+				return affectedObjects;

+			}

+		};

 

 		// Set parent if necessary

 		if (attributeValue.eContainer() == null) {