On Sun, 17 Mar 2002, Ivelin Ivanov wrote:
<snip/>
> > ok - then we are on the same track... but please consider the population
> > syntax I proposed. I think resetting something is misleading and it works
> > fine without.
>
> I certainly would. You put a lot more thought into your code than I have for
> the snippet above.
> Can you please paste your code <here/> so that I can match exactly your
> syntax to the one above?
see it action or event based rather than page based. a hit on a button
generates an event or action that populates and (maybe) validates. So you
are completely free to populate or not populate, to validate or not
validate on this specific event.
> > I have already implemented an abstraction for the binding. So binding a
> > bean is the same a having no a simple DOM as instance store instead.
>
> Yammy!
> How does one choose JavaBean vs DOM binding?
Currently you just use a different implementation. But this should go
into a factory instead.
look a this multiaction example:
public class PreceptorDemoAction extends AbstractPreceptorAction {
public Map introspection(Redirector redirector, SourceResolver resolver, Map
objectModel, String src, Parameters par) throws Exception {
Session session = createSession(objectModel);
Preceptor preceptor = preceptorRegistry.lookupPreceptor("cocoon-installation");
// for a DOM
Instance instance = instanceFactory.createDOMInstance();
// for a Bean
MyBean bean = new MyBean();
Instance instance = instanceFactory.createBeanInstance(bean);
instance.initialize(preceptor);
// if DOM or Bean you can always use
instance.setValue("cocoon-installation/user/name","enter here");
session.setAttribute("feedbackform",instance);
return(page(FIRST));
}
public Map doNext(Redirector redirector, SourceResolver resolver, Map objectModel,
String src, Parameters par) throws Exception {
populate(objectModel, "feedbackform", "cocoon-installation/user/*");
List errors = validate(objectModel, "feedbackform", "cocoon-installation/user/*");
if(errors != null) {
getLogger().debug("there are errors on the page");
return (page(FIRST));
}
else {
getLogger().debug("all constraints are ok");
return (page(SECOND));
}
}
So a 3 page wizard basically means 3 event hooks aka methods like the "doNext".
So if we manage to have a preceptor
public interface Preceptor {
public ConstraintList getConstraitsFor( String xpath );
public boolean isValidNode( String xpath );
}
...wrapping the different validation APIs we can drop in
each validating schema: XSD,RELAX,DTD and (with the API link you sent)
maybe even Schematron...
Later I'd like to see this configurable with a XML descriptor.
--
Torsten
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]