Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Information

This explains basic usage of the Sakai ToolManager Service. This service is used to find out things like the current location of the current user (Site, etc.) and information about Sakai tools.

Accessing the ToolManager

  • You can use Spring Framework to inject the service or use the cover
  1. Using Spring to get the service for your class (e.g. YourAppClass) (recommended)
    1. Add the ToolManager bean to the bean for YourAppClass
      <bean id="org.sakaiproject.yourapp.logic.YourAppClass"
      		class="org.sakaiproject.yourapp.logic.impl.YourAppClassImpl">
      	<property name="toolManager"
      		ref="org.sakaiproject.tool.api.ToolManager" />
      </bean>
      
    2. Add a variable and setter to YourAppClass to use the service in like so:
      private ToolManager toolManager;
      public void setToolManager(ToolManager toolManager) {
      	this.toolManager = toolManager;
      }
      
  2. Using the cover to get the service
    • Note: This is not the recommended method, you should be using Spring to inject the service
    1. Setup a variable to hold the instance from the cover
      private ToolManager toolManager;
      
    2. Get access to the service using the cover
      toolManager = org.sakaiproject.tool.cover.ToolManager.getInstance();
      

Getting the current siteId for the current thread (current user most likely)

  1. Use the service variable to access the service and get the current Placement
    Site site = null;
    try {
    	site = siteService.getSite(toolManager.getCurrentPlacement().getContext());
    } catch (Exception e) {
    	// assume we are not in a site then
    	throw new RuntimeException("Cannot get the current site placement");
    }
    return site.getId();
    
    • Note: If you just need the current Placement reference (which may be the current site reference which is probably the current site Id) then you can do this:
      String currentPlacementRef = toolManager.getCurrentPlacement().getContext();
      
  • No labels