Quantcast
Viewing all articles
Browse latest Browse all 8808

Re: JavaScript functions and Subscribing to portal events inside AbstractPortalComponent

Hello Sandip,

 

Yes, I have seen this link.

 

I could write few lines to handle event inside .java file as follows. But my requirement is that I should get current navigation path using NavigationHelperService API inside a custom event fired by another component.

 

I have written below code in MyPortalComponent.java file, but I am noticing that it is showing only navigation path which was loaded when portal was loaded first time.

I need to get current selected navigation path everytime this event is fired.

 

Following are the code extract I am using: -

 

public void doContent(IPortalComponentRequest request, IPortalComponentResponse response){

  

    Writer responseWriter = response.getWriter();

        responseWriter.write("<script>");

      responseWriter.write("EPCM.subscribeEvent(\"urn:com.sapportals:navigation\", \"Navigate\", NavigationEvent);");

        responseWriter.write("function NavigationEvent(evntInput)");

        responseWriter.write("{");

      

        ArrayList<String> navPathList = mGetCurrentNavigationPath(request);

        String navPathStr = navPathList.toString();

    

        responseWriter.write("alert('"+navPathStr+"');");

        responseWriter.write("}");

        responseWriter.write("</script>");

 

 

  responseWriter.flush();

}

 

 

 

 

 

 

private ArrayList<String> mGetCurrentNavigationPath(IPortalComponentRequest request){

  

    ArrayList<String> navPathArrayList = new ArrayList<String>();

 

  NavigationEventsHelperService navEventHelperServ = (NavigationEventsHelperService) PortalRuntime.getRuntimeResources().getService(NavigationEventsHelperService.KEY);

  INavigationNode navTargetNode = navEventHelperServ.getCurrentLaunchNavNode(request);

 

  navPathArrayList.add(navTargetNode.getTitle(Locale.ENGLISH));

 

  INavigationNode aParent = navEventHelperServ.getParentNode(navTargetNode, request);

 

  while (aParent != null && !aParent.getTitle(Locale.ENGLISH).equals("")) {

 

  navPathArrayList.add(aParent.getTitle(Locale.ENGLISH));

  aParent = navEventHelperServ.getParentNode(aParent, request);

  }

 

    return navPathArrayList;

}


Viewing all articles
Browse latest Browse all 8808

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>