You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by df...@apache.org on 2004/05/05 19:53:12 UTC
cvs commit: jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/resource BooleanResource.java
dflorey 2004/05/05 10:53:12
Modified: proposals/projector/src/java/org/apache/slide/projector/processor/form
ControlComposer.java Control.java Trigger.java
Form.java FormHandler.java
proposals/projector/src/java/org/apache/slide/projector/util
ProcessorHelper.java
proposals/projector/src/java/org/apache/slide/projector/resource
BooleanResource.java
Log:
Rebuilding form handling to enable multiple page spanning forms
Revision Changes Path
1.2 +77 -67 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/ControlComposer.java
Index: ControlComposer.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/ControlComposer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ControlComposer.java 5 May 2004 15:32:44 -0000 1.1
+++ ControlComposer.java 5 May 2004 17:53:12 -0000 1.2
@@ -73,6 +73,7 @@
super.configure(config);
ParameterDescriptor[] parentParameterDescriptors = super.getParameterDescriptors();
parameterDescriptors = new ParameterDescriptor[parentParameterDescriptors.length + 6];
+ System.arraycopy(parentParameterDescriptors, 0, parameterDescriptors, 0, parentParameterDescriptors.length);
parameterDescriptors[parentParameterDescriptors.length] =
new ParameterDescriptor(CONTROL_DESCRIPTIONS, new ParameterMessage("controlComposer/controlDescriptions"), new MapValueDescriptor());
parameterDescriptors[parentParameterDescriptors.length+1] =
@@ -91,10 +92,9 @@
Map controlDescriptions = ((MapResource)parameter.get(CONTROL_DESCRIPTIONS)).getMap();
String store = parameter.get(STORE).toString();
String domain = parameter.get(DOMAIN).toString();
- URI actionUri = (URI)parameter.get(ACTION);
- URI errorsProcessorUri = (URI)parameter.get(ERRORS_PROCESSOR);
+ URI actionUri = (URIResource)parameter.get(ACTION);
+ Resource errorsProcessorUri = (Resource)parameter.get(ERRORS_PROCESSOR);
Locale locale = ((LocaleResource)parameter.get(LOCALE)).getLocale();
- boolean validate = ((BooleanResource)parameter.get(VALIDATE)).booleanValue();
String state = DEFAULT_STATE;
List informations = context.getInformations();
MapResource generatedControls = new MapResource();
@@ -102,88 +102,98 @@
Map.Entry entry = (Map.Entry)i.next();
String controlName = (String)entry.getKey();
Map controlParameters = ((MapResource)entry.getValue()).getMap();
- if ( ((URI)controlParameters.get(Control.ACTION)) == null ) controlParameters.put(Control.ACTION, actionUri);
- Control control = (Control)ProcessorManager.getInstance().getProcessor((URI)controlParameters.get(CONTROL));
+ URI controlUri = (URI)controlParameters.get(CONTROL);
+ Processor control = (Processor)ProcessorManager.getInstance().getProcessor(controlUri);
+ Resource controlActionUri = (Resource)controlParameters.get(Control.ACTION);
+ if ( controlActionUri == null || controlActionUri instanceof NullResource ) controlActionUri = actionUri;
+ controlParameters.put(Control.ACTION, controlActionUri);
try {
ProcessorHelper.validate(control.getParameterDescriptors(), controlParameters, context);
} catch ( ValidationException exception ) {
- throw new ValidationException(new ErrorMessage("controlComposer/controlParameterInvalid", new Object[] { control }), exception);
+ throw new ValidationException(new ErrorMessage("controlComposer/controlParameterInvalid", new Object[] { controlUri }), exception);
}
- ParameterDescriptor parameterDescriptor = control.getParameterDescriptor(controlParameters, context);
- String parameterName = parameterDescriptor.getName();
- ParameterMessage description = (ParameterMessage)parameterDescriptor.getDescription();
- boolean required = parameterDescriptor.isRequired();
- String controlState = Control.OPTIONAL_CONTROL;
- if ( required ) {
- controlState = Control.REQUIRED_CONTROL;
- }
- Object controlValue = null;
- if ( validate ) {
+ if ( control instanceof Control ) {
+ ParameterDescriptor parameterDescriptor = Control.getParameterDescriptor(controlParameters, context);
+ String parameterName = parameterDescriptor.getName();
+ ParameterMessage description = (ParameterMessage)parameterDescriptor.getDescription();
+ boolean required = parameterDescriptor.isRequired();
+ String controlState = Control.OPTIONAL_CONTROL;
+ if ( required ) {
+ controlState = Control.REQUIRED_CONTROL;
+ }
+ Object controlValue = null;
MapResource mapResource = (MapResource)context.getStore(StoreHelper.getStoreByName(store)).get(domain);
+ boolean validate = false;
if ( mapResource != null ) {
controlValue = mapResource.getMap().get(parameterName);
+ validate = ((BooleanResource)mapResource.getMap().get(VALIDATE)).booleanValue();
}
- try {
- controlValue = ProcessorHelper.validate(parameterDescriptor, controlValue, context);
- } catch ( ValidationException exception ) {
- controlValue = StringValueDescriptor.toString(controlValue);
- context.addInformation(new Information(Information.ERROR, exception.getErrorMessage(), new String[] { parameterName }));
- }
- controlParameters.put(Control.VALUE, controlValue);
- if ( hasErrors(informations, parameterName) ) {
- if ( required ) {
- controlState = Control.REQUIRED_INVALID_CONTROL;
- } else {
- controlState = Control.OPTIONAL_INVALID_CONTROL;
+ if ( validate ) {
+ try {
+ controlValue = ProcessorHelper.validate(parameterDescriptor, controlValue, context);
+ } catch ( ValidationException exception ) {
+ controlValue = StringValueDescriptor.toString(controlValue);
+ context.addInformation(new Information(Information.ERROR, exception.getErrorMessage(), new String[] { parameterName }));
}
- explodeInformations(controlParameters, informations, parameterName, locale);
- } else {
- if ( required ) {
- controlState = Control.REQUIRED_INVALID_CONTROL;
+ controlParameters.put(Control.VALUE, controlValue);
+ if ( hasErrors(informations, parameterName) ) {
+ if ( required ) {
+ controlState = Control.REQUIRED_INVALID_CONTROL;
+ } else {
+ controlState = Control.OPTIONAL_INVALID_CONTROL;
+ }
+ explodeInformations(controlParameters, informations, parameterName, locale);
} else {
- controlState = Control.OPTIONAL_VALID_CONTROL;
+ if ( required ) {
+ controlState = Control.REQUIRED_INVALID_CONTROL;
+ } else {
+ controlState = Control.OPTIONAL_VALID_CONTROL;
+ }
}
}
- }
- controlParameters.put(Control.STATE, controlState);
- controlParameters.put(Control.VALUE, controlValue);
- Result controlResult = control.process(controlParameters, context);
- Resource controlContainerUri = (Resource)controlParameters.get(CONTROL_CONTAINER);
- if ( controlContainerUri != null ) {
- Processor controlContainer = ProcessorManager.getInstance().getProcessor((URI)controlContainerUri);
- Map controlContainerParameters = new HashMap();
- controlContainerParameters.putAll(parameter);
- if ( hasErrors(informations, parameterName) ) {
- explodeInformations(controlContainerParameters, informations, parameterName, locale);
- }
- controlContainerParameters.put(CONTROL, controlResult.getResultEntries().get(OUTPUT));
- controlContainerParameters.put(TITLE, description.getTitle(locale, parameterName ));
- try {
- controlContainerParameters.put(TEXT, description.getText(locale));
- controlContainerParameters.put(PROMPT, description.getPrompt(locale));
- } catch ( MessageNotFoundException exception ) {
- controlContainerParameters.put(TEXT, NO_PARAMETER_MESSAGE_AVAILABLE.getText(locale, " "));
- controlContainerParameters.put(PROMPT, NO_PARAMETER_MESSAGE_AVAILABLE.getPrompt(locale, " "));
+ controlParameters.put(Control.STATE, controlState);
+ controlParameters.put(Control.VALUE, controlValue);
+ Result controlResult = control.process(controlParameters, context);
+ Resource controlContainerUri = (Resource)controlParameters.get(CONTROL_CONTAINER);
+ if ( controlContainerUri != null ) {
+ Processor controlContainer = ProcessorManager.getInstance().getProcessor((URI)controlContainerUri);
+ Map controlContainerParameters = new HashMap();
+ controlContainerParameters.putAll(parameter);
+ if ( hasErrors(informations, parameterName) ) {
+ explodeInformations(controlContainerParameters, informations, parameterName, locale);
+ }
+ controlContainerParameters.put(CONTROL, controlResult.getResultEntries().get(OUTPUT));
+ controlContainerParameters.put(TITLE, description.getTitle(locale, parameterName ));
+ try {
+ controlContainerParameters.put(TEXT, description.getText(locale));
+ controlContainerParameters.put(PROMPT, description.getPrompt(locale));
+ } catch ( MessageNotFoundException exception ) {
+ controlContainerParameters.put(TEXT, NO_PARAMETER_MESSAGE_AVAILABLE.getText(locale, " "));
+ controlContainerParameters.put(PROMPT, NO_PARAMETER_MESSAGE_AVAILABLE.getPrompt(locale, " "));
+ }
+ try {
+ ProcessorHelper.validate(controlContainer.getParameterDescriptors(), controlContainerParameters, context);
+ } catch ( ValidationException exception ) {
+ throw new ValidationException(new ErrorMessage("controlComposer/controlContainerParameterInvalid", new Object[] { controlContainerUri }), exception);
+ }
+ Result controlContainerResult = controlContainer.process(controlContainerParameters, context);
+ generatedControls.getMap().put(controlName, controlContainerResult.getResultEntries().get(OUTPUT));
+ } else {
+ generatedControls.getMap().put(controlName, controlResult.getResultEntries().get(OUTPUT));
+ }
+ if ( controlState == Control.OPTIONAL_INVALID_CONTROL || controlState == Control.REQUIRED_INVALID_CONTROL ) {
+ state = INVALID_STATE;
+ } else if ( state == DEFAULT_STATE && ( controlState == Control.OPTIONAL_VALID_CONTROL || controlState == Control.REQUIRED_VALID_CONTROL ) ) {
+ state = VALID_STATE;
}
- try {
- ProcessorHelper.validate(controlContainer.getParameterDescriptors(), controlContainerParameters, context);
- } catch ( ValidationException exception ) {
- throw new ValidationException(new ErrorMessage("controlComposer/controlContainerParameterInvalid", new Object[] { controlContainerUri }), exception);
- }
- Result controlContainerResult = controlContainer.process(controlContainerParameters, context);
- generatedControls.getMap().put(controlName, controlContainerResult.getResultEntries().get(OUTPUT));
} else {
+ Result controlResult = control.process(controlParameters, context);
generatedControls.getMap().put(controlName, controlResult.getResultEntries().get(OUTPUT));
}
- if ( controlState == Control.OPTIONAL_INVALID_CONTROL || controlState == Control.REQUIRED_INVALID_CONTROL ) {
- state = INVALID_STATE;
- } else if ( state == DEFAULT_STATE && ( controlState == Control.OPTIONAL_VALID_CONTROL || controlState == Control.REQUIRED_VALID_CONTROL ) ) {
- state = VALID_STATE;
- }
}
Result composerResult = new Result(state, GENERATED_CONTROLS, generatedControls);
- if ( errorsProcessorUri != null ) {
- Processor errorsTable = ProcessorManager.getInstance().getProcessor(errorsProcessorUri);
+ if ( errorsProcessorUri instanceof URI ) {
+ Processor errorsTable = ProcessorManager.getInstance().getProcessor((URI)errorsProcessorUri);
List errorList = new ArrayList();
for ( Iterator i = context.getInformations().iterator(); i.hasNext(); ) {
Information info = (Information)i.next();
1.3 +10 -10 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Control.java
Index: Control.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Control.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Control.java 5 May 2004 15:32:44 -0000 1.2
+++ Control.java 5 May 2004 17:53:12 -0000 1.3
@@ -69,15 +69,6 @@
return new Result(state, OUTPUT, renderFragment(fragment, parameter));
}
- public ParameterDescriptor getParameterDescriptor(Map parameter, Context context) throws ProcessException {
- URI actionUri = (URIResource)parameter.get(ACTION);
- Processor action = ProcessorManager.getInstance().getProcessor(actionUri);
- String parameterName = parameter.get(PARAMETER).toString();
- ParameterDescriptor parameterDescriptor = ProcessorHelper.getParameterDescriptor(action, parameterName);
- if ( parameterDescriptor == null ) throw new ProcessException(new ErrorMessage("control/actionParameterNotFound", new Object[] { parameterName, actionUri }));
- return parameterDescriptor;
- }
-
public void configure(StreamableResource config) throws ConfigurationException {
super.configure(config);
ParameterDescriptor[] parentParameterDescriptors = super.getParameterDescriptors();
@@ -116,6 +107,15 @@
public ResultDescriptor getResultDescriptor() {
return resultDescriptor;
+ }
+
+ static ParameterDescriptor getParameterDescriptor(Map parameter, Context context) throws ProcessException {
+ URI actionUri = (URIResource)parameter.get(ACTION);
+ Processor action = ProcessorManager.getInstance().getProcessor(actionUri);
+ String parameterName = parameter.get(PARAMETER).toString();
+ ParameterDescriptor parameterDescriptor = ProcessorHelper.getParameterDescriptor(action, parameterName);
+ if ( parameterDescriptor == null ) throw new ProcessException(new ErrorMessage("control/actionParameterNotFound", new Object[] { parameterName, actionUri }));
+ return parameterDescriptor;
}
protected String getName() {
1.4 +14 -4 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java
Index: Trigger.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Trigger.java 5 May 2004 15:32:44 -0000 1.3
+++ Trigger.java 5 May 2004 17:53:12 -0000 1.4
@@ -3,8 +3,10 @@
import java.util.Map;
import org.apache.slide.projector.engine.Process;
+import org.apache.slide.projector.engine.ProcessorManager;
import org.apache.slide.projector.ConfigurationException;
import org.apache.slide.projector.Context;
+import org.apache.slide.projector.Resource;
import org.apache.slide.projector.Result;
import org.apache.slide.projector.URI;
import org.apache.slide.projector.descriptor.BooleanValueDescriptor;
@@ -14,6 +16,7 @@
import org.apache.slide.projector.i18n.ParameterMessage;
import org.apache.slide.projector.processor.TemplateRenderer;
import org.apache.slide.projector.resource.BooleanResource;
+import org.apache.slide.projector.resource.NullResource;
import org.apache.slide.projector.resource.StreamableResource;
import org.apache.slide.projector.resource.StringResource;
@@ -27,6 +30,7 @@
public final static String ACTION = "action";
public final static String LAST_STEP = "last-step";
public final static String VALIDATE = "validate";
+ public final static String BOOKMARK = "bookmark";
private ParameterDescriptor[] parameterDescriptors;
@@ -35,10 +39,14 @@
}
public Result process(Map parameter, Context context) throws Exception {
- String targetStep = parameter.get(Process.STEP).toString();
+ Resource bookmark = (Resource)parameter.get(BOOKMARK);
+ if ( bookmark instanceof NullResource ) {
+ bookmark = context.getBookmark();
+ }
+ String targetStep = parameter.get(Process.STEP).toString();
BooleanResource validate = (BooleanResource)parameter.get(VALIDATE);
URI actionUri = (URI)parameter.get(ACTION);
- String instruction = actionUri + ";" + validate + ";" + targetStep;
+ String instruction = actionUri + ";" + validate + ";" + targetStep + ";" + bookmark;
parameter.put(INSTRUCTION, new StringResource(instruction));
return new Result(OK, OUTPUT, renderFragment(getName(), parameter));
}
@@ -58,8 +66,10 @@
new ParameterDescriptor(ACTION, new ParameterMessage("trigger/action"), new URIValueDescriptor());
parameterDescriptors[parentParameterDescriptors.length ] =
new ParameterDescriptor(Process.STEP, new ParameterMessage("trigger/step"), new StringValueDescriptor());
- parameterDescriptors[parentParameterDescriptors.length + 2] =
+ parameterDescriptors[parentParameterDescriptors.length + 1] =
new ParameterDescriptor(VALIDATE, new ParameterMessage("trigger/validate"), new BooleanValueDescriptor(), BooleanResource.TRUE);
+ parameterDescriptors[parentParameterDescriptors.length + 2] =
+ new ParameterDescriptor(BOOKMARK, new ParameterMessage("trigger/bookmark"), new URIValueDescriptor(), NullResource.NULL );
}
public ParameterDescriptor[] getParameterDescriptors() {
1.4 +22 -27 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Form.java
Index: Form.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Form.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Form.java 5 May 2004 15:32:44 -0000 1.3
+++ Form.java 5 May 2004 17:53:12 -0000 1.4
@@ -27,6 +27,7 @@
import org.apache.slide.projector.descriptor.*;
import org.apache.slide.projector.engine.Process;
import org.apache.slide.projector.engine.ContentType;
+import org.apache.slide.projector.engine.ProcessorManager;
import org.apache.slide.projector.i18n.DefaultMessage;
import org.apache.slide.projector.i18n.ErrorMessage;
import org.apache.slide.projector.i18n.ParameterMessage;
@@ -79,8 +80,8 @@
String domain = parameter.get(DOMAIN).toString();
URI actionUri = (URI)parameter.get(ACTION);
Locale locale = ((LocaleResource)parameter.get(LOCALE)).getLocale();
- boolean validate = ((BooleanResource)parameter.get(VALIDATE)).booleanValue();
List informations = context.getInformations();
+ parameter.put(HANDLER, ProcessorManager.getInstance().process(ProcessorManager.URL, parameter.get(HANDLER), context));
MapResource controlDescriptions = new MapResource();
for (int i = 0; i < parameterDescriptors.length; i++) {
String parameterName = parameterDescriptors[i].getName();
@@ -110,45 +111,39 @@
public void configure(StreamableResource config) throws ConfigurationException {
super.configure(config);
ParameterDescriptor[] parentParameterDescriptors = super.getParameterDescriptors();
- parameterDescriptors = new ParameterDescriptor[parentParameterDescriptors.length + 6 ];
int counter = 0;
+ List parameterList = new ArrayList();
for (int i = 0; i < parentParameterDescriptors.length; i++) {
if (parentParameterDescriptors[i].getName().startsWith(CONTROL_IDENTIFIER)) {
- parameterDescriptors[counter] = new ParameterDescriptor(parentParameterDescriptors[i].getName(),
+ parameterList.add(new ParameterDescriptor(parentParameterDescriptors[i].getName(),
new ParameterMessage("form/control"),
new MapValueDescriptor(new ParameterDescriptor[] {
new ParameterDescriptor(CONTROL, new ParameterMessage("form/control"), new URIValueDescriptor()),
new ParameterDescriptor(Control.ACTION, new ParameterMessage("control/action"), new URIValueDescriptor(), NullResource.NULL),
new ParameterDescriptor(Control.PARAMETER, new ParameterMessage("control/parameter"), new StringValueDescriptor()),
- }));
- counter++;
+ })));
} else if (parentParameterDescriptors[i].getName().startsWith(TRIGGER_IDENTIFIER)) {
- parameterDescriptors[counter] = new ParameterDescriptor(parentParameterDescriptors[i].getName(),
+ parameterList.add(new ParameterDescriptor(parentParameterDescriptors[i].getName(),
new ParameterMessage("form/trigger"),
new MapValueDescriptor(new ParameterDescriptor[] {
new ParameterDescriptor(CONTROL, new ParameterMessage("form/trigger"), new URIValueDescriptor()),
new ParameterDescriptor(Trigger.ACTION, new ParameterMessage("trigger/action"), new URIValueDescriptor(), NullResource.NULL),
new ParameterDescriptor(Process.STEP, new ParameterMessage("trigger/step"), new ResourceValueDescriptor(), new NullResource()),
- }));
- counter++;
- } else if (!parentParameterDescriptors[i].getName().equals(FRAGMENT)) {
- parameterDescriptors[counter] = parentParameterDescriptors[i];
- counter++;
+ })));
+ } else if (!parentParameterDescriptors[i].getName().equals(FRAGMENT)
+ && !parentParameterDescriptors[i].getName().equals(CONTROL_DESCRIPTIONS)
+ && !parentParameterDescriptors[i].getName().equals(HANDLER)
+ && !parentParameterDescriptors[i].getName().equals(METHOD)) {
+ parameterList.add(parentParameterDescriptors[i]);
}
}
- parameterDescriptors[counter] =
- new ParameterDescriptor(HANDLER, new ParameterMessage("form/handler"), new URIValueDescriptor(), Constants.DEFAULT_FORM_HANDLER);
- parameterDescriptors[counter+1] =
- new ParameterDescriptor(METHOD, new ParameterMessage("form/method"), new StringValueDescriptor(methods), new StringResource(POST));
- parameterDescriptors[counter+2] =
- new ParameterDescriptor(LOCALE, new ParameterMessage("form/locale"), new LocaleValueDescriptor());
- parameterDescriptors[counter+3] =
- new ParameterDescriptor(ACTION, new ParameterMessage("form/action"), new URIValueDescriptor());
- parameterDescriptors[counter+4] =
- new ParameterDescriptor(STORE, new ParameterMessage("form/store"), new StringValueDescriptor(Store.stores));
- parameterDescriptors[counter+5] =
- new ParameterDescriptor(DOMAIN, new ParameterMessage("form/domain"), new StringValueDescriptor());
-
+ parameterList.add(new ParameterDescriptor(HANDLER, new ParameterMessage("form/handler"), new URIValueDescriptor(), Constants.DEFAULT_FORM_HANDLER));
+ parameterList.add(new ParameterDescriptor(METHOD, new ParameterMessage("form/method"), new StringValueDescriptor(methods), new StringResource(POST)));
+ parameterList.add(new ParameterDescriptor(LOCALE, new ParameterMessage("form/locale"), new LocaleValueDescriptor()));
+ parameterList.add(new ParameterDescriptor(ACTION, new ParameterMessage("form/action"), new URIValueDescriptor()));
+ parameterList.add(new ParameterDescriptor(STORE, new ParameterMessage("form/store"), new StringValueDescriptor(Store.stores)));
+ parameterList.add(new ParameterDescriptor(DOMAIN, new ParameterMessage("form/domain"), new StringValueDescriptor()));
+ parameterDescriptors = (ParameterDescriptor[])parameterList.toArray(new ParameterDescriptor[parameterList.size()]);
try {
defaultTemplate = getRequiredFragment(DEFAULT_FORM);
} catch ( ProcessException exception ) {
1.5 +6 -4 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormHandler.java
Index: FormHandler.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormHandler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FormHandler.java 5 May 2004 15:32:44 -0000 1.4
+++ FormHandler.java 5 May 2004 17:53:12 -0000 1.5
@@ -25,12 +25,12 @@
public class FormHandler implements Processor {
private final static String FORM_PARAMETER_IDENTIFIER = "form:";
-
+
private final static ParameterDescriptor[] parameterDescriptors = new ParameterDescriptor[] {
new ParameterDescriptor(Trigger.INSTRUCTION, new ParameterMessage("formHandler/instruction"), new StringValueDescriptor()),
new ParameterDescriptor(Trigger.LAST_STEP, new ParameterMessage("formHandler/last-step"), new URIValueDescriptor()),
new ParameterDescriptor(ControlComposer.STORE, new ParameterMessage("formHandler/store"), new StringValueDescriptor(Store.stores)),
- new ParameterDescriptor(ControlComposer.DOMAIN, new ParameterMessage("formHandler/form-step"), new StringValueDescriptor())
+ new ParameterDescriptor(ControlComposer.DOMAIN, new ParameterMessage("formHandler/domain"), new StringValueDescriptor())
};
private final static ResultDescriptor resultDescriptor = new ResultDescriptor(
@@ -45,6 +45,7 @@
URI actionURI = new URIResource(tokenizer.nextToken());
boolean validate = Boolean.valueOf(tokenizer.nextToken()).booleanValue();
String targetStep = tokenizer.nextToken();
+ URI bookmarkUri = new URIResource(tokenizer.nextToken());
String lastStep = parameter.get(Trigger.LAST_STEP).toString();
String domain = parameter.get(ControlComposer.DOMAIN).toString();
Store store = context.getStore(StoreHelper.getStoreByName(parameter.get(ControlComposer.STORE).toString()));
@@ -58,6 +59,7 @@
} else {
map = mapResource.getMap();
}
+ map.put(ControlComposer.VALIDATE, new BooleanResource(validate));
for ( Iterator i = parameter.entrySet().iterator(); i.hasNext(); ) {
Map.Entry entry = (Map.Entry)i.next();
String key = (String)entry.getKey();
@@ -75,7 +77,7 @@
}
// 4. Launch target step if validation is successfull
map.put(Process.STEP, targetStep);
- Processor bookmark = ProcessorManager.getInstance().getProcessor(context.getBookmark());
+ Processor bookmark = ProcessorManager.getInstance().getProcessor(bookmarkUri);
return bookmark.process(parameter, context);
}
1.2 +7 -3 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/util/ProcessorHelper.java
Index: ProcessorHelper.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/util/ProcessorHelper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorHelper.java 3 May 2004 14:20:29 -0000 1.1
+++ ProcessorHelper.java 5 May 2004 17:53:12 -0000 1.2
@@ -29,8 +29,12 @@
String parameterName = null;
for ( int i = 0; i < parameterDescriptors.length; i++ ) {
parameterName = parameterDescriptors[i].getName();
- Resource parameterValue = validate(parameterDescriptors[i], parameters.get(parameterName), context);
- parameters.put(parameterName, parameterValue);
+ try {
+ Resource parameterValue = validate(parameterDescriptors[i], parameters.get(parameterName), context);
+ parameters.put(parameterName, parameterValue);
+ } catch ( ValidationException exception ) {
+ throw new ValidationException(new ErrorMessage("parameterValidationFailed", new String[] { parameterName }), exception);
+ }
}
}
1.2 +4 -0 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/resource/BooleanResource.java
Index: BooleanResource.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/resource/BooleanResource.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BooleanResource.java 3 May 2004 14:20:24 -0000 1.1
+++ BooleanResource.java 5 May 2004 17:53:12 -0000 1.2
@@ -24,6 +24,10 @@
return CONTENT_TYPE;
}
+ public String toString() {
+ return String.valueOf(booleanValue);
+ }
+
public void save(XMLStringWriter writer) {
writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(String.valueOf(booleanValue)), XMLWriter.createEndTag("value"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org