Hmm...That is a weird exception..Javadocs says it's because two different
types of objects are being bound into the array. It may be an oversight on
my part for the updateComponents binding, but I am guessing that
currCase.idis an integer or some other none string data that isn't
getting interpreted
properly.

For the time being can you wrap java.lang.String.valueOf(currCase.id) to see
if it fixes it? I'll revisit the way I'm taking updateComponents parameter
in if that is the case.

On 1/10/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
>
> Sorry I wrote too soon, I didn't put '{ }' around the updateComponents
> binding.
> Unfortunately I still get an exception.  This time without much debug
> that I can make sense of:
>
> org.apache.hivemind.ApplicationRuntimeException
>
> component: [EMAIL PROTECTED]
> location: context:/InvestigationsConsole.html
>
> java.lang.ArrayStoreException
>
> Stack Trace:
> java.lang.System.arraycopy(Native Method)
> java.util.ArrayList.toArray(ArrayList.java:305)
> net.sf.tacos.ajax.components.AjaxDirectLink.getLink(AjaxDirectLink.java
> :69)
> org.apache.tapestry.link.DefaultLinkRenderer.constructURL(
> DefaultLinkRenderer.java:112)
> org.apache.tapestry.link.DefaultLinkRenderer.renderLink(
> DefaultLinkRenderer.java:62)
> org.apache.tapestry.link.AbstractLinkComponent.renderComponent(
> AbstractLinkComponent.java:95)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java
> :434)
> net.sf.tacos.ajax.components.PartialForBean.renderComponent(
> PartialForBean.java:201)
> $PartialForBean_21.renderComponent($PartialForBean_21.java)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java
> :434)
> org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:86)
> $IfBean_5.renderComponent($IfBean_5.java)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java
> :434)
> org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java
> :44)
> $RenderBody_17.renderComponent($RenderBody_17.java)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java
> :434)
> org.apache.tapestry.html.Body.renderComponent(Body.java:129)
> $Body_15.renderComponent($Body_15.java)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java
> :434)
> org.apache.tapestry.html.Shell.renderComponent(Shell.java:114)
>
>
>
> On 1/10/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
> > Hi I am trying to get the use the tacos AjaxDirectLink component.  I
> > pretty much using the example given on the website except substituting
> > the .page specs in annotations.
> > Here is the following exception I am getting:
> >
> > org.apache.tapestry.BindingException
> > Error converting value for parameter updateComponents: No type
> > converter for type java.util.Collection is available.
> > binding:ExpressionBinding[InvestigationsConsole 'selectedCases',
> currCase.id]
> > component:[EMAIL PROTECTED]
> > location:
> >
> > Annotation @org.apache.tapestry.annotations.Component
> (inheritInformalParameters=false,
> > bindings=[listener=listener:toggleCase, parameters=ognl:currCase.id,
> > updateComponents=ognl:'selectedCases', currCase.id,
> > effects=template:{highlight:{selectedCases:'[255,255,184], 500,
> > 500','${currCase}':'[255,255,184], 500, 500'}},
> > statusElement=literal:status], id=linkToggle,
> > type=tacos:AjaxDirectLink) of public abstract
> > net.sf.tacos.ajax.components.AjaxDirectLink
> > view.pages.InvestigationsConsole.getLinkToggle()
> >
> > Here is my code for my page:
> >
> > public abstract class InvestigationsConsole extends SecuredPage
> implements
> >                PageBeginRenderListener {
> >
> >        public void pageBeginRender(PageEvent arg0) {
> >                ICaseHome caseHome = getCaseHome();
> >
> >                Collection<TrCase> cases = caseHome
>
> >                                
> > .findCasesBySupportId(getVisitObject().getPortaluser()
> >                                                .getSupportid());
> >
> >                if (cases.size() > 0) {
> >                        setOpenCases(true);
> >                } else {
> >                        setOpenCases(false);
> >                }
> >        }
> >
> >        protected void finishLoad(){
> >                log.info("Setting selected Items");
> >                setSelectedItems(new HashSet());
> >        }
> >
> >        public void toggleCase(IRequestCycle irc) {
> >                long caseid = (Long) irc.getListenerParameters()[0];
> >                TrCase trCase = getCaseHome().findCaseById(caseid);
> >                Set c = getSelectedItems();
> >                if (c.contains(trCase)) {
> >                        c.remove(trCase);
> >                } else {
> >                        c.add(trCase);
> >                }
> >                setSelectedItems(c);
> >                AjaxWebRequest ajax = (AjaxWebRequest) irc
> >                                .getAttribute(AjaxWebRequest.AJAX_REQUEST
> );
> >                if (ajax != null)
> >                        ajax.addStatusResponse("Case selected..");
> >
> >        }
> >
> >        public List getCases(){
> >                return new ArrayList(getCaseHome()
> >                .findCasesBySupportId(getVisitObject().getPortaluser()
> >                                .getSupportid()));
> >        }
> >
> >
> >        //public abstract Collection<TrCase> getCases();
> >        //public abstract void setCases(Collection<TrCase> cases);
> >        @Persist
> >        public abstract Set getSelectedItems();
> >        public abstract void setSelectedItems(Set selectedItems);
> >
> >
> >        public void openCaseListener(IRequestCycle cycle) {
> >                cycle.activate(getOpenCasePage());
> >        }
> >
> >        public abstract boolean isOpenCases();
> >        public abstract void setOpenCases(boolean openCases);
> >        public boolean isCurrSelected() {
> >                return getSelectedItems().contains(getCurrCase());
> >        }
> >        public abstract TrCase getCurrCase();
> >        public abstract void setSelectItem(Object selectItem);
> >        public abstract Object getSelectItem();
> >
> >        // Annotations
> >        @InjectState("visit")
> >        public abstract Visit getVisitObject();
> >
> >        @InjectPage("OpenCase")
> >        public abstract IPage getOpenCasePage();
> >
> >        @InjectObject("service:trustedresponse.CaseHome")
> >        public abstract ICaseHome getCaseHome();
> >
> >        @InjectObject("service:tacos.AjaxWebRequest")
> >        public abstract AjaxWebRequest getAjaxRequest();
> >
> >        @Component(id="foreachCase", type="tacos:PartialFor", bindings =
> {
> >                "source=cases", "value=currCase"})
> >        public abstract PartialForBean getForeachCase();
> >
> >        @Component(id="linkToggle", type="tacos:AjaxDirectLink",
> >                        bindings = {"listener=listener:toggleCase",
> >                        "parameters=ognl:currCase.id",
> >                        "updateComponents=ognl:'selectedCases',
> currCase.id",
> >                        
> > "effects=template:{highlight:{selectedCases:'[255,255,184],
> 500,
> > 500','${currCase}':'[255,255,184], 500, 500'}}",
> >                        "statusElement=literal:status"})
> >        public abstract AjaxDirectLink getLinkToggle();
> >
> >
> > --
> > ~chris
> >
>
>
> --
> ~chris
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to