From: <yo...@us...> - 2010-07-15 20:52:04
|
Revision: 735 http://treebase.svn.sourceforge.net/treebase/?rev=735&view=rev Author: youjun Date: 2010-07-15 20:51:58 +0000 (Thu, 15 Jul 2010) Log Message: ----------- handshaking add new citation object to a user Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/ProcessUserController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudyFormController.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/CitationParser.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/DryadUtil.java trunk/treebase-web/src/main/webapp/WEB-INF/treebase-servlet.xml Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/ProcessUserController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/ProcessUserController.java 2010-07-15 00:13:45 UTC (rev 734) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/ProcessUserController.java 2010-07-15 20:51:58 UTC (rev 735) @@ -1,13 +1,30 @@ package org.cipres.treebase.web.controllers; +import java.io.File; +import java.io.FileFilter; +import java.util.Collection; +import java.util.List; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; +import org.springframework.web.servlet.view.RedirectView; +import org.cipres.treebase.TreebaseUtil; +import org.cipres.treebase.domain.admin.User; import org.cipres.treebase.domain.admin.UserRole; +import org.cipres.treebase.domain.admin.UserService; +import org.cipres.treebase.domain.study.Citation; +import org.cipres.treebase.domain.study.Study; +import org.cipres.treebase.domain.study.Submission; +import org.cipres.treebase.domain.study.SubmissionService; +import org.cipres.treebase.web.model.MyProgressionListener; +import org.cipres.treebase.web.util.CitationParser; +import org.cipres.treebase.web.util.ControllerUtil; +import org.cipres.treebase.web.util.DryadUtil; /** * @author madhu @@ -16,17 +33,86 @@ * */ public class ProcessUserController implements Controller { + private SubmissionService mSubmissionService; + private UserService mUserService; + + public UserService getUserService() { + return mUserService; + } + public void setUserService(UserService mUserService) { + this.mUserService = mUserService; + } + + public SubmissionService getSubmissionService() { + return mSubmissionService; + } + + public void setSubmissionService(SubmissionService mSubmissionService) { + this.mSubmissionService = mSubmissionService; + } + private static final Logger LOGGER = Logger.getLogger(ProcessUserController.class); public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { + String importKey = (String)request.getSession().getAttribute("importKey"); + User user = ControllerUtil.getUser(request, mUserService); - if (importKey != null && importKey.length()>0) { - - return new ModelAndView("redirect:/user/studyForm.html"); - } + if(importKey != null && importKey.length()>0){ + + String uploadpath = request.getSession().getServletContext() + .getRealPath(TreebaseUtil.FILESEP + "DryadFileUpload") + + TreebaseUtil.FILESEP + importKey; + String importStatus=""; + + File uploadDir=new File(uploadpath); + if(!uploadDir.exists()){ + importStatus = "NOT FOUND"; + request.setAttribute("importStatus", importStatus); + return new ModelAndView("redirect:/user/submissionList.html"); + } + + File[] uploadFiles = uploadDir.listFiles(new FileFilter(){public boolean accept(File file){return file.isDirectory();}}); + if(uploadFiles.length==0){ + importStatus = "NOT FOUND"; + request.setAttribute("importStatus", importStatus); + return new ModelAndView("redirect:/user/submissionList.html"); + } + File bagitPath = uploadFiles[0]; + File dataPath = new File(bagitPath, "data"); + + try{ + CitationParser cparser= new CitationParser(dataPath); + Citation citation = cparser.getCitation(); + Study study = new Study(); + + study.setCitation(citation); + citation.setStudy(study); + Submission submission = mSubmissionService.createSubmission(user, study); + + List<File> files = DryadUtil.getDataFiles(dataPath); + for(int i=0; i<files.size(); i++ ) + submission.getStudy().addNexusFile(files.get(i).getName(), "NEXUS"); + MyProgressionListener listener = new MyProgressionListener(); + //getSubmissionService().addNexusFilesJDBC(submission, files, listener); + + // save Study object to session + //mSubmissionService.save(submission); + mSubmissionService.save(study); + //mSubmissionService.save(citation); + + importStatus = "OK"; + }catch (Exception e) { + importStatus = "FAILED"; + } + + request.setAttribute("importStatus", importStatus); + request.getSession().removeAttribute("importKey"); + return new ModelAndView("redirect:/user/submissionList.html"); + + } if (request.isUserInRole(UserRole.ROLE_ADMIN) || request.isUserInRole(UserRole.ROLE_ASSO_EDITOR)) { return new ModelAndView("redirect:/admin/administrationPage.html"); Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudyFormController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudyFormController.java 2010-07-15 00:13:45 UTC (rev 734) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudyFormController.java 2010-07-15 20:51:58 UTC (rev 735) @@ -1,33 +1,24 @@ package org.cipres.treebase.web.controllers; -import java.io.File; -import java.io.FileFilter; -import java.util.Collection; - import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.cipres.treebase.TreebaseUtil; import org.apache.log4j.Logger; -import org.springframework.validation.BindException; -import org.springframework.web.bind.ServletRequestUtils; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.view.RedirectView; - +import org.cipres.treebase.TreebaseUtil; import org.cipres.treebase.domain.admin.User; import org.cipres.treebase.domain.admin.UserService; -import org.cipres.treebase.domain.study.Citation; import org.cipres.treebase.domain.study.Study; import org.cipres.treebase.domain.study.StudyService; import org.cipres.treebase.domain.study.Submission; import org.cipres.treebase.domain.study.SubmissionService; import org.cipres.treebase.web.Constants; -import org.cipres.treebase.web.model.MyProgressionListener; -import org.cipres.treebase.web.util.CitationParser; import org.cipres.treebase.web.util.ControllerUtil; -import org.cipres.treebase.web.util.DryadUtil; +import org.springframework.validation.BindException; +import org.springframework.web.bind.ServletRequestUtils; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.view.RedirectView; /** * StudyFormController.java @@ -104,54 +95,7 @@ Study study = (Study) command; User user = ControllerUtil.getUser(request, mUserService); - String importKey = (String)request.getSession().getAttribute("importKey"); - //request.getSession().removeAttribute("importKey"); - if(importKey != null && importKey.length()>0){ - String uploadpath = getServletContext() - .getRealPath(TreebaseUtil.FILESEP + "DryadFileUpload") - + TreebaseUtil.FILESEP + importKey; - String importStatus=""; - - File uploadDir=new File(uploadpath); - if(!uploadDir.exists()){ - importStatus = "NOT FOUND"; - return new ModelAndView(new RedirectView("submissionList.html")); - } - - File[] uploadFiles = uploadDir.listFiles(new FileFilter(){public boolean accept(File file){return file.isDirectory();}}); - if(uploadDir.length()==0){ - importStatus = "NOT FOUND"; - return new ModelAndView(new RedirectView("submissionList.html")); - } - File bagitPath = uploadFiles[0]; - File dataPath = new File(bagitPath, "data"); - - try{ - Submission submission = mSubmissionService.createSubmission(user, new Study()); - CitationParser cparser= new CitationParser(dataPath); - Citation citation = cparser.getCitation(); - submission.getStudy().setCitation(citation); - citation.setStudy(submission.getStudy()); - - Collection<File> files = DryadUtil.getDataFiles(dataPath); - MyProgressionListener listener = new MyProgressionListener(); - //getSubmissionService().addNexusFilesJDBC(submission, files, listener); - // save Study object to session - ControllerUtil.saveStudy(request, submission.getStudy()); - importStatus = "OK"; - }catch (Exception e) { - importStatus = "FAILED"; - } - - request.setAttribute("importStatus", importStatus); - //request.getSession().removeAttribute("importKey"); - return new ModelAndView(new RedirectView("submissionList.html")); - - } - - - if (request.getParameter(ACTION_SUBMIT) != null) { // Study must be submitted with citation together // here we are just saving the data to the session @@ -214,10 +158,7 @@ request.getSession().removeAttribute(Constants.STUDY_MAP); return new Study(); } - - if(request.getSession().getAttribute("importKey") != null) - return new Study(); - + // if we are updating a data that's already in the db (access from RHS menu) study = ControllerUtil.findStudy(request, mStudyService); return study; Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/CitationParser.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/CitationParser.java 2010-07-15 00:13:45 UTC (rev 734) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/CitationParser.java 2010-07-15 20:51:58 UTC (rev 735) @@ -56,7 +56,7 @@ private void loadData(){ - + Node description = getNode(pubRoot,"description",dcterms); if(description!=null)citation.setAbstract(description.getText()); @@ -104,11 +104,12 @@ } - if(getNode(pubRoot,"pubStatus",null).getText()!=null){ + if(getNode(pubRoot,"pubStatus",null)!=null){ if("published".compareToIgnoreCase(getNode(pubRoot,"pubStatus",null).getText())==0) citation.setPublished(true); else citation.setPublished(false); - } + } + } private Node getNode(Element root, String localName, Namespace namespace){ Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/DryadUtil.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/DryadUtil.java 2010-07-15 00:13:45 UTC (rev 734) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/DryadUtil.java 2010-07-15 20:51:58 UTC (rev 735) @@ -16,7 +16,7 @@ public class DryadUtil { - public static Collection<File> getDataFiles(File path) { + public static List<File> getDataFiles(File path) { // TODO Auto-generated method stub File[] files = path.listFiles(new FileFilter() { public boolean accept(File file) { Modified: trunk/treebase-web/src/main/webapp/WEB-INF/treebase-servlet.xml =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/treebase-servlet.xml 2010-07-15 00:13:45 UTC (rev 734) +++ trunk/treebase-web/src/main/webapp/WEB-INF/treebase-servlet.xml 2010-07-15 20:51:58 UTC (rev 735) @@ -21,8 +21,10 @@ <!-- LIST OF CONTROLLERS FOR WEB-TIER --> <!-- ========================================================== --> - <bean id="processUserController" class="org.cipres.treebase.web.controllers.ProcessUserController"/> - + <bean id="processUserController" class="org.cipres.treebase.web.controllers.ProcessUserController"> + <property name="submissionService"><ref bean="submissionService"></ref></property> + <property name="userService"><ref bean="userService"></ref></property> + </bean> <bean id="anyObjectAsRDFController" class="org.cipres.treebase.web.controllers.AnyObjectAsRDFController"> <property name="studyService"><ref bean="studyService"></ref></property> </bean> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |