...
- Using Spring to get the service for your class (e.g. YourAppClass) (recommended)
- Add the ToolManager bean to the bean for YourAppClass
Code Block xml xml <bean id="org.sakaiproject.yourapp.logic.YourAppClass" class="org.sakaiproject.yourapp.logic.impl.YourAppClassImpl"> <property name="toolManager" ref="org.sakaiproject.tool.api.ToolManager" /> </bean>
- Add a variable and setter to YourAppClass to use the service in like so:
Code Block java java private ToolManager toolManager; public void setToolManager(ToolManager toolManager) { this.toolManager = toolManager; }
- Add the ToolManager bean to the bean for YourAppClass
- Using the cover to get the service
- Note: This is not the recommended method, you should be using Spring to inject the service
- Setup a variable to hold the instance from the cover
Code Block java java private ToolManager toolManager;
- Get access to the service using the cover
Code Block java java toolManager = org.sakaiproject.tool.cover.ToolManager.getInstance();
Getting the current
...
context for the current
...
request (current user most likely)
- Use the service variable to access the service and get the current Placement context
Code Block java java SiteString sitecurrentContext = 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: The current context is probably the current site Id but do not depend on this
- 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:
Code Block java java StringPlacement currentPlacementRefcurrentPlacement = toolManager.getCurrentPlacement().getContext();