NewProcessController.java :  » Workflow-Engines » bpmscript » org » bpmscript » web » Java Open Source

Java Open Source » Workflow Engines » bpmscript 
bpmscript » org » bpmscript » web » NewProcessController.java
package org.bpmscript.web;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.bpmscript.FileUtils;
import org.bpmscript.remote.IRemoteProcessManager;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;

public class NewProcessController extends SimpleFormController implements InitializingBean {

  private final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory
      .getLog(NewProcessController.class);
  
  private IRemoteProcessManager remoteProcessManager;
  private Resource sampleJs = null;

  private String sampleSource;
  
  @Override
  protected Map<String, Object> referenceData(HttpServletRequest request) throws Exception {
    Map<String, Object> result = new HashMap<String, Object>();
    return result;
  }
  
  @Override
  protected Object formBackingObject(HttpServletRequest request) throws Exception {
    NewProcess newProcess = new NewProcess();
    newProcess.setSource(sampleSource);
    return newProcess;
  }
  
  @Override
  protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
    NewProcess newProcess = (NewProcess) command;
    String processId = remoteProcessManager.createProcess(null, newProcess.getProcessName());
    remoteProcessManager.addSourceToProcess(processId, "main.js", newProcess.getSource(), true);
    remoteProcessManager.setProcessAsPrimary(processId);
    log.debug("process created and set to primary");
    return new ModelAndView(new RedirectView("processes.html", true));
  }
  
  public void setRemoteProcessManager(IRemoteProcessManager remoteProcessManager) {
    this.remoteProcessManager = remoteProcessManager;
  }

  public void afterPropertiesSet() throws Exception {
    if(sampleJs != null) {
      sampleSource = FileUtils.readFully(sampleJs.getInputStream());
    }
  }

  public void setSampleJs(Resource sampleJs) {
    this.sampleJs = sampleJs;
  }
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.