ZK - Open Source Ajax Java FrameworkZK - Open Source Ajax Java Framework

Want to execute System level composer first

dagarwal82
6 Jan 2012 22:29:44 GMT
6 Jan 2012 22:29:44 GMT

I want my System level composer to execute first before the 'apply ="mycomposer" . How can I do that.

terrytornadoTop Contributor
6 Jan 2012 22:54:32 GMT
6 Jan 2012 22:54:32 GMT

search for doBeforeCompose

public class MyComposer extends GenericForwardComposer implements Serializable {
   . . .

	@Override
	public ComponentInfo doBeforeCompose(Page page, Component parent, ComponentInfo compInfo) {
		System.out.println(I'm the first);
		return super.doBeforeCompose(page, parent, compInfo);
	}

	@Override
	public void doAfterCompose(Component window) throws Exception {
		System.out.println(I'm the second);
		super.doAfterCompose(window);
        }

best
Stephan

dagarwal82
7 Jan 2012 05:31:03 GMT
7 Jan 2012 05:31:03 GMT

Let me explain more. I am working on integration of zk with ofbiz. I want to have a composer which will take the applicationScope.get("delegator") and will assign it to my service layer.
home.zul

             <win apply="MyComposer"> .
      

system level controller

      SystemController extends GenericForwardComposer {
               @Override
	public void doAfterCompose(Component window) throws Exception {
		System.out.println(I'm the second);
		super.doAfterCompose(window);
        }
      }

I want SystemController's doAfterCompose method to run before MyController's doAfterCompose. Presently MyController's doAfterCompose run first.

dennis
6 Feb 2012 04:55:22 GMT
6 Feb 2012 04:55:22 GMT

you could do it in a system composer that implement ComposerExt.doBeforeComposeChildren