Package org.uengine.kernel.viewer

Source Code of org.uengine.kernel.viewer.SwitchActivityViewer

package org.uengine.kernel.viewer;

/**
* @author Jinyoung Jang
*/

import org.uengine.components.activityfilters.ProbabilityInstrumentationFilter;
import org.uengine.kernel.Activity;
import org.uengine.kernel.ComplexActivity;
import org.uengine.kernel.Condition;
import org.uengine.kernel.ProcessInstance;
import org.uengine.kernel.SequenceActivity;
import org.uengine.kernel.SwitchActivity;
import org.uengine.util.UEngineUtil;

import java.util.Enumeration;
import java.util.Map;

public class SwitchActivityViewer extends AllActivityViewer{
 
  protected String getLabel(int i, Activity activity, ProcessInstance instance, Map options){
    try{
      String locale = (String)options.get("locale");
     
      SwitchActivity switchActivity = (SwitchActivity)activity;
     
      boolean isVertical = options.containsKey("vertical");
      boolean isSelected = false;
      if(instance!=null /*&& instance.isRunning(activity.getTracingTag())*/) {
        Activity currChild = (Activity) switchActivity.getChildActivities().get(i);
        if (!instance.getStatus().equals(Activity.STATUS_RUNNING)) {
          if (currChild instanceof ComplexActivity) {
            while (currChild instanceof ComplexActivity) {
              currChild = (Activity) ((ComplexActivity) currChild).getChildActivities().get(0);
            }
          }
        }
        isSelected = !(currChild.getStatus(instance).equals(Activity.STATUS_READY));
      }
     
      String probability = "";
      if(options.containsKey("probability")){
        Long[] occurrenceAndTotal = ProbabilityInstrumentationFilter.getOccurrenceAndTotal(switchActivity, i);
       
        if(occurrenceAndTotal!=null){
          long occurrence=occurrenceAndTotal[0].longValue();
          long total=occurrenceAndTotal[1].longValue();
          probability = " ("+(occurrence*100 / total) + " %)";
        }else
          probability = " (No data)";
      }
     
      return
          (isSelected ? "<font color='black'><b>":"")
        + ((SwitchActivity)activity).getConditions()[i].getDescription().getText(locale)
        + probability
        + (isSelected ? "</b></font>":"");
    }catch(Exception e){
      return "condition" + i;
    }
  }

  public String getHeader(Activity activity, ProcessInstance instance, Map options){
    //String imagePathRoot = DefaultActivityViewer.getImagePathRoot(activity, instance, options);
   
    return super.getHeader(activity, instance, options);//"<img src="+imagePathRoot +"images/SwitchActivity.gif>";
  }   
 
  @Override
  public StringBuilder render(Activity activity, ProcessInstance instance, Map options) {
    // Lee YongHong made "showRanPathOnly" option
    if ( options.containsKey("showRanPathOnly") ) {
      try {
        ComplexActivity cActivity = (ComplexActivity) activity;
        String statusOfThecActivity = cActivity.getStatus(instance);
       
        if ( statusOfThecActivity.equals(Activity.STATUS_READY)) {
          return super.render(activity, instance, options);
        } else {
          for ( Enumeration enumeration = cActivity.getChildActivities().elements() ; enumeration.hasMoreElements() ; ) {
            Activity child = (Activity) enumeration.nextElement();
            String statusOfTheChild = child.getStatus(instance);
            ActivityViewer aViewer = (ActivityViewer)UEngineUtil.getComponentByEscalation(child.getClass(), "viewer");
            if ( statusOfTheChild.equals(Activity.STATUS_FAULT) ) {             
              return aViewer.render(child, instance, options);
            }
            if ( !statusOfTheChild.equals(Activity.STATUS_READY) && !statusOfTheChild.equals(Activity.STATUS_RUNNING) && !statusOfTheChild.equals(activity.STATUS_COMPLETED) ) {
              return new StringBuilder();
            } else if ( statusOfTheChild.equals(Activity.STATUS_RUNNING) || statusOfTheChild.equals(activity.STATUS_COMPLETED) ) {
              return aViewer.render(child, instance, options);
            }
          }
        }
       
      } catch( Exception e ) {
        e.printStackTrace();
      }     
    }
    return super.render(activity, instance, options);
  }
}
TOP

Related Classes of org.uengine.kernel.viewer.SwitchActivityViewer

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.