Package org.uengine.kernel.descriptor

Source Code of org.uengine.kernel.descriptor.WebServiceActivityDescriptor

package org.uengine.kernel.descriptor;

import org.uengine.kernel.Activity;
import org.uengine.kernel.ParameterContext;
import org.uengine.kernel.ProcessDefinition;
import org.uengine.kernel.Role;
import org.uengine.kernel.ServiceDefinition;
import org.uengine.kernel.WebServiceActivity;
import org.uengine.processdesigner.*;
import org.uengine.processdesigner.inputters.*;
import org.metaworks.*;
import org.metaworks.inputter.*;
import javax.swing.JTextField;

/**
* @author Jinyoung Jang
*/

public class WebServiceActivityDescriptor extends ActivityDescriptor{
 
  static{
    fieldOrder.insertElementAt("Service", 0);
    fieldOrder.insertElementAt("PortType", 0);
    fieldOrder.insertElementAt("OperationName", 0);
  }

  public WebServiceActivityDescriptor() throws Exception{
    super();
  }
 
  public void initialize(ProcessDesigner pd, Activity activity){
    super.initialize(pd, activity);
     
    FieldDescriptor fd;
   
    fd = getFieldDescriptor("Output");
    fd.setInputter(new ProcessVariableInput());
   
    //service, portType, and operation are tied
    try{
      ProcessVariableArrayInput parameterInput = new ProcessVariableArrayInput(){
        public Object getValue(){
          ParameterContext[] vals = (ParameterContext[])super.getValue();
          Object[] realValues = new Object[vals.length];
          System.arraycopy(vals,0,realValues,0,vals.length);
         
          return realValues;
        }
      };
     
      SelectInput operationInputter = new SelectInput(new String[]{});
      final PortTypeInput portTypeInputter = new PortTypeInput(pd, operationInputter, parameterInput);
   
      fd = getFieldDescriptor("Service");
      fd.setInputter(new ServiceDefinitionInput((ProcessDefinition)pd.getProcessDefinitionDesigner().getActivity(), portTypeInputter));
      final InputterAdapter serviceDefinitionInputter = (InputterAdapter)fd.getInputter();
      //JTextField tf = (JTextField)serviceDefinitionInputter.getValueComponent();
      //tf.setEditable(false);
      //fd.setAttribute("hidden", new Boolean(true));
   
      fd = getFieldDescriptor("PortType");
      fd.setInputter(portTypeInputter);
   
      fd = getFieldDescriptor("OperationName");
      fd.setInputter(operationInputter);

      fd = getFieldDescriptor("Parameters");
      fd.setInputter(parameterInput);

      fd = getFieldDescriptor("Role");   
      fd.setInputter(new RoleInput(pd, RoleInput.WEBSERVICE_ONLY){
        public void onValueChanged(){
          Role role = (Role)getValue();
          ServiceDefinition svcdef = (ServiceDefinition)role.getServiceType();
          serviceDefinitionInputter.setValue(svcdef);
          portTypeInputter.setServiceDefinition(svcdef);         
        }
      });

    }catch(Exception e){
      e.printStackTrace();
    }

    setFieldDisplayNames(WebServiceActivity.class);
  }
}
TOP

Related Classes of org.uengine.kernel.descriptor.WebServiceActivityDescriptor

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.