Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r309415c53c81c7251e537a6832b6ead2d6a2a84a -rcb333c89e9d244ab2204e9bc8cb14d6dd613603e Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml =================================================================== diff -u -r889c6e7e533535886628e924b3e3dc652b6610b9 -rcb333c89e9d244ab2204e9bc8cb14d6dd613603e --- lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml (.../authoringApplicationContext.xml) (revision 889c6e7e533535886628e924b3e3dc652b6610b9) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml (.../authoringApplicationContext.xml) (revision cb333c89e9d244ab2204e9bc8cb14d6dd613603e) @@ -47,7 +47,6 @@ - Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -r8d104d395bbb6b03bb9515e606176d76f585439b -rcb333c89e9d244ab2204e9bc8cb14d6dd613603e --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 8d104d395bbb6b03bb9515e606176d76f585439b) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision cb333c89e9d244ab2204e9bc8cb14d6dd613603e) @@ -25,13 +25,11 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Properties; import java.util.Set; @@ -50,7 +48,6 @@ import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.learningdesign.LearningDesign; -import org.lamsfoundation.lams.learningdesign.LearningLibrary; import org.lamsfoundation.lams.learningdesign.License; import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.learningdesign.Transition; @@ -64,8 +61,6 @@ import org.lamsfoundation.lams.learningdesign.dto.AuthoringActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.DesignDetailDTO; import org.lamsfoundation.lams.learningdesign.dto.LearningDesignDTO; -import org.lamsfoundation.lams.learningdesign.dto.LearningLibraryDTO; -import org.lamsfoundation.lams.learningdesign.dto.LibraryActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; import org.lamsfoundation.lams.learningdesign.exception.LearningDesignException; import org.lamsfoundation.lams.learningdesign.service.ILearningDesignService; @@ -82,14 +77,11 @@ import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.FileUtilException; -import org.lamsfoundation.lams.util.ILoadedMessageSourceService; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; -import org.springframework.context.MessageSource; -import org.springframework.context.i18n.LocaleContextHolder; /** @@ -112,7 +104,6 @@ protected ILamsCoreToolService lamsCoreToolService; protected ILearningDesignService learningDesignService; protected MessageService messageService; - protected ILoadedMessageSourceService toolActMessageService; protected ToolContentIDGenerator contentIDGenerator; @@ -195,20 +186,7 @@ public void setLamsCoreToolService(ILamsCoreToolService lamsCoreToolService) { this.lamsCoreToolService = lamsCoreToolService; } - - /** Access a message service related to a programatically loaded message file. - * Authoring uses this to access the message files for tools and activities. - */ - public ILoadedMessageSourceService getToolActMessageService() { - return toolActMessageService; - } - public void setToolActMessageService(ILoadedMessageSourceService toolActMessageService) { - this.toolActMessageService = toolActMessageService; - } - - - public ILearningDesignService getLearningDesignService() { return learningDesignService; } @@ -218,8 +196,7 @@ */ public void setLearningDesignService(ILearningDesignService learningDesignService) { this.learningDesignService = learningDesignService; - } - + } /** * @param contentIDGenerator The contentIDGenerator to set. @@ -616,60 +593,9 @@ * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningLibraryDetails() */ public String getAllLearningLibraryDetails()throws IOException{ - Iterator iterator= getAllLearningLibraries().iterator(); - ArrayList libraries = new ArrayList(); - while(iterator.hasNext()){ - LearningLibrary learningLibrary = (LearningLibrary)iterator.next(); - List templateActivities = activityDAO.getActivitiesByLibraryID(learningLibrary.getLearningLibraryId()); - - if (templateActivities!=null & templateActivities.size()==0) - { - log.error("Learning Library with ID " + learningLibrary.getLearningLibraryId() + " does not have a template activity"); - } - // convert library to DTO format - LearningLibraryDTO libraryDTO = learningLibrary.getLearningLibraryDTO(templateActivities); - internationaliseActivities(libraryDTO.getTemplateActivities()); - libraries.add(libraryDTO); - } - flashMessage = new FlashMessage("getAllLearningLibraryDetails",libraries); + flashMessage = new FlashMessage("getAllLearningLibraryDetails",learningDesignService.getAllLearningLibraryDetails()); return flashMessage.serializeMessage(); } - - private void internationaliseActivities(Collection activities) { - Iterator iter = activities.iterator(); - Locale locale = LocaleContextHolder.getLocale(); - while (iter.hasNext()) { - LibraryActivityDTO activity = (LibraryActivityDTO) iter.next(); - // update the activity fields - String languageFilename = activity.getLanguageFile(); - if ( languageFilename != null ) { - MessageSource toolMessageSource = toolActMessageService.getMessageService(languageFilename); - if ( toolMessageSource != null ) { - activity.setActivityTitle(toolMessageSource.getMessage(Activity.I18N_TITLE,null,activity.getActivityTitle(),locale)); - activity.setDescription(toolMessageSource.getMessage(Activity.I18N_DESCRIPTION,null,activity.getDescription(),locale)); - activity.setHelpText(toolMessageSource.getMessage(Activity.I18N_HELP_TEXT,null,activity.getHelpText(),locale)); - } else { - log.warn("Unable to internationalise the library activity "+activity.getActivityID()+" "+activity.getActivityTitle() - +" message file "+activity.getLanguageFile()+". Activity Message source not available"); - } - - // update the tool field - note only tool activities have a tool entry. - if ( activity.getActivityTypeID()!=null && Activity.TOOL_ACTIVITY_TYPE == activity.getActivityTypeID().intValue() ) { - languageFilename = activity.getToolLanguageFile(); - toolMessageSource = toolActMessageService.getMessageService(languageFilename); - if ( toolMessageSource != null ) { - activity.setToolDisplayName(toolMessageSource.getMessage(Tool.I18N_DISPLAY_NAME,null,activity.getToolDisplayName(),locale)); - } else { - log.warn("Unable to internationalise the library activity "+activity.getActivityID()+" "+activity.getActivityTitle() - +" message file "+activity.getLanguageFile()+". Tool Message source not available"); - } - } - } else { - log.warn("Unable to internationalise the library activity "+activity.getActivityID()+" "+activity.getActivityTitle() - +". No message file supplied."); - } - } - } /** @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getToolContentID(java.lang.Long) */ Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r6d023d698235f9bc14e1c877e325283741aebe83 -rcb333c89e9d244ab2204e9bc8cb14d6dd613603e --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 6d023d698235f9bc14e1c877e325283741aebe83) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision cb333c89e9d244ab2204e9bc8cb14d6dd613603e) @@ -120,6 +120,8 @@ + + Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ILearningDesignService.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -rcb333c89e9d244ab2204e9bc8cb14d6dd613603e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ILearningDesignService.java (.../ILearningDesignService.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ILearningDesignService.java (.../ILearningDesignService.java) (revision cb333c89e9d244ab2204e9bc8cb14d6dd613603e) @@ -23,10 +23,13 @@ /* $$Id$$ */ package org.lamsfoundation.lams.learningdesign.service; +import java.io.IOException; +import java.util.ArrayList; import java.util.Vector; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.dto.LearningDesignDTO; +import org.lamsfoundation.lams.learningdesign.dto.LearningLibraryDTO; import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; /** @@ -51,4 +54,10 @@ */ public Vector validateLearningDesign(LearningDesign learningDesign); + /** + * Get the DTO list of all learning libraries. + * @return list of LearningLibraryDTO + * @throws IOException + */ + public ArrayList getAllLearningLibraryDetails() throws IOException; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -rcb333c89e9d244ab2204e9bc8cb14d6dd613603e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LearningDesignService.java (.../LearningDesignService.java) (revision cb333c89e9d244ab2204e9bc8cb14d6dd613603e) @@ -23,20 +23,34 @@ /* $$Id$$ */ package org.lamsfoundation.lams.learningdesign.service; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; +import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.Vector; +import org.apache.log4j.Logger; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.LearningDesign; +import org.lamsfoundation.lams.learningdesign.LearningLibrary; import org.lamsfoundation.lams.learningdesign.OptionsActivity; import org.lamsfoundation.lams.learningdesign.Transition; import org.lamsfoundation.lams.learningdesign.dao.hibernate.ActivityDAO; import org.lamsfoundation.lams.learningdesign.dao.hibernate.LearningDesignDAO; +import org.lamsfoundation.lams.learningdesign.dao.hibernate.LearningLibraryDAO; import org.lamsfoundation.lams.learningdesign.dto.LearningDesignDTO; +import org.lamsfoundation.lams.learningdesign.dto.LearningLibraryDTO; +import org.lamsfoundation.lams.learningdesign.dto.LibraryActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; +import org.lamsfoundation.lams.tool.Tool; +import org.lamsfoundation.lams.util.ILoadedMessageSourceService; import org.lamsfoundation.lams.util.MessageService; +import org.springframework.context.MessageSource; +import org.springframework.context.i18n.LocaleContextHolder; /** * The LearningDesignService class contains methods which applies validation rules @@ -52,12 +66,15 @@ */ public class LearningDesignService implements ILearningDesignService{ - //protected Logger log = Logger.getLogger(LearningDesignService.class); + protected Logger log = Logger.getLogger(LearningDesignService.class); protected MessageService messageService; protected LearningDesignDAO learningDesignDAO; protected ActivityDAO activityDAO; + protected LearningLibraryDAO learningLibraryDAO; + protected ILoadedMessageSourceService toolActMessageService; + /* * Default constructor * @@ -83,6 +100,21 @@ return this.messageService; } + /** Access a message service related to a programatically loaded message file. + * Authoring uses this to access the message files for tools and activities. + */ + public ILoadedMessageSourceService getToolActMessageService() { + return toolActMessageService; + } + + public void setToolActMessageService(ILoadedMessageSourceService toolActMessageService) { + this.toolActMessageService = toolActMessageService; + } + + public void setLearningLibraryDAO(LearningLibraryDAO learningLibraryDAO) { + this.learningLibraryDAO = learningLibraryDAO; + } + /********************************************** * Service Methods * *******************************************/ @@ -388,5 +420,58 @@ } - + public ArrayList getAllLearningLibraryDetails()throws IOException{ + Iterator iterator= learningLibraryDAO.getAllLearningLibraries().iterator(); + ArrayList libraries = new ArrayList(); + while(iterator.hasNext()){ + LearningLibrary learningLibrary = (LearningLibrary)iterator.next(); + List templateActivities = activityDAO.getActivitiesByLibraryID(learningLibrary.getLearningLibraryId()); + + if (templateActivities!=null & templateActivities.size()==0) + { + log.error("Learning Library with ID " + learningLibrary.getLearningLibraryId() + " does not have a template activity"); + } + // convert library to DTO format + LearningLibraryDTO libraryDTO = learningLibrary.getLearningLibraryDTO(templateActivities); + internationaliseActivities(libraryDTO.getTemplateActivities()); + libraries.add(libraryDTO); + } + return libraries; + } + + private void internationaliseActivities(Collection activities) { + Iterator iter = activities.iterator(); + Locale locale = LocaleContextHolder.getLocale(); + while (iter.hasNext()) { + LibraryActivityDTO activity = (LibraryActivityDTO) iter.next(); + // update the activity fields + String languageFilename = activity.getLanguageFile(); + if ( languageFilename != null ) { + MessageSource toolMessageSource = toolActMessageService.getMessageService(languageFilename); + if ( toolMessageSource != null ) { + activity.setActivityTitle(toolMessageSource.getMessage(Activity.I18N_TITLE,null,activity.getActivityTitle(),locale)); + activity.setDescription(toolMessageSource.getMessage(Activity.I18N_DESCRIPTION,null,activity.getDescription(),locale)); + activity.setHelpText(toolMessageSource.getMessage(Activity.I18N_HELP_TEXT,null,activity.getHelpText(),locale)); + } else { + log.warn("Unable to internationalise the library activity "+activity.getActivityID()+" "+activity.getActivityTitle() + +" message file "+activity.getLanguageFile()+". Activity Message source not available"); + } + + // update the tool field - note only tool activities have a tool entry. + if ( activity.getActivityTypeID()!=null && Activity.TOOL_ACTIVITY_TYPE == activity.getActivityTypeID().intValue() ) { + languageFilename = activity.getToolLanguageFile(); + toolMessageSource = toolActMessageService.getMessageService(languageFilename); + if ( toolMessageSource != null ) { + activity.setToolDisplayName(toolMessageSource.getMessage(Tool.I18N_DISPLAY_NAME,null,activity.getToolDisplayName(),locale)); + } else { + log.warn("Unable to internationalise the library activity "+activity.getActivityID()+" "+activity.getActivityTitle() + +" message file "+activity.getLanguageFile()+". Tool Message source not available"); + } + } + } else { + log.warn("Unable to internationalise the library activity "+activity.getActivityID()+" "+activity.getActivityTitle() + +". No message file supplied."); + } + } + } }