You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by rm...@apache.org on 2011/04/17 16:50:34 UTC

svn commit: r1094151 - in /incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher: ./ action/ context/ debug/ edit/ processor/ view/action/ view/debug/ view/edit/ view/form/

Author: rmatthews
Date: Sun Apr 17 14:50:33 2011
New Revision: 1094151

URL: http://svn.apache.org/viewvc?rev=1094151&view=rev
Log:
- Improved diagnostics

- Added identifier to each form so that validation messages can be linked to the specific form that it relates to. 

Modified:
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Names.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/debug/DebugAction.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/processor/Request.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionForm.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/CreateFormParameter.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Diagnostics.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HiddenInputField.java

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Names.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Names.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Names.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/Names.java Sun Apr 17 14:50:33 2011
@@ -34,6 +34,7 @@ public interface Names {
     static final String FIELD = "field";
     static final String FIELD_NAME = "field-name";
     static final String FOOTING = "footing";
+    static final String FORM_ID = "form-id";
     static final String FORM_TITLE = "title";
     static final String FORMS = "show-forms";
     static final String HEADING = "heading";

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/action/ActionAction.java Sun Apr 17 14:50:33 2011
@@ -63,6 +63,7 @@ public class ActionAction implements Act
     public void process(RequestContext context) throws IOException {
         String objectId = context.getParameter("_" + OBJECT);
         String version = context.getParameter("_" + VERSION);
+        String formId = context.getParameter("_" + FORM_ID);
         String methodName = context.getParameter("_" + METHOD);
         String override = context.getParameter("_" + RESULT_OVERRIDE);
         String resultName = context.getParameter("_" + RESULT_NAME);
@@ -131,7 +132,7 @@ public class ActionAction implements Act
                     context.addVariable(resultName, objectId, Scope.REQUEST);
                 }                
             } else {
-                entryState.setForm(objectId + ":" + methodName);
+                entryState.setForm(formId);
                 context.addVariable(ENTRY_FIELDS, entryState, Scope.REQUEST);
                 context.addVariable(resultName, objectId, Scope.REQUEST);
                 if (override != null) {
@@ -155,7 +156,7 @@ public class ActionAction implements Act
             
             IsisContext.getMessageBroker().addMessage(e.getMessage());
 
-            entryState.setForm(objectId + ":" + methodName);
+            entryState.setForm(formId);
             context.addVariable(ENTRY_FIELDS, entryState, Scope.REQUEST);
             context.addVariable(resultName, objectId, Scope.REQUEST);
             if (override != null) {

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java Sun Apr 17 14:50:33 2011
@@ -26,7 +26,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.isis.core.commons.debug.DebugBuilder;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -95,7 +94,7 @@ public class DefaultOidObjectMapping imp
         try {
             List<ObjectAdapter> savedObject = new ArrayList<ObjectAdapter>();
             JSONObject data = encodeTransientData(object, savedObject);
-            return "D" + StringEscapeUtils.escapeHtml(data.toString(4));
+            return "D" + data.toString(4); //StringEscapeUtils.escapeHtml(data.toString(4));
         } catch (JSONException e) {
             throw new ScimpiException(e);
         }
@@ -204,7 +203,7 @@ public class DefaultOidObjectMapping imp
     }
 
     public ObjectAdapter mappedTransientObject(String data) {
-        String objectData = StringEscapeUtils.unescapeHtml(data);
+        String objectData = data; //StringEscapeUtils.unescapeHtml(data);
         LOG.debug("data" + objectData);
 
         try {

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java Sun Apr 17 14:50:33 2011
@@ -775,7 +775,7 @@ public abstract class RequestContext {
     }
 
     public boolean showDebugData() {
-        Boolean variable = (Boolean) getVariable("debug");
+        Boolean variable = (Boolean) getVariable("debug-on");
         return variable != null && variable.booleanValue();
     }
 

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/debug/DebugAction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/debug/DebugAction.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/debug/DebugAction.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/debug/DebugAction.java Sun Apr 17 14:50:33 2011
@@ -76,7 +76,7 @@ public class DebugAction implements Acti
             authorization(context, null);      
         } else if (context.getParameter("mode") != null) {            
             boolean isDebugOn = context.getParameter("mode").equals("debug");
-            context.addVariable("debug", isDebugOn, Scope.SESSION);
+            context.addVariable("debug-on", isDebugOn, Scope.SESSION);
             // TODO need to use configuration to find path
             context.setRequestPath("/debug/debug.shtml");
         } else {
@@ -201,7 +201,8 @@ public class DebugAction implements Acti
         view.appendTitle("Specifications");
         for (ObjectSpecification spec : fullIdentifierList) {
             String name = spec.getSingularName();
-   //         view.appendln(name, specificationLink(spec));
+            view.appendln(name, "");
+            //view.appendln(name, specificationLink(spec));
         }
 
         

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java Sun Apr 17 14:50:33 2011
@@ -62,53 +62,13 @@ public class EditAction implements Actio
         try {
             String objectId = context.getParameter("_" + OBJECT);
             String version = context.getParameter("_" + VERSION);
+            String formId = context.getParameter("_" + FORM_ID);
             String resultName = context.getParameter("_" + RESULT_NAME);
             resultName = resultName == null ? RequestContext.RESULT : resultName;
             String override = context.getParameter("_" + RESULT_OVERRIDE);
             String message = context.getParameter("_" + MESSAGE);
             
             ObjectAdapter adapter = context.getMappedObject(objectId);
-            
-            if (adapter.isTransient()) {
-                //restore object state first
-                List<ObjectAssociation> fields = adapter.getSpecification().getAssociations();
-                for (int i = 0; i < fields.size(); i++) {
-                    ObjectAssociation field = fields.get(i);
-                    String fieldId = field.getId();
-                    String newEntry = context.getParameter(fieldId);
-                    if (fields.get(i).isOneToManyAssociation()) {
-                        continue;
-                    }
-                    if (newEntry != null && newEntry.equals("-OTHER-")) {
-                        newEntry = context.getParameter(fieldId + "-other");
-                    }
-                    if (newEntry == null) {
-                        // TODO duplicated in EditObject; line 97
-                        ObjectSpecification spec = field.getSpecification();
-                        if (spec.isOfType(IsisContext.getSpecificationLoader().loadSpecification(boolean.class))
-                                        || spec.isOfType(IsisContext.getSpecificationLoader().loadSpecification(Boolean.class))) {
-                            newEntry = FALSE;
-                        } else {
-                           continue;
-                        }
-                    }
-                    
-                    ObjectAdapter originalValue = null; // fields.get(i).get(adapter);
-                    if (fields.get(i).getSpecification().containsFacet(ParseableFacet.class)) {
-                        ParseableFacet facet = fields.get(i).getSpecification().getFacet(ParseableFacet.class);
-                        ObjectAdapter newValue =  facet.parseTextEntry(originalValue, newEntry);
-                        ((OneToOneAssociation) fields.get(i)).setAssociation(adapter, newValue);
-                    } else {
-                        ObjectAdapter associate = context.getMappedObject(newEntry);
-                        if (associate != null) {
-                            IsisContext.getPersistenceSession().resolveImmediately(associate);
-                        }
-                        ((OneToOneAssociation) fields.get(i)).setAssociation(adapter, associate);
-                    }
-                }
-
-            }
-            
             List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(ObjectAssociationFilters.dynamicallyVisible(session, adapter));
             FormState entryState = validateObject(context, adapter, fields);
             Version adapterVersion = adapter.getVersion();
@@ -121,7 +81,7 @@ public class EditAction implements Actio
                 String view = context.getParameter("_" + ERRORS);
                 context.setRequestPath(view, Dispatcher.EDIT);
                 
-                entryState.setForm(objectId);
+                entryState.setForm(formId);
                 context.addVariable(ENTRY_FIELDS, entryState, Scope.REQUEST);
                 context.addVariable(resultName, objectId, Scope.REQUEST);
                 if (override != null) {
@@ -166,7 +126,7 @@ public class EditAction implements Actio
                 String view = context.getParameter("_" + ERRORS);
                 context.setRequestPath(view, Dispatcher.EDIT);
                 
-                entryState.setForm(objectId);
+                entryState.setForm(formId);
                 context.addVariable(ENTRY_FIELDS, entryState, Scope.REQUEST);
                 context.addVariable(resultName, objectId, Scope.REQUEST);
                 if (override != null) {
@@ -231,10 +191,10 @@ public class EditAction implements Actio
                     ObjectAdapter originalValue = field.get(object);
                     ObjectAdapter newValue =  facet.parseTextEntry(originalValue, newEntry);
                     consent = ((OneToOneAssociation) field).isAssociationValid(object, newValue);
-                    fieldState.setValue(originalValue);
+                    fieldState.setValue(newValue);
                 } catch (TextEntryParseException e) {
                     consent = new Veto(e.getMessage());
-                    formState.setError("Not all fields have been entered correctly");
+//                    formState.setError("Not all fields have been entered correctly");
                 }
 
             } else {

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/processor/Request.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/processor/Request.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/processor/Request.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/processor/Request.java Sun Apr 17 14:50:33 2011
@@ -56,6 +56,7 @@ public class Request implements PageWrit
     private final Stack<StringBuffer> buffers;
     private final Stack<BlockContent> blocks;
     private final ProcessorLookup processors;
+    private int nextFormId;
     private int index = -1;
     private final String path;
 
@@ -241,6 +242,10 @@ public class Request implements PageWrit
         return path;
     }
 
+    public String nextFormId() {
+        return String.valueOf(nextFormId++);
+    }
+
     public String getOptionalProperty(String name, String defaultValue) {
         return getOptionalProperty(name, defaultValue, true);
     }

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionForm.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionForm.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionForm.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionForm.java Sun Apr 17 14:50:33 2011
@@ -55,6 +55,7 @@ public class ActionForm extends Abstract
         parameters.showIcon = request.isRequested(SHOW_ICON, true);
         parameters.buttonTitle = request.getOptionalProperty(BUTTON_TITLE);
         parameters.formTitle = request.getOptionalProperty(FORM_TITLE);
+        parameters.formId = request.getOptionalProperty(FORM_ID, request.nextFormId());
         parameters.resultName = request.getOptionalProperty(RESULT_NAME);
         parameters.resultOverride = request.getOptionalProperty(RESULT_OVERRIDE);
         parameters.scope = request.getOptionalProperty(SCOPE);
@@ -104,6 +105,7 @@ public class ActionForm extends Abstract
         HiddenInputField[] hiddenFields = new HiddenInputField[] {
                 new HiddenInputField("_" + OBJECT, objectId),
                 new HiddenInputField("_" + VERSION, version),
+                new HiddenInputField("_" + FORM_ID, parameterObject.formId),
                 new HiddenInputField("_" + METHOD, parameterObject.methodName),
                 parameterObject.forwardResultTo == null ? null : new HiddenInputField("_" + VIEW, context
                         .fullFilePath(parameterObject.forwardResultTo)),
@@ -138,7 +140,7 @@ public class ActionForm extends Abstract
         initializeFields(context, object, action, formFields);
         setDefaults(context, object, action, formFields, entryState, parameterObject.showIcon);
         String errors = null;
-        if (entryState != null && entryState.isForForm(objectId + ":" + parameterObject.methodName)) {
+        if (entryState != null && entryState.isForForm(parameterObject.formId)) {
             copyEntryState(context, object, action, formFields, entryState);
             errors = entryState.getError(); 
         }

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/CreateFormParameter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/CreateFormParameter.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/CreateFormParameter.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/CreateFormParameter.java Sun Apr 17 14:50:33 2011
@@ -27,6 +27,7 @@ public class CreateFormParameter {
     public String forwardErrorTo;
     public String buttonTitle;
     public String formTitle;
+    public String formId;
     public String resultName;
     public String scope;
     public String objectId;

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Diagnostics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Diagnostics.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Diagnostics.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Diagnostics.java Sun Apr 17 14:50:33 2011
@@ -17,7 +17,6 @@
  *  under the License.
  */
 
-
 package org.apache.isis.viewer.scimpi.dispatcher.view.debug;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -39,8 +38,8 @@ public class Diagnostics extends Abstrac
         boolean isForced = request.isRequested("force");
         if (isForced || request.getContext().showDebugData()) {
             request.appendHtml("<div class=\"debug\">");
-            request.appendHtml("<pre>");
             if ("page".equals(type)) {
+                request.appendHtml("<pre>");
                 RequestContext context = request.getContext();
                 request.appendHtml("URI:  " + context.getUri());
                 request.appendHtml("\n");
@@ -50,20 +49,26 @@ public class Diagnostics extends Abstrac
                     request.appendHtml("\n");
                     request.appendHtml("Object: " + result);
                 }
-            } else  if ("session".equals(type)) {
+                request.appendHtml("</pre>");
+            } else if ("session".equals(type)) {
+                request.appendHtml("<pre>");
                 AuthenticationSession session = IsisContext.getAuthenticationSession();
                 request.appendHtml("Session:  " + session.getUserName() + " " + session.getRoles());
-            } else  if ("variables".equals(type)) {
+                request.appendHtml("</pre>");
+            } else if ("variables".equals(type)) {
                 RequestContext context = request.getContext();
                 DebugHtmlString debug = new DebugHtmlString();
+                debug.appendln("", "");
                 context.append(debug, "variables");
+                debug.close();
                 request.appendHtml(debug.toString());
-            } else  if ("processing".equals(type)) {
-                request.appendHtml(request.getContext().getDebugTrace());      
+            } else if ("processing".equals(type)) {
+                request.appendHtml("<pre>");
+                request.appendHtml(request.getContext().getDebugTrace());
+                request.appendHtml("</pre>");
             } else {
                 request.appendHtml("<i>No such type " + type + "</i>");
             }
-            request.appendHtml("</pre>");
             request.appendHtml("</div>");
         }
     }
@@ -73,4 +78,3 @@ public class Diagnostics extends Abstrac
     }
 
 }
-

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java Sun Apr 17 14:50:33 2011
@@ -58,6 +58,7 @@ public class EditObject extends Abstract
         boolean showIcon = request.isRequested(SHOW_ICON, true);
         String buttonTitle = request.getOptionalProperty(BUTTON_TITLE);
         String formTitle = request.getOptionalProperty(FORM_TITLE);
+        String formId = request.getOptionalProperty(FORM_ID, request.nextFormId());
         String variable = request.getOptionalProperty(RESULT_NAME);
         String resultOverride = request.getOptionalProperty(RESULT_OVERRIDE);
         String scope = request.getOptionalProperty(SCOPE);
@@ -115,7 +116,7 @@ public class EditObject extends Abstract
         copyFieldContent(context, object, formFields, showIcon);
         overrideWithHtml(context, containedBlock, formFields);
         String errors = null;
-        if (entryState != null && entryState.isForForm(actualObjectId)) {
+        if (entryState != null && entryState.isForForm(formId)) {
             copyEntryState(context, object, formFields, entryState);
             errors = entryState.getError(); 
         }
@@ -124,6 +125,7 @@ public class EditObject extends Abstract
         List<HiddenInputField> hiddenFields = new ArrayList<HiddenInputField>();
         hiddenFields.add(new HiddenInputField("_" + OBJECT, actualObjectId));
         hiddenFields.add(new HiddenInputField("_" + VERSION, version));
+        hiddenFields.add(new HiddenInputField("_" + FORM_ID, formId));
         hiddenFields.add(completionMessage == null ? null : new HiddenInputField("_" + MESSAGE, completionMessage));
         hiddenFields.add(forwardEditedTo == null ? null : new HiddenInputField("_" + VIEW, context.fullFilePath(forwardEditedTo)));
         hiddenFields.add(new HiddenInputField("_" + ERRORS, errorView));

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HiddenInputField.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HiddenInputField.java?rev=1094151&r1=1094150&r2=1094151&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HiddenInputField.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HiddenInputField.java Sun Apr 17 14:50:33 2011
@@ -20,6 +20,8 @@
 
 package org.apache.isis.viewer.scimpi.dispatcher.view.form;
 
+import org.apache.commons.lang.StringEscapeUtils;
+
 public class HiddenInputField {
     private String value;
     private String name;
@@ -34,7 +36,7 @@ public class HiddenInputField {
     }
 
     public String getValue() {
-        return value;
+        return StringEscapeUtils.escapeHtml(value);
     }
 
 }