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]