I have written a component consisting of a Select component and three
Submit buttons (Add,Edit,Delete). Works fine. Now I want to enable and
disable the buttons from javascript depending on if any item in the
Select component is selected by the user. How can I find the names of
the submit buttons so I can pass these to my script?
The code is very similar to the tapestry-contrib Palette component.
---
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {
// Other stuff here
if (!cycle.isRewinding()) {
symbols = new HashMap(MAP_SIZE);
runScript(cycle);
}
super.renderComponent(writer, cycle);
}
private void runScript(IRequestCycle cycle) {
if (script == null) {
IEngine engine = getPage().getEngine();
IScriptSource source = engine.getScriptSource();
IResourceLocation specificationLocation =
getSpecification().getSpecificationLocation();
IResourceLocation scriptLocation =
specificationLocation.getRelativeLocation("SortList.script");
script = source.getScript(scriptLocation);
}
Body body = Body.get(cycle);
IForm form = Form.get(cycle);
symbols.put("sortList", this);
IFormComponent addBtn = (IFormComponent) getComponent("addButton");
symbols.put("addButtonName", addBtn.getName());
script.execute(cycle, body, symbols);
}
---
But since the script is executed before the submit buttons are rendered
the names are not known. Is there some way to find the name for the
submit and pass it to the script? Or maybe set a name explicitly for
button and script?
Regards,
Patrik
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]