You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by fachhoch <fa...@gmail.com> on 2010/10/06 17:11:12 UTC

wicket-groovy guru's please help me

here is my groovy file 

package gov.hhs.acf.web.util;


import java.util.ArrayList;
import java.util.List;


import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.StringResourceStream;


class UserMenuItems implements MenuItems {

	
	List<Component> components ;
	
	
	void myInit(){
		components= new ArrayList<Component>();
		components.add (new OMBCircularPanel());
		components.add (new SendComments());
	}  
	
	@Override
	public List<Component> getComponents() {
		myInit();
		return components;
	}
	
		
	private abstract  class CustomPanel  extends  Panel implements 
IMarkupResourceStreamProvider{
		public CustomPanel() {
			super(MenuItems.menuItemId);
		}
		public IResourceStream getMarkupResourceStream(MarkupContainer
container,Class<?> containerClass){
			return new StringResourceStream(getMarkUp());
		}

		protected abstract String getMarkUp();
	}

	private  class OMBCircularPanel   extends  CustomPanel {
		public OMBCircularPanel() {
			super();
		}
		@Override
		protected String getMarkUp() {
			return """
				<wicket:panel>
					
http://www.whitehouse.gov/sites/default/files/omb/assets/a133/a133_revised_2007.pdf
A-133 OMB Circular 
				</wicket:panel>
			""";
		}
	}

	private  class SendComments   extends    CustomPanel  {
		public SendComments() {
			super();
		}
		@Override
		protected String getMarkUp() {
			return """
				<wicket:panel>
					 mailto:comments@gmail.com Send Comments 
				</wicket:panel>
			""";
		}
	}

}



this is a simple class creating some wicket panels . 

When I  call getComponents , I get this exception 

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
	at
gov.hhs.acf.web.util.UserMenuItems$OMBCircularPanel.<init>(UserMenuItems.groovy:48)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at
org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
	at
org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:107)
	at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:52)
	at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:192)
	at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:200)
	at gov.hhs.acf.web.util.UserMenuItems.myInit(UserMenuItems.groovy:24)
	at gov.hhs.acf.web.util.UserMenuItems$myInit.callCurrent(Unknown Source)
	at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
	at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
	at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:147)
	at
gov.hhs.acf.web.util.UserMenuItems.getComponents(UserMenuItems.groovy:30)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at
org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:416)
	at org.apache.wicket.proxy.$Proxy142.getComponents(Unknown Source)
	at gov.hhs.acf.web.pages.common.BasePage.basePageInit(BasePage.java:164)
	at gov.hhs.acf.web.pages.common.BasePage.<init>(BasePage.java:60)
	at gov.hhs.acf.web.pages.common.HomePage.<init>(HomePage.java:40)
	... 48 more



please somebody help me what is the error referring to, I donot have any
method called init  I tried debugger  and noticed the  exception is thrown
before it reaches  super class constructor  .

the same code when I replace """....."""  with normal java string works well
, please tell me what is going wrong  , I want   this as groovy becasue I
want to dynamically load  MenuItems and change them without restarting the
server  

-- 
View this message in context: http://apache-wicket.1842946.n4.nabble.com/wicket-groovy-guru-s-please-help-me-tp2965146p2965146.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org