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/04 15:22:48 UTC

svn commit: r1088613 - in /incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher: edit/EditAction.java view/edit/FieldFactory.java view/edit/Selector.java view/form/HtmlFormBuilder.java

Author: rmatthews
Date: Mon Apr  4 13:22:48 2011
New Revision: 1088613

URL: http://svn.apache.org/viewvc?rev=1088613&view=rev
Log:
Dropdowns are marked as mandatory if no entry is available (and the field is required).

Clearable dropdown fields show as blank entries, rather than arbitrary text.

Modified:
    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/view/edit/FieldFactory.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/Selector.java
    incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HtmlFormBuilder.java

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=1088613&r1=1088612&r2=1088613&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 Mon Apr  4 13:22:48 2011
@@ -222,10 +222,9 @@ public class EditAction implements Actio
             FieldEditState fieldState = formState.createField(fieldId, newEntry);
             
             Consent consent = null;
-            if (field.isMandatory() && newEntry.equals("")) {
+            if (field.isMandatory() && (newEntry.equals("") || newEntry.equals("NULL"))) {
                 consent = new Veto(field.getName() + " required");
                 formState.setError("Not all fields have been set");
-
             } else if (field.getSpecification().containsFacet(ParseableFacet.class)) {
                 try {
                     ParseableFacet facet = field.getSpecification().getFacet(ParseableFacet.class);
@@ -239,7 +238,7 @@ public class EditAction implements Actio
                 }
 
             } else {
-                ObjectAdapter associate = context.getMappedObject(newEntry);
+                ObjectAdapter associate = newEntry.equals("null") ? null : context.getMappedObject(newEntry);
                 if (associate != null) {
                     IsisContext.getPersistenceSession().resolveImmediately(associate);
                 }

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/FieldFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/FieldFactory.java?rev=1088613&r1=1088612&r2=1088613&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/FieldFactory.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/FieldFactory.java Mon Apr  4 13:22:48 2011
@@ -87,13 +87,9 @@ public class FieldFactory {
         }
 
         if (optionsForParameter != null) {
-            int noOptions = optionsForParameter.length + (field.isRequired() ? 0 : 1);
+            int noOptions = optionsForParameter.length;
             String[] optionValues = new String[noOptions];
             String[] optionTitles = new String[noOptions];
-            if (!field.isRequired()) {
-                optionValues[0] = "null";
-                optionTitles[0] = "[not set]";
-            }
             for (int j = 0; j < optionsForParameter.length; j++) {
                 int i = j + (field.isRequired() ? 0 : 1);
                 optionValues[i] = getValue(context, optionsForParameter[j]);

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/Selector.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/Selector.java?rev=1088613&r1=1088612&r2=1088613&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/Selector.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/Selector.java Mon Apr  4 13:22:48 2011
@@ -137,7 +137,7 @@ public class Selector extends AbstractEl
         Iterator<ObjectAdapter> iterator = facet.iterator(collection);
         StringBuffer buffer = new StringBuffer();
         if (allowNotSet) {
-            buffer.append("<input type=\"radio\" name=\"" + field + "\" value=\"null\">" + "[not set]" + "</input><br/>\n");
+            buffer.append("<input type=\"radio\" name=\"" + field + "\" value=\"null\"></input><br/>\n");
         }
         while (iterator.hasNext()) {
             ObjectAdapter element = iterator.next();
@@ -165,7 +165,7 @@ public class Selector extends AbstractEl
         size = size == null ? "" : " size =\"" + size + "\"";
         buffer.append("<select name=\"" + field + "\"" + size + " >\n");
         if (allowNotSet) {
-            buffer.append("  <option value=\"null\">" + "[not set]" + "</option>\n");
+            buffer.append("  <option value=\"null\"></option>\n");
         }
         while (iterator.hasNext()) {
             ObjectAdapter element = iterator.next();

Modified: incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HtmlFormBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HtmlFormBuilder.java?rev=1088613&r1=1088612&r2=1088613&view=diff
==============================================================================
--- incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HtmlFormBuilder.java (original)
+++ incubator/isis/trunk/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/form/HtmlFormBuilder.java Mon Apr  4 13:22:48 2011
@@ -174,6 +174,9 @@ public class HtmlFormBuilder {
                 str.append("    <option value=\"" + ids[i] + "\"" + selectedSegment + ">" + options[i] + "</option>\n");
             }
         }
+        if (!field.isRequired() || length == 0) {
+            str.append("    <option value=\"null\"></option>\n");
+        }
         if (offerOther) {
             str.append("    <option value=\"-OTHER-\">Other:</option>\n");
         }
@@ -183,6 +186,9 @@ public class HtmlFormBuilder {
             String hideSegment = " style=\"display: none;\" "; // TODO only hide when JS enabled
             str.append("  <input type=\"text\" name=\"" + field.getName() + "-other\"" + hideSegment + lengthSegment + disabled + " />");
         }
+        if (field.isRequired() && length == 0) {
+            str.append(" <span class=\"required\">*</span>");
+        }
         str.append("\n");
         return str.toString();
     }