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) {