Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieSessionDTO.java =================================================================== diff -u -r7c52d117dbe910bd67630b5506346429e25b99a9 -r2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78 --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieSessionDTO.java (.../WookieSessionDTO.java) (revision 7c52d117dbe910bd67630b5506346429e25b99a9) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieSessionDTO.java (.../WookieSessionDTO.java) (revision 2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78) @@ -33,84 +33,147 @@ import org.lamsfoundation.lams.tool.wookie.model.WookieUser; public class WookieSessionDTO implements Comparable { - - Long sessionID; - String sessionName; - - Set userDTOs = new TreeSet(); - - int numberOfLearners; - - int numberOfFinishedLearners;; - - public WookieSessionDTO(WookieSession session) { - this.sessionID = session.getSessionId(); - this.sessionName = session.getSessionName(); - - numberOfFinishedLearners = 0; - for (Iterator iterator = session.getWookieUsers().iterator(); iterator.hasNext();) { - WookieUser user = (WookieUser) iterator.next(); - WookieUserDTO userDTO = new WookieUserDTO(user); - if (userDTO.getEntryUID() != null) { - numberOfFinishedLearners++; - } - userDTOs.add(userDTO); - } - - numberOfLearners = userDTOs.size(); - + Long sessionID; + + String sessionName; + + Set userDTOs = new TreeSet(); + + int numberOfLearners; + + int numberOfFinishedLearners;; + + // Wookie properties + String sessionUserWidgetUrl; + String widgetSharedDataKey; + Integer widgetHeight; + Integer widgetWidth; + Boolean widgetMaximise; + String widgetIdentifier; + + public WookieSessionDTO(WookieSession session) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + + numberOfFinishedLearners = 0; + for (Iterator iterator = session.getWookieUsers().iterator(); iterator.hasNext();) { + WookieUser user = (WookieUser) iterator.next(); + WookieUserDTO userDTO = new WookieUserDTO(user); + if (userDTO.getEntryUID() != null) { + numberOfFinishedLearners++; + } + userDTOs.add(userDTO); } + + numberOfLearners = userDTOs.size(); - public WookieSessionDTO() {} - - public Long getSessionID() { - return sessionID; - } + // Set the wookie properties + this.widgetHeight = session.getWidgetHeight(); + this.widgetIdentifier = session.getWidgetIdentifier(); + this.widgetMaximise = session.getWidgetMaximise(); + this.widgetSharedDataKey = session.getWidgetSharedDataKey(); + this.widgetWidth = session.getWidgetWidth(); + } - public void setSessionID(Long sessionID) { - this.sessionID = sessionID; - } + public WookieSessionDTO() { + } - public String getSessionName() { - return sessionName; - } + public Long getSessionID() { + return sessionID; + } - public void setSessionName(String sessionName) { - this.sessionName = sessionName; - } + public void setSessionID(Long sessionID) { + this.sessionID = sessionID; + } - public int compareTo(Object o) { - int returnValue; - WookieSessionDTO toSession = (WookieSessionDTO)o; - returnValue = this.sessionName.compareTo(toSession.sessionName); - if (returnValue == 0) { - returnValue = this.sessionID.compareTo(toSession.sessionID); - } - return returnValue; - } + public String getSessionName() { + return sessionName; + } - public Set getUserDTOs() { - return userDTOs; - } + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } - public void setUserDTOs(Set wookieUsers) { - this.userDTOs = wookieUsers; + public int compareTo(Object o) { + int returnValue; + WookieSessionDTO toSession = (WookieSessionDTO) o; + returnValue = this.sessionName.compareTo(toSession.sessionName); + if (returnValue == 0) { + returnValue = this.sessionID.compareTo(toSession.sessionID); } + return returnValue; + } - public int getNumberOfLearners() { - return numberOfLearners; - } + public Set getUserDTOs() { + return userDTOs; + } - public void setNumberOfLearners(int numberOfLearners) { - this.numberOfLearners = numberOfLearners; - } + public void setUserDTOs(Set wookieUsers) { + this.userDTOs = wookieUsers; + } - public int getNumberOfFinishedLearners() { - return numberOfFinishedLearners; - } + public int getNumberOfLearners() { + return numberOfLearners; + } - public void setNumberOfFinishedLearners(int numberOfFinishedLearners) { - this.numberOfFinishedLearners = numberOfFinishedLearners; - } + public void setNumberOfLearners(int numberOfLearners) { + this.numberOfLearners = numberOfLearners; + } + + public int getNumberOfFinishedLearners() { + return numberOfFinishedLearners; + } + + public void setNumberOfFinishedLearners(int numberOfFinishedLearners) { + this.numberOfFinishedLearners = numberOfFinishedLearners; + } + + public String getWidgetSharedDataKey() { + return widgetSharedDataKey; + } + + public void setWidgetSharedDataKey(String widgetSharedDataKey) { + this.widgetSharedDataKey = widgetSharedDataKey; + } + + public Integer getWidgetHeight() { + return widgetHeight; + } + + public void setWidgetHeight(Integer widgetHeight) { + this.widgetHeight = widgetHeight; + } + + public Integer getWidgetWidth() { + return widgetWidth; + } + + public void setWidgetWidth(Integer widgetWidth) { + this.widgetWidth = widgetWidth; + } + + public Boolean getWidgetMaximise() { + return widgetMaximise; + } + + public void setWidgetMaximise(Boolean widgetMaximise) { + this.widgetMaximise = widgetMaximise; + } + + public String getWidgetIdentifier() { + return widgetIdentifier; + } + + public void setWidgetIdentifier(String widgetIdentifier) { + this.widgetIdentifier = widgetIdentifier; + } + + public String getSessionUserWidgetUrl() { + return sessionUserWidgetUrl; + } + + public void setSessionUserWidgetUrl(String sessionUserWidgetUrl) { + this.sessionUserWidgetUrl = sessionUserWidgetUrl; + } } Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieConstants.java =================================================================== diff -u -r08622dbb2e6672584f1cfcb52a239a46b3d667b1 -r2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78 --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieConstants.java (.../WookieConstants.java) (revision 08622dbb2e6672584f1cfcb52a239a46b3d667b1) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieConstants.java (.../WookieConstants.java) (revision 2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78) @@ -58,11 +58,6 @@ static final String FILTER_REPLACE_TEXT = "***"; - public static final String LAMS_WWW_PIXLR_FOLDER_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/www/images/wookie/"; - public static final String LAMS_PIXLR_BASE_DIR = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + FileUtil.LAMS_WWW_DIR - + File.separator + "images" + File.separator + "wookie"; - - public static final int WIDGETS_PER_PAGE = 8; public static final String RELATIVE_URL_WIDGET_LIST = "/advertise"; Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/MonitoringAction.java =================================================================== diff -u -re81fdf5aa1e9c04fd0b7a624d8b8419b13cac81a -r2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78 --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision e81fdf5aa1e9c04fd0b7a624d8b8419b13cac81a) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78) @@ -40,9 +40,12 @@ import org.lamsfoundation.lams.tool.wookie.service.IWookieService; import org.lamsfoundation.lams.tool.wookie.service.WookieServiceProxy; import org.lamsfoundation.lams.tool.wookie.util.WookieConstants; -import org.lamsfoundation.lams.tool.wookie.web.forms.MonitoringForm; +import org.lamsfoundation.lams.tool.wookie.util.WookieException; +import org.lamsfoundation.lams.tool.wookie.util.WookieUtil; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; /** @@ -80,6 +83,10 @@ for (WookieSessionDTO sessionDTO : wookieDT0.getSessionDTOs()) { Long toolSessionID = sessionDTO.getSessionID(); + + // Initiate the wookie widget for the monitor + String sessionUserWidgetUrl = initiateWidget(sessionDTO.getWidgetIdentifier(), sessionDTO.getWidgetSharedDataKey()); + sessionDTO.setSessionUserWidgetUrl(sessionUserWidgetUrl); for (WookieUserDTO userDTO : sessionDTO.getUserDTOs()) { // get the notebook entry. @@ -92,17 +99,44 @@ } } + + // Set a flag if there is only one session + boolean multipleSessionFlag = false; + if (wookieDT0.getSessionDTOs() != null && wookieDT0.getSessionDTOs().size() > 1) { + multipleSessionFlag = true; + } + request.setAttribute("multipleSessionFlag", multipleSessionFlag); Long currentTab = WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true); wookieDT0.setCurrentTab(currentTab); request.setAttribute("wookieDTO", wookieDT0); request.setAttribute("contentFolderID", contentFolderID); request.setAttribute("toolContentID", toolContentID); - request.setAttribute("wookieImageFolderURL", WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL); return mapping.findForward("success"); } + + private String initiateWidget(String wookieIdentifier, String sharedDataKey) throws WookieException { + try { + String wookieUrl = wookieService.getWookieURL(); + String wookieKey = wookieService.getWookieAPIKey(); + + wookieUrl += WookieConstants.RELATIVE_URL_WIDGET_SERVICE; + + String returnXML = WookieUtil.getWidget(wookieUrl, wookieKey, wookieIdentifier, getUser(), sharedDataKey, true); + return WookieUtil.getWidgetUrlFromXML(returnXML); + + } catch (Exception e) { + log.error("Problem intitating widget for learner" + e); + throw new WookieException(e); + } + } + + private UserDTO getUser() { + return (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + } + public ActionForward showWookie(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Index: lams_tool_wookie/web/pages/monitoring/summary.jsp =================================================================== diff -u -r857f9a4afbdb784f3cd9508d1eeec864e368f221 -r2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78 --- lams_tool_wookie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 857f9a4afbdb784f3cd9508d1eeec864e368f221) +++ lams_tool_wookie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 2dafe7131ccf51f9ac062eb9fe3aac6fe63bfa78) @@ -78,10 +78,12 @@ - -

+ + +

${session.sessionName} -

+

+ @@ -93,17 +95,58 @@
- - - - - - - +
+ + +
+ +
+ + +
+

- + + + + + + + + + + + + + + + +
+ ${user.firstName} ${user.lastName} + + + + ${user.notebookEntry} + + + + + +
+
+ +
+