Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java,v
diff -u -r1.3 -r1.4
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java 4 Aug 2005 04:40:58 -0000 1.3
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesContentDAO.java 2 Dec 2005 00:48:54 -0000 1.4
@@ -29,7 +29,7 @@
*
* @param content
*/
- public void save(SubmitFilesContent content);
+ public void saveOrUpdate(SubmitFilesContent content);
public void deleteInstructionFile(Long contentID, Long uuid, Long versionID, String type);
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java,v
diff -u -r1.7 -r1.8
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java 6 Oct 2005 06:47:52 -0000 1.7
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesContentDAO.java 2 Dec 2005 00:48:54 -0000 1.8
@@ -49,9 +49,9 @@
/* (non-Javadoc)
* @see org.lamsfoundation.lams.tool.sbmt.dao.ISubmitFilesContentDAO#save(org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent)
*/
- public void save(SubmitFilesContent content) {
+ public void saveOrUpdate(SubmitFilesContent content) {
this.getSession().setFlushMode(FlushMode.COMMIT);
- this.getHibernateTemplate().save(content);
+ this.getHibernateTemplate().saveOrUpdate(content);
this.getHibernateTemplate().flush();
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java,v
diff -u -r1.19 -r1.20
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java 17 Nov 2005 06:32:20 -0000 1.19
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java 2 Dec 2005 00:48:54 -0000 1.20
@@ -39,22 +39,7 @@
*/
public interface ISubmitFilesService {
-
/**
- * This method adds a new content record to the database.
- *
- */
- public void addSubmitFilesContent(SubmitFilesContent content);
-
- /**
- * Updates the record in the database
- *
- * @param submitFilesContent
- * The SubmitFilesContent
to be updated
- */
- public void updateSubmitFilesContent(SubmitFilesContent submitFilesContent);
-
- /**
* Returns the SubmitFilesContent
object corresponding to the
* given contentID
. If could not find out corresponding
* SubmitFilesContent
by given contentID
, return a not-null
@@ -201,4 +186,10 @@
*/
//public List getSubmitFilesSessionsByContentID(Long contentID);
public List getSubmitFilesSessionByContentID(Long contentID);
+ /**
+ * Save or update tool content into database.
+ * @param persistContent
+ * The SubmitFilesContent
to be updated
+ */
+ public void saveOrUpdateContent(SubmitFilesContent persistContent);
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java,v
diff -u -r1.32 -r1.33
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 30 Nov 2005 04:44:51 -0000 1.32
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 2 Dec 2005 00:48:54 -0000 1.33
@@ -136,7 +136,7 @@
content = duplicateDefaultToolContent(toolContentId);
}
content.setRunOffline(true);
- submitFilesContentDAO.save(content);
+ submitFilesContentDAO.saveOrUpdate(content);
}
catch (DataAccessException e)
{
@@ -175,7 +175,7 @@
content = duplicateDefaultToolContent(toolContentId);
}
content.setDefineLater(true);
- submitFilesContentDAO.save(content);
+ submitFilesContentDAO.saveOrUpdate(content);
}
catch (DataAccessException e)
{
@@ -210,26 +210,15 @@
}
}
- /**
- * (non-Javadoc)
- *
- * @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#addSubmitFilesContent(SubmitFilesContent)
- */
- public void addSubmitFilesContent(SubmitFilesContent content) {
- submitFilesContentDAO.save(content);
- }
/*
* (non-Javadoc)
*
* @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#updateSubmitFilesContent(org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent)
*/
- public void updateSubmitFilesContent(SubmitFilesContent submitFilesContent) {
- submitFilesContentDAO.update(submitFilesContent);
+ public void saveOrUpdateContent(SubmitFilesContent submitFilesContent) {
+ submitFilesContentDAO.saveOrUpdate(submitFilesContent);
}
- public void saveSubmitFilesContent(SubmitFilesContent submitFilesContent) {
- submitFilesContentDAO.save(submitFilesContent);
- }
/*
* (non-Javadoc)
@@ -694,7 +683,7 @@
content = SubmitFilesContent.newInstance(defaultContent,contentID,sbmtToolContentHandler);
content.setContentID(contentID);
- saveSubmitFilesContent(content);
+// saveSubmitFilesContent(content);
return content;
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java,v
diff -u -r1.14 -r1.15
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java 18 Nov 2005 04:42:32 -0000 1.14
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java 2 Dec 2005 00:48:54 -0000 1.15
@@ -92,50 +92,57 @@
.getServlet().getServletContext());
try {
SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(content.getContentID());
- if(content.getContentID().equals(persistContent.getContentID())){
- //keep Set type attribute for persist content becuase this update only
- //include updating simple properties from web page(i.e. text value, list value, etc)
- Set attPOSet = persistContent.getInstructionFiles();
- List attachmentList = getAttachmentList(request);
- List deleteAttachmentList = getDeletedAttachmentList(request);
- Iterator iter = attachmentList.iterator();
- while(iter.hasNext()){
- InstructionFiles newAtt = (InstructionFiles) iter.next();
- //add new attachment, UID is not null
- if(newAtt.getUid() == null)
- attPOSet.add(newAtt);
- }
- attachmentList.clear();
+
+ if(persistContent == null || content.getContentID() == null
+ || !content.getContentID().equals(persistContent.getContentID())){
+ //new content
+ persistContent = content;
+ }
- iter = deleteAttachmentList.iterator();
- while(iter.hasNext()){
- InstructionFiles delAtt = (InstructionFiles) iter.next();
- //delete from repository
- submitFilesService.deleteFromRepository(delAtt.getUuID(),delAtt.getVersionID());
- //it is an existed att, then delete it from current attachmentPO
- if(delAtt.getUid() != null){
- Iterator attIter = attPOSet.iterator();
- while(attIter.hasNext()){
- InstructionFiles att = (InstructionFiles) attIter.next();
- if(delAtt.getUid().equals(att.getUid())){
- attIter.remove();
- break;
- }
+ //keep Set type attribute for persist content becuase this update only
+ //include updating simple properties from web page(i.e. text value, list value, etc)
+ Set attPOSet = persistContent.getInstructionFiles();
+ if(attPOSet == null)
+ attPOSet = new HashSet();
+ List attachmentList = getAttachmentList(request);
+ List deleteAttachmentList = getDeletedAttachmentList(request);
+ Iterator iter = attachmentList.iterator();
+ while(iter.hasNext()){
+ InstructionFiles newAtt = (InstructionFiles) iter.next();
+ //add new attachment, UID is not null
+ if(newAtt.getUid() == null)
+ attPOSet.add(newAtt);
+ }
+ attachmentList.clear();
+
+ iter = deleteAttachmentList.iterator();
+ while(iter.hasNext()){
+ InstructionFiles delAtt = (InstructionFiles) iter.next();
+ //delete from repository
+ submitFilesService.deleteFromRepository(delAtt.getUuID(),delAtt.getVersionID());
+ //it is an existed att, then delete it from current attachmentPO
+ if(delAtt.getUid() != null){
+ Iterator attIter = attPOSet.iterator();
+ while(attIter.hasNext()){
+ InstructionFiles att = (InstructionFiles) attIter.next();
+ if(delAtt.getUid().equals(att.getUid())){
+ attIter.remove();
+ break;
}
- submitFilesService.deleteInstructionFile(content.getContentID(), delAtt.getUuID(), delAtt
- .getVersionID(), delAtt.getType());
- }//end remove from persist value
- }
- deleteAttachmentList.clear();
-
- //copy back
- content.setInstructionFiles(attPOSet);
- content.setToolSession(persistContent.getToolSession());
- //copy web page value into persist content, as above, the "Set" type value kept.
- PropertyUtils.copyProperties(persistContent,content);
- submitFilesService.updateSubmitFilesContent(persistContent);
- }else
- submitFilesService.addSubmitFilesContent(content);
+ }
+ submitFilesService.deleteInstructionFile(content.getContentID(), delAtt.getUuID(), delAtt
+ .getVersionID(), delAtt.getType());
+ }//end remove from persist value
+ }
+ deleteAttachmentList.clear();
+
+ //copy back
+ content.setInstructionFiles(attPOSet);
+ content.setToolSession(persistContent.getToolSession());
+ //copy web page value into persist content, as above, the "Set" type value kept.
+ PropertyUtils.copyProperties(persistContent,content);
+
+ submitFilesService.saveOrUpdateContent(persistContent);
} catch (Exception e) {
log.error(e);
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java,v
diff -u -r1.21 -r1.22
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java 17 Nov 2005 06:31:54 -0000 1.21
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java 2 Dec 2005 00:48:54 -0000 1.22
@@ -428,7 +428,7 @@
SubmitFilesContent content = submitFilesService.getSubmitFilesContent(contentID);
content.setTitle(title);
content.setInstruction(instructions);
- submitFilesService.updateSubmitFilesContent(content);
+ submitFilesService.saveOrUpdateContent(content);
return mapping.findForward("success");
}