Jesse,
Thanks for the input. You were correct in that by wrapping my
currCase.id in a String would fix the problem. So currently it seems
to be working except for the linkToggle listener.
I have been staring for hours at this code and still cannot under
stand why my currSelected never returns true. My page correctly
displays the selectedItems since its notempty so I know that the
collection should contain my object, but It doesn't seem to. I know
i'm probably missing something simple but i can't seem to find it.
Here is my html page just so you can see whats going on, and where I
may be having my issue. Thanks for the help.
<div jwcid="[EMAIL PROTECTED]" id="selectedCases"><span
jwcid="@If"
condition="ognl:not selectedItems.empty">
<h3>Selected Cases</h3>
<ul>
<li
jwcid="@tacos:PartialFor" source="ognl:selectedItems"
value="ognl:selectItem" element="li"><span jwcid="@Insert"
value="ognl:selectItem.id" /></li>
</ul>
</span></div>
<div id="status"></div>
<div id="cases"><span
jwcid="foreachCase">
<div jwcid="@Any"
class="ognl:beans.evenOdd.next"
id="ognl:currCase.id">
<div><a
jwcid="linkToggle" class="toggle"> <span jwcid="@Insert"
value="ognl:currSelected ? 'Hide' : 'Details'" /></a> <span
jwcid="@Insert"
value="ognl:currCase.id"
class="ognl:currSelected ? 'detailHeading' : 'heading'" /></div>
<span jwcid="@If"
condition="ognl:currSelected">
<div class="caseDetail">
<div class="acase"><!--
<img jwcid="flagImage" width="34"
height="18" />--><br />
<span jwcid="@Insert"
value="ognl:currCase.id" /></div>
Show stuff... </div>
</span></div>
</span></div>
<div
id="partialWait">Processing...</div>
On 1/10/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
> 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]
> >
> >
>
>
--
~chris
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]