Package org.uengine.kernel

Examples of org.uengine.kernel.SubProcessActivity


    if(absoluteTracingTag.indexOf("@")>0){
//      isInitiationInSubprocess = true;
      String[] scopesByTracingTag = absoluteTracingTag.split("@");
      for(int i=0; i<scopesByTracingTag.length-1; i++){
        String scope = scopesByTracingTag[i];
        SubProcessActivity spAct = (SubProcessActivity)definition.getActivity(scope);
        List spInstanceIds = spAct.getSubprocessIds(instance);
        if(spInstanceIds.size() == 0){
          throw new UEngineException("Activity in the subprocess ["+ absoluteTracingTag +"] cannot be found.");
        }
       
        String spInstanceId = (String)spInstanceIds.get(0);
View Full Code Here


      Activity handlerActivity = theEventHandler.getHandlerActivity();
     
      HumanActivity humanActivity = null;
     
      if(handlerActivity instanceof SubProcessActivity){
        SubProcessActivity subProcessActivity = (SubProcessActivity)theEventHandler.getHandlerActivity();
        Vector idVt = subProcessActivity.getSubprocessIds(mainProcessInstance);
       
        String subInstanceId = (String)idVt.get(0);
       
        ProcessInstance subProcessInstance = getInstance(subInstanceId);
View Full Code Here

      if(tracingTag.indexOf("@")>0){
        isInitiationInSubprocess = true;
        String[] scopesByTracingTag = tracingTag.split("@");
        for(int i=0; i<scopesByTracingTag.length-1; i++){
          String scope = scopesByTracingTag[i];
          SubProcessActivity spAct = (SubProcessActivity)definition.getActivity(scope);
          List spInstanceIds = spAct.getSubprocessIds(instance);
          if(spInstanceIds.size() == 0){
            throw new UEngineException("Activity in the subprocess ["+ absoluteTracingTag +"] cannot be found.");
          }
         
          String spInstanceId = (String)spInstanceIds.get(0);
View Full Code Here

       
    ActivityForLoop forLoop = new ActivityForLoop(){
      public void logic(Activity act){
        try{
          if(act instanceof SubProcessActivity){
            SubProcessActivity spAct = (SubProcessActivity)act;
            String defVerId = spAct.getDefinitionVersionId("",null);
            definitions.add(defVerId);
           
            pmb.getSubDefinitionsDeeply(pmb.getDefinition(defVerId));
          }
        }catch(Exception e){
View Full Code Here

      //sub-process
      ActivityForLoop forLoop = new ActivityForLoop() {
        public void logic(Activity act) {
          try {
            if (act instanceof SubProcessActivity) {
              SubProcessActivity spAct = (SubProcessActivity) act;

              String oldAlias = (spAct.getDefinitionId().split("@")[0]).substring(1,(spAct.getDefinitionId().split("@")[0]).length() - 1);
              String oldDefVerId = spAct.getDefinitionId().split("@")[1];

              String newAlias = (String) newAliasListTmp.get(oldAlias);
              String newpdvId = (String) newDefVerIdListTmp.get(oldDefVerId);

              String newdefVerid = "[" + newAlias + "]@"+ newpdvId;
              spAct.setDefinitionId(newdefVerid);
            }
          } catch (Exception e) {
            throw new RuntimeException(e);
          }
        }
View Full Code Here

            try{
              connectedFromMain = !(processDefinitionDesignerFrom.getParentDesigner().getActivity().getProcessDefinition() == processDefinition);
            }catch(Exception ex){
            }
           
            SubProcessActivity subProcAct = null;
            ProcessDefinition mainProcessDefinition, subProcessDefinition;
            Role subRole, mainRole;
            if(connectedFromMain){
              subProcAct = (SubProcessActivity) getSubProcessDesigner(getProcessDefinitionDesigner()).getActivity();
              subProcessDefinition = (ProcessDefinition) getProcessDefinitionDesigner().getActivity();
              subRole = (Role)value;
              mainRole = droppedRole;
            }else{
              subProcAct = (SubProcessActivity) getSubProcessDesigner(processDefinitionDesignerFrom).getActivity();
              subProcessDefinition = (ProcessDefinition) processDefinitionDesignerFrom.getActivity();
              subRole = droppedRole;
              mainRole = (Role)value;
            }
            mainProcessDefinition = subProcAct.getProcessDefinition();
           
            RoleParameterContext roleParamContext = new RoleParameterContext();
            roleParamContext.setArgument(subRole.getName());
            roleParamContext.setRole(mainRole);
           
            RoleParameterContext[] newRPC = (RoleParameterContext[]) UEngineUtil.addArrayElement(subProcAct.getRoleBindings(), roleParamContext);
            subProcAct.setRoleBindings(newRPC);
          }
         
        }       
      } catch(UnsupportedFlavorException ufe) {
        ufe.printStackTrace();
View Full Code Here

     
    });
  }
 
  protected void unCollapse(){
    SubProcessActivity subProcAct = (SubProcessActivity) getActivity();

//    if(subProcDef==null){
      if(subProcAct.getDefinitionId()!=null){
        InputStream is;
        try {
          is = ProcessDesigner.getInstance().getClientProxy().showProcessDefinitionWithDefinitionId(ProcessDefinition.splitDefinitionAndVersionId(subProcAct.getDefinitionId())[0]);
          subProcDef = (ProcessDefinition) GlobalContext.deserialize(is, ProcessDefinition.class);
        } catch (Exception e) {
 
          e.printStackTrace();
          add("Center", new JLabel("Couldn't read the sub-process definition: " + e.getMessage()));
          revalidate();
          collapsed = false;
 
          return;
        }
 
      }else{
      }
//    }
   
    if(subProcDef==null){
      subProcDef = new ProcessDefinition();
      subProcDef.setName(subProcAct.getName());
     
      ProcessDefinition mainProcDef = subProcAct.getProcessDefinition();
     
      Role[] subProcRoles = new Role[mainProcDef.getRoles().length];
      for(int i=0; i<mainProcDef.getRoles().length; i++){
        subProcRoles[i] = (Role) mainProcDef.getRoles()[i].clone();
      }
View Full Code Here

  }
 
  protected void collapse(){
   
    try{
      SubProcessActivity subProcessAct = (SubProcessActivity)getActivity();
     
      boolean isNewDefinition = (subProcessAct.getDefinitionId()==null && subProcDef.getBelongingDefinitionId()==null);
     
      if(isNewDefinition){
        if(ProcessDesigner.getInstance().saveDesignToServer(false, subProcDef)){
          if(subProcDef.getBelongingDefinitionId()!=null)
            subProcessAct.setDefinitionId("["+subProcDef.getAlias()+"]");
        }
      }else{
        ProcessDefinition def = subProcDef;

        String definitionName = def.getName().getText();
View Full Code Here

  public java.util.List getArrowLinkingInfo(Object forWhat) {
   
    java.util.List arrowLinkList = new ArrayList();
   
    SubProcessActivity subProcessAct = (SubProcessActivity)getActivity();
   
    if(forWhat instanceof ProcessVariable && subProcessAct.getVariableBindings()!=null && subProcessAct.getVariableBindings().length > 0){
      ProcessVariable wannaBeLinked = (ProcessVariable)forWhat;
     
      ParameterContext[] variableBindings = subProcessAct.getVariableBindings();
      for(int i=0; i<variableBindings.length; i++){
        if(wannaBeLinked==variableBindings[i].getVariable()){
       
          ArrowLinkingInfo arrowLinkingInfo = new ArrowLinkingInfo();
         
          Point linkPoint;
         
          if(collapsed){
            linkPoint = new Point(i * getWidth()/variableBindings.length, getHeight());
          }else{
            ProcessVariable boundSubProcessVariable = subProcDef.getProcessVariable(variableBindings[i].getArgument().getText());
            JLabel labelForBoundSubProcessVariable = subProcessDesignerComponent.processVariableInformationPanel.getJLabel(boundSubProcessVariable);
           
            if(labelForBoundSubProcessVariable==null) continue;
           
            linkPoint = UEngineUtil.getRelativeLocation(this, labelForBoundSubProcessVariable);
          }
           
         
          arrowLinkingInfo.setLinkPoint(linkPoint);
         
          if(variableBindings[i].getDirection()!=null && variableBindings[i].getDirection().equals(ParameterContext.DIRECTION_IN))
            arrowLinkingInfo.setTarget(true);
          else
          if(variableBindings[i].getDirection()!=null && variableBindings[i].getDirection().equals(ParameterContext.DIRECTION_OUT)){
            arrowLinkingInfo.setSource(true);
          }else{
            arrowLinkingInfo.setTarget(true);
            arrowLinkingInfo.setSource(true);
          }

          arrowLinkList.add(arrowLinkingInfo);
        }
      }
     
    }

   
    if(forWhat instanceof Role && subProcessAct.getRoleBindings()!=null && subProcessAct.getRoleBindings().length > 0){
      Role wannaBeLinked = (Role)forWhat;
     
      RoleParameterContext[] roleBindings = subProcessAct.getRoleBindings();
      for(int i=0; i<roleBindings.length; i++){
        if(wannaBeLinked==roleBindings[i].getRole()){
       
          ArrowLinkingInfo arrowLinkingInfo = new ArrowLinkingInfo();
         
View Full Code Here

    ProcessInstance instance,
    Map options) {
    // TODO Auto-generated method stub
   
    //pushParentTracingTag(options, activity.getTracingTag());
    SubProcessActivity subProcessActivity = (SubProcessActivity)activity;
   
    if(options.containsKey("replacingSubProcessTracingTag")){
      String replacingSubProcessTracingTag = (String) options.get("replacingSubProcessTracingTag");
     
      if(replacingSubProcessTracingTag.equals(activity.getTracingTag()))
      {
        try
        {
          Vector<String> subProcessInstanceIds;
          subProcessInstanceIds = subProcessActivity.getSubprocessIds(instance);
          Vector<String> subProcessInstanceLabels = subProcessActivity.getSubprocessLabels(instance);
         
          String replacingSubProcessKey = (String) options.get("replacingSubProcessKey");
         
          int subProcessIndex = subProcessInstanceLabels.indexOf(replacingSubProcessKey);
                    /*
                    int replacingKeySize = replacingSubProcessKey.length();
                    if(subProcessIndex < 0){
                        for(int i = 0 ; i < subProcessInstanceLabels.size() ; i++){
                            String extKey = (String)subProcessInstanceLabels.get(i);
                            System.out.println("before subString extKey["+extKey+"]");
                            if(extKey != null && extKey.length() > replacingKeySize){
                                extKey = extKey.substring(0, replacingKeySize);
                            }
                            System.out.println("after subString extKey["+extKey+"]");
                            if(extKey.equals(replacingSubProcessKey)){
                                subProcessIndex = i;
                                break;
                            }
                        }
                    }
                    */
                    if(subProcessIndex > -1){
            String replacingSubProcessInstanceId = (String)subProcessInstanceIds.get(subProcessIndex);
            ProcessInstance replacingSubProcessInstance = instance.getProcessTransactionContext().getProcessManager().getProcessInstance(replacingSubProcessInstanceId);
            SequenceActivityViewer defViewer = new SequenceActivityViewer();
           
            return defViewer.render(replacingSubProcessInstance.getProcessDefinition(), replacingSubProcessInstance, options);
          }else{
            System.out.println("Although you've requested a sub process replacing option, there's no matching instance for the requested key["+ replacingSubProcessKey +"].");
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
   
   
    /**
     * showing subprocess as no level
     */
    if(subProcessActivity.isViewAlsoInMainProcess() && instance!=null){
      try {
        ProcessInstance replacingSubProcessInstance = (ProcessInstance) subProcessActivity.getSubProcesses(instance).get(0);
        SequenceActivityViewer defViewer = new SequenceActivityViewer();
        return defViewer.render(replacingSubProcessInstance.getProcessDefinition(), replacingSubProcessInstance, options);
      } catch (Exception e) {
        e.printStackTrace();
      }
     
    }
   
    /**
     * try showing sub process' outlines
     */
    if(options.containsKey("showSubProcessOutline") && instance!=null){
      try{

        int segmentIndex = activity.getTracingTag().indexOf("_");
        if(segmentIndex == -1){

          String spDefId = subProcessActivity.getDefinitionIdOnly();
          ProcessManagerBean processManager = instance.getProcessTransactionContext().getProcessManager();       
          String spVersionId = processManager.getProcessDefinitionProductionVersion(spDefId);
       
          ProcessDefinition spDef = ProcessDefinitionFactory.getInstance(instance.getProcessTransactionContext()).getDefinition(spVersionId);
         
          Vector scopeActitivies = new Vector();
          Vector firstLevelChild = spDef.getChildActivities();
         
          SequenceActivity sequence = null;
 
          Vector subProcesses = subProcessActivity.getSubProcesses(instance);
          ProcessInstance proxyInstance = instance.createSnapshot();
         
          int j = 0;
          for(int i=0; i<firstLevelChild.size(); i++){
            if(firstLevelChild.get(i) instanceof ScopeActivity){
              if(sequence==null){
                sequence = new SequenceActivity();
                sequence.setTracingTag(activity.getTracingTag());
              }
             
              ScopeActivity scopeChild = (ScopeActivity)firstLevelChild.get(i);
              scopeActitivies.add(scopeChild);
             
              SubProcessActivity segment_subProcessActivity = new SubProcessActivity();
              segment_subProcessActivity.setName(scopeChild.getName());
              segment_subProcessActivity.setDefinitionId(subProcessActivity.getDefinitionId());
              segment_subProcessActivity.setTracingTag(activity.getTracingTag() + "_" + j);
              segment_subProcessActivity.setStatus(instance, Activity.STATUS_READY);
             
              boolean bAllisCompleted = (subProcesses.size() > 0);
              for(int k=0; k<subProcesses.size(); k++){
                ProcessInstance theProcessInstance = (ProcessInstance) subProcesses.get(k);
                String status = theProcessInstance.getStatus(scopeChild.getTracingTag());
               
                if(!Activity.STATUS_COMPLETED.equals(status)){
                  if(!Activity.STATUS_READY.equals(status)){
                    segment_subProcessActivity.setStatus(proxyInstance, Activity.STATUS_RUNNING);
                    bAllisCompleted = false;
                    break;
                  }else
                    bAllisCompleted = false;
                }
              }
             
              if(bAllisCompleted)
                segment_subProcessActivity.setStatus(proxyInstance, Activity.STATUS_COMPLETED);
             
              sequence.addChildActivity(segment_subProcessActivity);
             
              j++;
            }
View Full Code Here

TOP

Related Classes of org.uengine.kernel.SubProcessActivity

Copyright © 2018 www.massapicom. 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.