Package org.uengine.processdesigner.inputters

Source Code of org.uengine.processdesigner.inputters.org_uengine_contexts_ActivitySelectionContextInput

package org.uengine.processdesigner.inputters;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.metaworks.FieldDescriptor;
import org.metaworks.inputter.InputterAdapter;
import org.metaworks.inputter.ObjectInput;
import org.metaworks.web.HTML;
import org.uengine.contexts.ActivitySelectionContext;
import org.uengine.kernel.Activity;
import org.uengine.kernel.GlobalContext;
import org.uengine.kernel.ProcessInstance;
import org.uengine.kernel.RoleMapping;
import org.uengine.processmanager.ProcessTransactionContext;

public class org_uengine_contexts_ActivitySelectionContextInput extends ObjectInput{
 
  public org_uengine_contexts_ActivitySelectionContextInput(){
    super(ActivitySelectionContext.class);
  }
 
  public Object createValueFromHTTPRequest(Map req, String section, String name, Object oldValue) {
    String inputName = "_" + section + "_" + name;
    String instanceIdInputName = inputName + "_instanceId";
    String tracingTagInputName = inputName + "_tracingTag";
   
    String instanceId = ((String[])req.get(instanceIdInputName))[0];
    String tracingTag = ((String[])req.get(tracingTagInputName))[0];

    ActivitySelectionContext asc = new ActivitySelectionContext();
    asc.setInstanceId(instanceId);
    asc.setTracingTag(tracingTag);
   
    return asc;
  }

  public String getInputterHTML(String section, FieldDescriptor fd, Object defaultValue, Map options) {
    String inputName = "_" + section + "_" + fd.getName();
    String instanceIdInputName = inputName + "_instanceId";
    String tracingTagInputName = inputName + "_tracingTag";
   
    ActivitySelectionContext defaultASC = (ActivitySelectionContext)defaultValue;
    ProcessInstance instance = (ProcessInstance)options.get("instance");
 
    if(defaultASC==null)
      defaultASC = new ActivitySelectionContext();
   
    StringBuffer html = new StringBuffer();
    html
      .append("<input type=hidden name='" + instanceIdInputName + "'"+ HTML.getAttrHTML("value", defaultASC.getInstanceId()) +">")
      .append("<input type=hidden name='" + tracingTagInputName + "'"+ HTML.getAttrHTML("value", defaultASC.getTracingTag()) +">")
      .append("<input type=button name='" + inputName + "_display' value='Select Step' onclick=\"openActivityPicker('"+ inputName +"', '"+ instance.getRootProcessInstanceId() +"')\">")
    ;
     
    return html.toString();
  }
 
  public void addScriptTo(Properties scripts, String section, FieldDescriptor fd, Object defaultValue, Map options) {
    StringBuffer openActivityPicker = new StringBuffer();
    openActivityPicker
      .append("<script>\n")
      .append("function openActivityPicker(inputName, instanceId){\n")
      .append("  var activityPicker = window.open('"+ GlobalContext.WEB_CONTEXT_ROOT +"/common/activityPicker.jsp?instanceId='+instanceId,'_new','width=700,height=500,resizable=yes,scrollbars=yes');\n")
      .append("  activityPicker.onOk = onActivitySelected;\n")
      .append("  activityPicker.inputName = inputName;\n")
      .append("}\n")
      .append("</script>\n")
   
   
    scripts.put("openActivityPicker", openActivityPicker);

    StringBuffer onActivitySelected = new StringBuffer();
    onActivitySelected
      .append("<script>\n")
      .append("function onActivitySelected(activitySelection, inputName){\n")
      .append("  document.forms[0].all[inputName+'_instanceId'].value = activitySelection.instanceId;\n")
      .append("  document.forms[0].all[inputName+'_tracingTag'].value = activitySelection.tracingTag;\n")
      .append("  document.forms[0].all[inputName+'_display'].value = activitySelection.activityName;\n")
      .append("}\n")
      .append("</script>\n")
   
   
    scripts.put("onActivitySelected", onActivitySelected)
  }

  public String getViewerHTML(String section, FieldDescriptor fd, Object defaultValue, Map options) {
    ProcessInstance instance = (ProcessInstance)options.get("instance");
   
    ActivitySelectionContext asc = (ActivitySelectionContext)defaultValue;
   
    if(asc==null || asc.getInstanceId()==null || asc.getTracingTag()==null) return "-";
    try {
      HashMap param = new HashMap();
      param.put("ptc", instance.getProcessTransactionContext());
      ProcessInstance theInstance = ProcessInstance.create().getInstance(asc.getInstanceId(), param);
      Activity theActivity = theInstance.getProcessDefinition().getActivity(asc.getTracingTag());
     
      return theActivity.toString();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }   
   
    return super.getViewerHTML(section, fd, defaultValue, options);
  }

}
TOP

Related Classes of org.uengine.processdesigner.inputters.org_uengine_contexts_ActivitySelectionContextInput

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.