Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java,v diff -u -r1.12 -r1.13 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 6 Jun 2006 07:13:30 -0000 1.12 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 8 Jun 2006 06:38:13 -0000 1.13 @@ -86,11 +86,10 @@ import org.lamsfoundation.lams.tool.ToolContentManager; import org.lamsfoundation.lams.tool.dao.IToolContentDAO; import org.lamsfoundation.lams.tool.dao.IToolDAO; -import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO; -import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.FileUtil; import org.lamsfoundation.lams.util.FileUtilException; import org.lamsfoundation.lams.util.zipfile.ZipFileUtil; @@ -440,7 +439,23 @@ log.debug("Tool content import success."); } - saveLearningDesign(ldDto,importer,workspaceFolderUid,toolMapper); + // if workspaceFolderUid == null use the user's default folder + WorkspaceFolder folder = null; + if ( workspaceFolderUid != null ) { + folder = workspaceFolderDAO.getWorkspaceFolderByID(workspaceFolderUid); + } + if ( folder == null && importer.getWorkspace() != null) { + folder = importer.getWorkspace().getRootFolder(); + } + if ( folder == null ) { + String error = "Unable to save design in a folder - folder not found. Input folder uid="+workspaceFolderUid+ + " user's default folder "+importer.getWorkspace(); + log.error(error); + throw new ImportToolContentException(error); + } + + saveLearningDesign(ldDto,importer,folder,toolMapper); + }catch (ToolException e) { throw new ImportToolContentException(e); } catch (FileNotFoundException e) { @@ -596,7 +611,7 @@ return applicationContext.getBean(tool.getServiceName()); } - private void saveLearningDesign(LearningDesignDTO dto, User importer, Integer workspaceFolderUid, Map toolMapper) + private void saveLearningDesign(LearningDesignDTO dto, User importer, WorkspaceFolder folder, Map toolMapper) throws ImportToolContentException { //grouping object list @@ -639,7 +654,7 @@ } - LearningDesign ld = getLearningDesign(dto,importer,workspaceFolderUid,actList,transList,activityMapper); + LearningDesign ld = getLearningDesign(dto,importer,folder,actList,transList,activityMapper); // persist learningDesignDAO.insert(ld); } @@ -656,7 +671,7 @@ * @return * @throws ImportToolContentException */ - private LearningDesign getLearningDesign(LearningDesignDTO dto, User importer, Integer workspaceFolderUid, + private LearningDesign getLearningDesign(LearningDesignDTO dto, User importer, WorkspaceFolder folder, Set actList, Set transList, Map activityMapper) throws ImportToolContentException { LearningDesign ld = new LearningDesign(); @@ -691,8 +706,8 @@ ld.setCreateDateTime(dto.getCreateDateTime()); ld.setVersion(dto.getVersion()); - if(workspaceFolderUid != null) - ld.setWorkspaceFolder(workspaceFolderDAO.getWorkspaceFolderByID(workspaceFolderUid)); + if(folder != null) + ld.setWorkspaceFolder(folder); ld.setDuration(dto.getDuration()); ld.setLicenseText(dto.getLicenseText()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java,v diff -u -r1.6 -r1.7 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java 6 Jun 2006 04:08:57 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java 8 Jun 2006 06:38:13 -0000 1.7 @@ -80,6 +80,14 @@ String fileVersionFieldName, String fileNameFieldName, String filePropertyFieldName, String mimeTypeFieldName, String initialItemFieldName); + /** Import the learning design from the given path. Set the importer as the creator. If the workspaceFolderUid is + * null then saves the design in the user's own workspace folder. + * + * @param learningDesignPath + * @param importer + * @param workspaceFolderUid + * @throws ImportToolContentException + */ void importLearningDesign(String learningDesignPath,User importer, Integer workspaceFolderUid) throws ImportToolContentException; Object importToolContent(String toolContentPath, IToolContentHandler toolContentHandler)