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

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to