Index: lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rc68e93818a8a08966424d6500f165090c161437e -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision c68e93818a8a08966424d6500f165090c161437e) +++ lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -124,6 +124,9 @@ label.monitoring.updatecomment.posted.by =Posted by label.monitoring.updatecomment.posted.on =Posted on message.monitoring.edit.activity.not.editable =This Activity is no longer editable +output.desc.learner.number.of.images.uploaded =Number of images uploaded by user +output.desc.learner.number.of.comments =Number of comments posted by user +output.desc.learner.number.of.votes =Number of votes made by user label.description =Description: export.label.resource =Resource export.label.no.learning.object =No offline package available Index: lams_tool_images/db/sql/tool_insert.sql =================================================================== diff -u -r915129e3bb3a93900f4098aee480629c55d752e9 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/db/sql/tool_insert.sql (.../tool_insert.sql) (revision 915129e3bb3a93900f4098aee480629c55d752e9) +++ lams_tool_images/db/sql/tool_insert.sql (.../tool_insert.sql) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -31,15 +31,16 @@ context_file, create_date_time, modified_date_time, -admin_url +admin_url, +supports_outputs ) VALUES ( 'laimag10', -'imageGalleryService', -'Shared ImageGallery', -'Shared ImageGallery', -'sharedimageGallery', +'laimagImageGalleryService', +'ImageGallery', +'ImageGallery', +'imageGallery', '@tool_version@', NULL, NULL, @@ -62,5 +63,6 @@ '/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml', NOW(), NOW(), -'tool/laimag10/laimag10admin/start.do' +'tool/laimag10/laimag10admin/start.do', +1 ) Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/ImageGalleryConstants.java =================================================================== diff -u -ree0608cfdaec0a5cc246ac316091712268491fc6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/ImageGalleryConstants.java (.../ImageGalleryConstants.java) (revision ee0608cfdaec0a5cc246ac316091712268491fc6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/ImageGalleryConstants.java (.../ImageGalleryConstants.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -25,8 +25,8 @@ public class ImageGalleryConstants { public static final String TOOL_SIGNATURE = "laimag10"; - public static final String RESOURCE_SERVICE = "imageGalleryService"; - public static final String TOOL_CONTENT_HANDLER_NAME = "imageGalleryToolContentHandler"; + public static final String RESOURCE_SERVICE = "laimagImageGalleryService"; + public static final String TOOL_CONTENT_HANDLER_NAME = "laimagImageGalleryToolContentHandler"; public static final int COMPLETED = 1; // for action forward name Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dao/ImageCommentDAO.java =================================================================== diff -u -ree0608cfdaec0a5cc246ac316091712268491fc6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dao/ImageCommentDAO.java (.../ImageCommentDAO.java) (revision ee0608cfdaec0a5cc246ac316091712268491fc6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dao/ImageCommentDAO.java (.../ImageCommentDAO.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -23,10 +23,7 @@ /* $Id$ */ package org.lamsfoundation.lams.tool.imageGallery.dao; -import java.util.List; - import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment; -import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating; /** * DAO interface for ImageComment. Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dao/hibernate/ImageCommentDAOHibernate.java =================================================================== diff -u -ree0608cfdaec0a5cc246ac316091712268491fc6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dao/hibernate/ImageCommentDAOHibernate.java (.../ImageCommentDAOHibernate.java) (revision ee0608cfdaec0a5cc246ac316091712268491fc6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dao/hibernate/ImageCommentDAOHibernate.java (.../ImageCommentDAOHibernate.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -27,7 +27,6 @@ import org.lamsfoundation.lams.tool.imageGallery.dao.ImageCommentDAO; import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment; -import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating; /** * Hibernate implementation of ImageCommentDAO. Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dto/UserImageContributionDTO.java =================================================================== diff -u -r61d4059adb8c5e6551b4be868e5a0d265d2eacf6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dto/UserImageContributionDTO.java (.../UserImageContributionDTO.java) (revision 61d4059adb8c5e6551b4be868e5a0d265d2eacf6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/dto/UserImageContributionDTO.java (.../UserImageContributionDTO.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -26,7 +26,6 @@ import java.util.Set; import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment; -import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem; import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser; /** Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml =================================================================== diff -u -r5d9ada1b3b139591dc6f1fffec04990beb727522 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml (.../imageGalleryApplicationContext.xml) (revision 5d9ada1b3b139591dc6f1fffec04990beb727522) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml (.../imageGalleryApplicationContext.xml) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -4,15 +4,14 @@ - - - - org.lamsfoundation.lams.tool.imageGallery.ApplicationResources - - + + org.lamsfoundation.lams.tool.imageGallery.ApplicationResources + + + - + @@ -31,94 +30,99 @@ + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -138,18 +142,16 @@ - - - - - + + + - + - + false @@ -160,6 +162,7 @@ PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED, -java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java =================================================================== diff -u -r61d4059adb8c5e6551b4be868e5a0d265d2eacf6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision 61d4059adb8c5e6551b4be868e5a0d265d2eacf6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -28,7 +28,6 @@ import java.util.Set; import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.imageGallery.dto.ReflectDTO; import org.lamsfoundation.lams.tool.imageGallery.dto.Summary; @@ -55,9 +54,9 @@ * * @param contentId * @return - * @throws ImageGalleryApplicationException + * @throws ImageGalleryException */ - ImageGallery getDefaultContent(Long contentId) throws ImageGalleryApplicationException; + ImageGallery getDefaultContent(Long contentId) throws ImageGalleryException; /** * Get list of imageGallery items by given imageGalleryUid. These imageGallery items must be created by author. @@ -113,7 +112,7 @@ /** * Delete file from repository. */ - void deleteFromRepository(Long fileUuid, Long fileVersionId) throws ImageGalleryApplicationException; + void deleteFromRepository(Long fileUuid, Long fileVersionId) throws ImageGalleryException; /** * Save or update imageGallery into database. @@ -235,7 +234,7 @@ * @param userId * @return */ - String finishToolSession(Long toolSessionId, Long userId) throws ImageGalleryApplicationException; + String finishToolSession(Long toolSessionId, Long userId) throws ImageGalleryException; ImageGalleryItem getImageGalleryItemByUid(Long itemUid); @@ -256,7 +255,7 @@ */ List> getImageSummary(Long contentId, Long imageUid); - List getUserListBySessionItem(Long sessionId, Long itemUid); + List getUserListBySessionId(Long sessionId); /** * Set a imageGallery item visible or not. @@ -324,8 +323,6 @@ */ ImageGalleryUser getUser(Long uid); - public IEventNotificationService getEventNotificationService(); - /** * Gets a message from imageGallery bundle. Same as in JSP pages. * Fisheye: Tag 3a1cbcfc06aaf55285140e18e4336ca65db9e255 refers to a dead (removed) revision in file `lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryApplicationException.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryException.java =================================================================== diff -u --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryException.java (revision 0) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryException.java (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -0,0 +1,46 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.imageGallery.service; + +public class ImageGalleryException extends RuntimeException { + + private static final long serialVersionUID = 166078303054196936L; + + public ImageGalleryException() { + super(); + } + + public ImageGalleryException(String message, Throwable cause) { + super(message, cause); + } + + public ImageGalleryException(String message) { + super(message); + } + + public ImageGalleryException(Throwable cause) { + super(cause); + } + +} Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryOutputFactory.java =================================================================== diff -u --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryOutputFactory.java (revision 0) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryOutputFactory.java (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -0,0 +1,187 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.imageGallery.service; + +import java.util.List; +import java.util.Set; +import java.util.SortedMap; +import java.util.TreeMap; + +import org.lamsfoundation.lams.tool.OutputFactory; +import org.lamsfoundation.lams.tool.ToolOutput; +import org.lamsfoundation.lams.tool.ToolOutputDefinition; +import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment; +import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery; +import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem; +import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession; +import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser; + +public class ImageGalleryOutputFactory extends OutputFactory { + + /** The number of posts the learner has made in one lesson. */ + protected final static String OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED = "learner.number.of.images.uploaded"; + protected final static String OUTPUT_NAME_LEARNER_NUM_COMMENTS = "learner.number.of.comments"; + protected final static String OUTPUT_NAME_LEARNER_NUM_VOTES = "learner.number.of.votes"; + + /** + * @see org.lamsfoundation.lams.tool.OutputDefinitionFactory#getToolOutputDefinitions(java.lang.Object) + */ + public SortedMap getToolOutputDefinitions(Object toolContentObject) { + + TreeMap definitionMap = new TreeMap(); + + ToolOutputDefinition definition = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, new Long(0), null); + definitionMap.put(OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, definition); + + definition = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_COMMENTS, new Long(0), null); + definitionMap.put(OUTPUT_NAME_LEARNER_NUM_COMMENTS, definition); + + definition = buildRangeDefinition(OUTPUT_NAME_LEARNER_NUM_VOTES, new Long(0), null); + definitionMap.put(OUTPUT_NAME_LEARNER_NUM_VOTES, definition); + + return definitionMap; + } + + public SortedMap getToolOutput(List names, IImageGalleryService imageGalleryService, Long toolSessionId, + Long learnerId) { + + TreeMap output = new TreeMap(); + + ImageGallerySession session = imageGalleryService.getImageGallerySessionBySessionId(toolSessionId); + if (session != null) { + + ImageGalleryUser user = imageGalleryService.getUserByIDAndSession(learnerId, session.getUid()); + + if (names == null || names.contains(OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED)) { + output.put(OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, getNumUploadedImages(user, session)); + } + if (names == null || names.contains(OUTPUT_NAME_LEARNER_NUM_COMMENTS)) { + output.put(OUTPUT_NAME_LEARNER_NUM_COMMENTS, getNumComments(user, session)); + } + if (names == null || names.contains(OUTPUT_NAME_LEARNER_NUM_VOTES)) { + output.put(OUTPUT_NAME_LEARNER_NUM_VOTES, getNumVotes(user, session, imageGalleryService)); + } + } + + return output; + } + + public ToolOutput getToolOutput(String name, IImageGalleryService imageGalleryService, Long toolSessionId, Long learnerId) { + if (name != null) { + ImageGallerySession session = imageGalleryService.getImageGallerySessionBySessionId(toolSessionId); + if (session != null) { + + ImageGalleryUser user = imageGalleryService.getUserByIDAndSession(learnerId, session.getUid()); + + if (name.equals(OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED)) { + return getNumUploadedImages(user, session); + } else if (name.equals(OUTPUT_NAME_LEARNER_NUM_COMMENTS)) { + return getNumComments(user, session); + } else if (name.equals(OUTPUT_NAME_LEARNER_NUM_VOTES)) { + return getNumVotes(user, session, imageGalleryService); + } + } + } + return null; + } + + /** + * Get the number of images for a specific user. Will always return a ToolOutput object. + */ + private ToolOutput getNumUploadedImages(ImageGalleryUser user, ImageGallerySession session) { + ImageGallery imageGallery = session.getImageGallery(); + + int countImages = 0; + if (user != null) { + Set allImages = imageGallery.getImageGalleryItems(); + + for (ImageGalleryItem image : allImages) { + if (user.getUserId().equals(image.getCreateBy().getUserId())) { + countImages++; + } + } + } else { + countImages = imageGallery.getImageGalleryItems().size(); + } + + return new ToolOutput(ImageGalleryOutputFactory.OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, getI18NText( + ImageGalleryOutputFactory.OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, true), countImages); + } + + /** + * Get the number of images for a specific user. Will always return a ToolOutput object. + */ + private ToolOutput getNumComments(ImageGalleryUser user, ImageGallerySession session) { + ImageGallery imageGallery = session.getImageGallery(); + + int countComments = 0; + if (user != null) { + Set allImages = imageGallery.getImageGalleryItems(); + for (ImageGalleryItem image : allImages) { + Set imageComments = image.getComments(); + for (ImageComment comment : imageComments) { + if (user.getUserId().equals(comment.getCreateBy().getUserId())) { + countComments++; + } + } + } + } else { + Set allImages = imageGallery.getImageGalleryItems(); + for (ImageGalleryItem image : allImages) { + Set imageComments = image.getComments(); + for (ImageComment comment : imageComments) { + countComments++; + } + } + } + + return new ToolOutput(ImageGalleryOutputFactory.OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, getI18NText( + ImageGalleryOutputFactory.OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, true), countComments); + } + + /** + * Get the number of images for a specific user. Will always return a ToolOutput object. + */ + private ToolOutput getNumVotes(ImageGalleryUser user, ImageGallerySession session, IImageGalleryService imageGalleryService) { + ImageGallery imageGallery = session.getImageGallery(); + + int countVotes = 0; + if (user != null) { + if ((user.getVotedImageUid() != null) && !user.getVotedImageUid().equals(new Long(0))){ + countVotes = 1; + } + } else { + List users = imageGalleryService.getUserListBySessionId(session.getSessionId()); + for (ImageGalleryUser dbUser : users) { + if ((dbUser.getVotedImageUid() != null) && !dbUser.getVotedImageUid().equals(new Long(0))){ + countVotes++; + } + } + } + + return new ToolOutput(ImageGalleryOutputFactory.OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, getI18NText( + ImageGalleryOutputFactory.OUTPUT_NAME_LEARNER_NUM_IMAGES_UPLOADED, true), countVotes); + } + +} Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== diff -u -r61d4059adb8c5e6551b4be868e5a0d265d2eacf6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 61d4059adb8c5e6551b4be868e5a0d265d2eacf6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -37,7 +37,6 @@ import java.util.Set; import java.util.SortedMap; import java.util.SortedSet; -import java.util.TreeMap; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; @@ -142,6 +141,8 @@ private ImageGalleryToolContentHandler imageGalleryToolContentHandler; private MessageService messageService; + + private ImageGalleryOutputFactory imageGalleryOutputFactory; // system services private IRepositoryService repositoryService; @@ -158,8 +159,6 @@ private ICoreNotebookService coreNotebookService; - private IEventNotificationService eventNotificationService; - // ******************************************************************************* // Service method // ******************************************************************************* @@ -175,7 +174,7 @@ * @throws ImscpApplicationException */ private IVersionedNode getFile(Long uuid, Long versionId, String relativePath) - throws ImageGalleryApplicationException { + throws ImageGalleryException { ITicket tic = getRepositoryLoginTicket(); @@ -190,14 +189,14 @@ error = error + "AccessDeniedException: " + e.getMessage() + " Unable to retry further."; ImageGalleryServiceImpl.log.error(error); - throw new ImageGalleryApplicationException(error, e); + throw new ImageGalleryException(error, e); } catch (Exception e) { String error = "Unable to access repository to get file uuid " + uuid + " version id " + versionId + " path " + relativePath + "." + " Exception: " + e.getMessage(); ImageGalleryServiceImpl.log.error(error); - throw new ImageGalleryApplicationException(error, e); + throw new ImageGalleryException(error, e); } } @@ -210,21 +209,21 @@ * the tool needs to upload/download files from the content repository. * * @return ITicket The ticket for repostory access - * @throws ImageGalleryApplicationException + * @throws ImageGalleryException */ - private ITicket getRepositoryLoginTicket() throws ImageGalleryApplicationException { + private ITicket getRepositoryLoginTicket() throws ImageGalleryException { ICredentials credentials = new SimpleCredentials(imageGalleryToolContentHandler.getRepositoryUser(), imageGalleryToolContentHandler.getRepositoryId()); try { ITicket ticket = repositoryService.login(credentials, imageGalleryToolContentHandler .getRepositoryWorkspaceName()); return ticket; } catch (AccessDeniedException ae) { - throw new ImageGalleryApplicationException("Access Denied to repository." + ae.getMessage()); + throw new ImageGalleryException("Access Denied to repository." + ae.getMessage()); } catch (WorkspaceNotFoundException we) { - throw new ImageGalleryApplicationException("Workspace not found." + we.getMessage()); + throw new ImageGalleryException("Workspace not found." + we.getMessage()); } catch (LoginException e) { - throw new ImageGalleryApplicationException("Login failed." + e.getMessage()); + throw new ImageGalleryException("Login failed." + e.getMessage()); } } @@ -236,11 +235,11 @@ return rs; } - public ImageGallery getDefaultContent(Long contentId) throws ImageGalleryApplicationException { + public ImageGallery getDefaultContent(Long contentId) throws ImageGalleryException { if (contentId == null) { String error = messageService.getMessage("error.msg.default.content.not.find"); ImageGalleryServiceImpl.log.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } ImageGallery defaultContent = getDefaultImageGallery(); @@ -284,12 +283,12 @@ return imageGalleryUserDao.getUserByUserIDAndSessionID(userId, sessionId); } - public void deleteFromRepository(Long fileUuid, Long fileVersionId) throws ImageGalleryApplicationException { + public void deleteFromRepository(Long fileUuid, Long fileVersionId) throws ImageGalleryException { ITicket ticket = getRepositoryLoginTicket(); try { repositoryService.deleteVersion(ticket, fileUuid, fileVersionId); } catch (Exception e) { - throw new ImageGalleryApplicationException("Exception occured while deleting files from" + throw new ImageGalleryException("Exception occured while deleting files from" + " the repository " + e.getMessage()); } } @@ -457,7 +456,7 @@ } } - public String finishToolSession(Long toolSessionId, Long userId) throws ImageGalleryApplicationException { + public String finishToolSession(Long toolSessionId, Long userId) throws ImageGalleryException { ImageGalleryUser user = imageGalleryUserDao.getUserByUserIDAndSessionID(userId, toolSessionId); user.setSessionFinished(true); imageGalleryUserDao.saveObject(user); @@ -470,9 +469,9 @@ try { nextUrl = this.leaveToolSession(toolSessionId, userId); } catch (DataMissingException e) { - throw new ImageGalleryApplicationException(e); + throw new ImageGalleryException(e); } catch (ToolException e) { - throw new ImageGalleryApplicationException(e); + throw new ImageGalleryException(e); } return nextUrl; } @@ -624,16 +623,8 @@ return map; } - public List getUserListBySessionItem(Long sessionId, Long itemUid) { - List logList = imageGalleryItemVisitDao.getImageGalleryItemLogBySession(sessionId, - itemUid); - List userList = new ArrayList(logList.size()); - for (ImageGalleryItemVisitLog visit : logList) { - ImageGalleryUser user = visit.getUser(); - user.setAccessDate(visit.getAccessDate()); - userList.add(user); - } - return userList; + public List getUserListBySessionId(Long sessionId) { + return imageGalleryUserDao.getBySessionID(sessionId); } public void setItemVisible(Long itemUid, boolean visible) { @@ -685,25 +676,25 @@ // ***************************************************************************** // private methods // ***************************************************************************** - private ImageGallery getDefaultImageGallery() throws ImageGalleryApplicationException { + private ImageGallery getDefaultImageGallery() throws ImageGalleryException { Long defaultImageGalleryId = getToolDefaultContentIdBySignature(ImageGalleryConstants.TOOL_SIGNATURE); ImageGallery defaultImageGallery = getImageGalleryByContentId(defaultImageGalleryId); if (defaultImageGallery == null) { String error = messageService.getMessage("error.msg.default.content.not.find"); ImageGalleryServiceImpl.log.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } return defaultImageGallery; } - private Long getToolDefaultContentIdBySignature(String toolSignature) throws ImageGalleryApplicationException { + private Long getToolDefaultContentIdBySignature(String toolSignature) throws ImageGalleryException { Long contentId = null; contentId = new Long(toolService.getToolDefaultContentIdBySignature(toolSignature)); if (contentId == null) { String error = messageService.getMessage("error.msg.default.content.not.find"); ImageGalleryServiceImpl.log.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } return contentId; } @@ -754,7 +745,7 @@ /** * Process an uploaded file. * - * @throws ImageGalleryApplicationException + * @throws ImageGalleryException * @throws FileNotFoundException * @throws IOException * @throws RepositoryCheckedException @@ -862,7 +853,7 @@ if (toolContentObj == null) { try { toolContentObj = getDefaultImageGallery(); - } catch (ImageGalleryApplicationException e) { + } catch (ImageGalleryException e) { throw new DataMissingException(e.getMessage()); } } @@ -969,7 +960,11 @@ * @return SortedMap of ToolOutputDefinitions with the key being the name of each definition */ public SortedMap getToolOutputDefinitions(Long toolContentId) throws ToolException { - return new TreeMap(); + ImageGallery imageGallery = getImageGalleryByContentId(toolContentId); + if (imageGallery == null) { + imageGallery = getDefaultImageGallery(); + } + return getImageGalleryOutputFactory().getToolOutputDefinitions(imageGallery); } public void copyToolContent(Long fromContentId, Long toContentId) throws ToolException { @@ -984,7 +979,7 @@ if (imageGallery == null) { try { imageGallery = getDefaultImageGallery(); - } catch (ImageGalleryApplicationException e) { + } catch (ImageGalleryException e) { throw new ToolException(e); } } @@ -1085,7 +1080,7 @@ * java.lang.Long) */ public SortedMap getToolOutput(List names, Long toolSessionId, Long learnerId) { - return new TreeMap(); + return imageGalleryOutputFactory.getToolOutput(names, this, toolSessionId, learnerId); } /** @@ -1095,7 +1090,7 @@ * java.lang.Long) */ public ToolOutput getToolOutput(String name, Long toolSessionId, Long learnerId) { - return null; + return imageGalleryOutputFactory.getToolOutput(name, this, toolSessionId, learnerId); } /* ===============Methods implemented from ToolContentImport102Manager =============== */ @@ -1146,16 +1141,16 @@ this.coreNotebookService = coreNotebookService; } - public IEventNotificationService getEventNotificationService() { - return eventNotificationService; + public String getLocalisedMessage(String key, Object[] args) { + return messageService.getMessage(key, args); } - - public void setEventNotificationService(IEventNotificationService eventNotificationService) { - this.eventNotificationService = eventNotificationService; + + public ImageGalleryOutputFactory getImageGalleryOutputFactory() { + return imageGalleryOutputFactory; } - public String getLocalisedMessage(String key, Object[] args) { - return messageService.getMessage(key, args); + public void setImageGalleryOutputFactory(ImageGalleryOutputFactory imageGalleryOutputFactory) { + this.imageGalleryOutputFactory = imageGalleryOutputFactory; } public ImageGalleryConfigItem getConfigItem(String key) { Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java =================================================================== diff -u -r4b9aac6879339e46cb0a163a8f72400aed80c041 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 4b9aac6879339e46cb0a163a8f72400aed80c041) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -60,7 +60,7 @@ import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem; import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser; import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService; -import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryApplicationException; +import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException; import org.lamsfoundation.lams.tool.imageGallery.service.UploadImageGalleryFileException; import org.lamsfoundation.lams.tool.imageGallery.util.ImageGalleryItemComparator; import org.lamsfoundation.lams.tool.imageGallery.web.form.ImageGalleryForm; @@ -904,7 +904,7 @@ * * @param request * @param imageForm - * @throws ImageGalleryApplicationException + * @throws ImageGalleryException */ private void extractFormToImageGalleryItem(HttpServletRequest request, ImageGalleryItemForm imageForm) throws Exception { Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java =================================================================== diff -u -ree0608cfdaec0a5cc246ac316091712268491fc6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision ee0608cfdaec0a5cc246ac316091712268491fc6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -57,7 +57,7 @@ import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser; import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating; import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService; -import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryApplicationException; +import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException; import org.lamsfoundation.lams.tool.imageGallery.service.UploadImageGalleryFileException; import org.lamsfoundation.lams.tool.imageGallery.util.ImageCommentComparator; import org.lamsfoundation.lams.tool.imageGallery.util.ImageGalleryItemComparator; @@ -268,7 +268,7 @@ nextActivityUrl = service.finishToolSession(sessionId, userID); request.setAttribute(ImageGalleryConstants.ATTR_NEXT_ACTIVITY_URL, nextActivityUrl); - } catch (ImageGalleryApplicationException e) { + } catch (ImageGalleryException e) { log.error("Failed get next activity url:" + e.getMessage()); } @@ -648,7 +648,7 @@ * * @param request * @param imageForm - * @throws ImageGalleryApplicationException + * @throws ImageGalleryException */ private void extractFormToImageGalleryItem(HttpServletRequest request, ImageGalleryItemForm imageForm) throws Exception { Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java =================================================================== diff -u -r61d4059adb8c5e6551b4be868e5a0d265d2eacf6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 61d4059adb8c5e6551b4be868e5a0d265d2eacf6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -25,19 +25,13 @@ package org.lamsfoundation.lams.tool.imageGallery.web.action; import java.io.IOException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -49,7 +43,6 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; -import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.imageGallery.ImageGalleryConstants; @@ -62,14 +55,10 @@ import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession; import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser; import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService; -import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryApplicationException; -import org.lamsfoundation.lams.tool.imageGallery.service.UploadImageGalleryFileException; -import org.lamsfoundation.lams.tool.imageGallery.util.ImageCommentComparator; +import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException; import org.lamsfoundation.lams.tool.imageGallery.web.form.ImageCommentForm; import org.lamsfoundation.lams.tool.imageGallery.web.form.ImageGalleryItemForm; -import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; -import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; import org.springframework.web.context.WebApplicationContext; @@ -397,7 +386,7 @@ * * @param request * @param imageForm - * @throws ImageGalleryApplicationException + * @throws ImageGalleryException */ private void extractFormToImageGalleryItem(HttpServletRequest request, ImageGalleryItemForm imageForm){ Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/form/ImageCommentForm.java =================================================================== diff -u -r61d4059adb8c5e6551b4be868e5a0d265d2eacf6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/form/ImageCommentForm.java (.../ImageCommentForm.java) (revision 61d4059adb8c5e6551b4be868e5a0d265d2eacf6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/form/ImageCommentForm.java (.../ImageCommentForm.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -23,13 +23,10 @@ /* $Id$ */ package org.lamsfoundation.lams.tool.imageGallery.web.form; -import java.util.Date; - import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; -import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment; import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem; /** Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/form/ImageGalleryItemForm.java =================================================================== diff -u -ree0608cfdaec0a5cc246ac316091712268491fc6 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/form/ImageGalleryItemForm.java (.../ImageGalleryItemForm.java) (revision ee0608cfdaec0a5cc246ac316091712268491fc6) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/form/ImageGalleryItemForm.java (.../ImageGalleryItemForm.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -25,7 +25,6 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem; /** * ImageGallery Item Form. Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java =================================================================== diff -u -rfd6a44adca1e0d4ee031b0b8b442de4ee8974d74 -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision fd6a44adca1e0d4ee031b0b8b442de4ee8974d74) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -50,7 +50,7 @@ import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession; import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser; import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService; -import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryApplicationException; +import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException; import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryServiceProxy; import org.lamsfoundation.lams.tool.imageGallery.util.ImageGalleryToolContentHandler; import org.lamsfoundation.lams.tool.imageGallery.util.ReflectDTOComparator; @@ -100,7 +100,7 @@ sessionMap.put(AttributeNames.ATTR_MODE,ToolAccessMode.TEACHER); teacher(request, response, directoryName, cookies,sessionMap); } - } catch (ImageGalleryApplicationException e) { + } catch (ImageGalleryException e) { logger.error("Cannot perform export for imageGallery tool."); } @@ -135,28 +135,28 @@ public void learner(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) - throws ImageGalleryApplicationException { + throws ImageGalleryException { if (userID == null || toolSessionID == null) { String error = "Tool session Id or user Id is null. Unable to continue"; logger.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } ImageGalleryUser learner = service.getUserByIDAndSession(userID,toolSessionID); if (learner == null) { String error = "The user with user id " + userID + " does not exist."; logger.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } ImageGallery content = service.getImageGalleryBySessionId(toolSessionID); if (content == null) { String error = "The content for this activity has not been defined yet."; logger.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } @@ -189,21 +189,21 @@ } public void teacher(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) - throws ImageGalleryApplicationException { + throws ImageGalleryException { // check if toolContentId exists in db or not if (toolContentID == null) { String error = "Tool Content Id is missing. Unable to continue"; logger.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } ImageGallery content = service.getImageGalleryByContentId(toolContentID); if (content == null) { String error = "Data is missing from the database. Unable to Continue"; logger.error(error); - throw new ImageGalleryApplicationException(error); + throw new ImageGalleryException(error); } List> groupList = service.exportByContentId(toolContentID); if(groupList != null) { Index: lams_tool_images/web/WEB-INF/web.xml =================================================================== diff -u -r8a7c47632a6a93892f015f068d12adb376c0ae2d -r3a1cbcfc06aaf55285140e18e4336ca65db9e255 --- lams_tool_images/web/WEB-INF/web.xml (.../web.xml) (revision 8a7c47632a6a93892f015f068d12adb376c0ae2d) +++ lams_tool_images/web/WEB-INF/web.xml (.../web.xml) (revision 3a1cbcfc06aaf55285140e18e4336ca65db9e255) @@ -1,9 +1,9 @@ - Shared ImageGallery + Image Gallery - Shared ImageGallery tool + ImageGallery tool javax.servlet.jsp.jstl.fmt.localizationContext @@ -41,7 +41,7 @@ sessionFactoryBeanName - imageGallerySessionFactory + laimagImageGallerySessionFactory @@ -130,7 +130,7 @@ org.lamsfoundation.lams.contentrepository.client.ToolDownload toolContentHandlerBeanName - imageGalleryToolContentHandler + laimagImageGalleryToolContentHandler 3