Non-sprint task - Fix for Bug 489370

Deleted @Version annotation for DataCellPO to remove support for
OptimisticLock.
Also fixed that the DataSetPage might change data even the workversion
could not be locked.

see http://eclip.se/489370

Change-Id: I2be771273f97d652d7339db1898f340ac6d8ad43
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/DataCellPO.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/DataCellPO.java
index ce796a2..d853795 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/DataCellPO.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/DataCellPO.java
@@ -7,7 +7,6 @@
 import javax.persistence.Id;
 import javax.persistence.Table;
 import javax.persistence.Transient;
-import javax.persistence.Version;
 
 /**
  * Representing data values, see http://bugs.eclipse.org/488218
@@ -27,9 +26,6 @@
      */
     private Long m_parentProjectId = null;
 
-    /** Persistence (JPA / EclipseLink) version id */
-    private transient Integer m_version;
-
     /**
      * Constructor for JPA
      */
@@ -76,17 +72,13 @@
         this.m_id = id;
     }
     
-    /** {@inheritDoc} */
-    @Version
-    public Integer getVersion() {
-        return m_version;
-    }
-
-    /** 
-     * @param version the version
+    /**
+     * Version is not used for optimistic locking for this class.
+     * @return <code>0</code>
      */
-    void setVersion(Integer version) {
-        m_version = version;
+    @Transient
+    public Integer getVersion() {
+        return 0;
     }
 
     /** {@inheritDoc} */
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/editors/JBEditorHelper.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/editors/JBEditorHelper.java
index 89eb554..05cf97f 100644
--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/editors/JBEditorHelper.java
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/editors/JBEditorHelper.java
@@ -100,6 +100,8 @@
     }
     
     /**
+     * Requests the editable state and displays a message when
+     * the state is not {@link EditableState#OK}
      * @return the editable state
      */
     public EditableState requestEditableState() {
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/dataset/AbstractDataSetPage.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/dataset/AbstractDataSetPage.java
index 80ecf9e..f1e8dfa 100644
--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/dataset/AbstractDataSetPage.java
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/dataset/AbstractDataSetPage.java
@@ -473,30 +473,32 @@
         final int rowCount = getParamInterfaceObj().getDataManager()
                 .getDataSetCount();
         final AbstractJBEditor editor = (AbstractJBEditor)m_currentPart;
-        editor.getEditorHelper().requestEditableState();
-        if (getParamInterfaceObj() instanceof IExecTestCasePO) {
-            ITDManager man = ((IExecTestCasePO)getParamInterfaceObj())
-                    .resolveTDReference();
-            if (!man.equals(getTableViewer().getInput())) {
-                getTableViewer().setInput(man);
+        if (editor.getEditorHelper().requestEditableState()
+                == JBEditorHelper.EditableState.OK) {
+            if (getParamInterfaceObj() instanceof IExecTestCasePO) {
+                ITDManager man = ((IExecTestCasePO)getParamInterfaceObj())
+                        .resolveTDReference();
+                if (!man.equals(getTableViewer().getInput())) {
+                    getTableViewer().setInput(man);
+                }
             }
-        }
-        ITDManager tdman = getParamInterfaceObj().getDataManager();
-        if (fromIndex >= 0 && fromIndex < rowCount 
-                && toIndex >= 0 && toIndex < rowCount) {
-            IDataSetPO selectedDataSet = tdman.getDataSet(fromIndex);
-            if (fromIndex > toIndex) {
-                tdman.insertDataSet(selectedDataSet, toIndex);
-                tdman.removeDataSet(fromIndex + 1);
-            } else {
-                tdman.insertDataSet(selectedDataSet, toIndex + 1);
-                tdman.removeDataSet(fromIndex);
+            ITDManager tdman = getParamInterfaceObj().getDataManager();
+            if (fromIndex >= 0 && fromIndex < rowCount
+                    && toIndex >= 0 && toIndex < rowCount) {
+                IDataSetPO selectedDataSet = tdman.getDataSet(fromIndex);
+                if (fromIndex > toIndex) {
+                    tdman.insertDataSet(selectedDataSet, toIndex);
+                    tdman.removeDataSet(fromIndex + 1);
+                } else {
+                    tdman.insertDataSet(selectedDataSet, toIndex + 1);
+                    tdman.removeDataSet(fromIndex);
+                }
+                getTableCursor().setSelection(toIndex,
+                        getTableCursor().getColumn());
+                getTableViewer().refresh();
+                DataEventDispatcher.getInstance().fireParamChangedListener();
+                editor.getEditorHelper().setDirty(true);
             }
-            getTableCursor().setSelection(toIndex, 
-                    getTableCursor().getColumn());
-            getTableViewer().refresh();
-            DataEventDispatcher.getInstance().fireParamChangedListener();
-            editor.getEditorHelper().setDirty(true);
         }
     }
     
@@ -525,31 +527,33 @@
      */
     private void insertDataSet(int row) {
         final AbstractJBEditor editor = (AbstractJBEditor)m_currentPart;
-        editor.getEditorHelper().requestEditableState();
-        if (getParamInterfaceObj() instanceof IExecTestCasePO) {
-            ITDManager man = ((IExecTestCasePO)getParamInterfaceObj())
-                    .resolveTDReference();
-            if (!man.equals(getTableViewer().getInput())) {
-                getTableViewer().setInput(man);
+        if (editor.getEditorHelper().requestEditableState()
+                == JBEditorHelper.EditableState.OK) {
+            if (getParamInterfaceObj() instanceof IExecTestCasePO) {
+                ITDManager man = ((IExecTestCasePO)getParamInterfaceObj())
+                        .resolveTDReference();
+                if (!man.equals(getTableViewer().getInput())) {
+                    getTableViewer().setInput(man);
+                }
             }
+            if (row > -1) {
+                getParamBP().addDataSet(getParamInterfaceObj(), row);
+            } else {
+                // if first data set is added
+                addDataSet();
+            }
+            editor.getEditorHelper().setDirty(true);
+            getTableViewer().refresh();
+            int rowToSelect = row;
+            if (rowToSelect == -1) {
+                rowToSelect = getTable().getItemCount();
+            } else {
+                getTableCursor().setSelection(rowToSelect, 1);
+                setFocus();
+            }
+            getTable().setSelection(rowToSelect);
+            DataEventDispatcher.getInstance().fireParamChangedListener();
         }
-        if (row > -1) {
-            getParamBP().addDataSet(getParamInterfaceObj(), row);
-        } else {
-            // if first data set is added
-            addDataSet();
-        }
-        editor.getEditorHelper().setDirty(true);
-        getTableViewer().refresh();
-        int rowToSelect = row;
-        if (rowToSelect == -1) {
-            rowToSelect = getTable().getItemCount();
-        } else {
-            getTableCursor().setSelection(rowToSelect, 1);
-            setFocus();
-        }
-        getTable().setSelection(rowToSelect);
-        DataEventDispatcher.getInstance().fireParamChangedListener();
     }
     
     /**
@@ -1040,7 +1044,7 @@
          */
         private void setValueToModel(Object value, AbstractJBEditor editor,
                 int paramIndex, int dsNumber) {
-            if (editor.getEditorHelper().requestEditableState() 
+            if (editor.getEditorHelper().requestEditableState()
                     == JBEditorHelper.EditableState.OK) {
                 ParamNameBPDecorator mapper = editor.getEditorHelper()
                         .getEditSupport().getParamMapper();
@@ -1304,7 +1308,7 @@
         if (editor == null) {
             return;
         }
-        if (editor.getEditorHelper().requestEditableState() 
+        if (editor.getEditorHelper().requestEditableState()
                 == JBEditorHelper.EditableState.OK) {
             if (getParamInterfaceObj() instanceof IExecTestCasePO) {
                 ITDManager man = ((IExecTestCasePO)getParamInterfaceObj())