Hello everybody,
I have a Navigation tree and I want to put an event on a link. How could I do that ?
I have the following code:
..
..
..
private void CreateLink( IPortalComponentRequest request, TreeNode treeNode, INavigationNode node) { String url = node.getName(); String title = node.getTitle(request.getLocale()); Link link = new Link("LINK_" + FirstNodeCount++, title); String navigationAction = "EPCM.doNavigate('" + url + "',2)"; //l.setOnClientClick(navigationAction); link.setOnClick("onLink"); treeNode.setComponent(link); }
and
public void onLink(Event event) { TreeNodeSelectEvent myEvent = (com.sapportals.htmlb.event.TreeNodeSelectEvent) event; TreeNode myNode = navigationBean.getTree(); System.out.println(myNode.getID()); TreeNode tempNode = myNode.getNodeByID(myEvent.getNodeKey()); myNode.setOpen(true); navigationBean.setTree(myNode); }
Thanks for any feedback
Regards.
Altafin
try link.setOnClientClick("javascript:raiseEvent('" + url + "')");
instead of link.setOnClick("onLink");
Include the javascript to fire the event.
<SCRIPT language=javascript>
function raiseEvent(value){
EPCM.raiseEvent("urn:com.sap:PassEvent", "SetParam", value, null);
}
</SCRIPT>
Then add the subscribe event to the iview you want to receive the event.
<SCRIPT language=javascript>
EPCM.subscribeEvent("urn:com.sap:PassEvent", "SetParam", getEvent);
function getEvent(eventObject){
EPCM.doNavigate('" + eventObject.dataObject + "',2)";
}
</SCRIPT>
Add a comment