Package org.uengine.kernel.viewer.svg

Source Code of org.uengine.kernel.viewer.svg.ComplexActivityViewer

package org.uengine.kernel.viewer.svg;

import org.uengine.kernel.Activity;
import org.uengine.kernel.ComplexActivity;
import org.uengine.kernel.ProcessInstance;
import org.uengine.kernel.viewer.ActivityViewer;

import java.util.*;

/**
* @author Jinyoung Jang
*/

public class ComplexActivityViewer implements ActivityViewer{
  static final int separatorWidth = 2;
  static final boolean allBoxing = true;

  public StringBuilder render(Activity activity, ProcessInstance instance, Map options){
   
    StringBuilder sb = new StringBuilder();
   
    String statusColor="#000000";
    if(instance!=null){
      String status = "unresolved";
      try{
        status = instance.getStatus(activity.getTracingTag());
      }catch(Exception e){
        e.printStackTrace();
      }

      statusColor = DefaultActivityViewer.getStatusColor(status);
      if(status.equals(Activity.STATUS_READY))
        statusColor = "#000000";     
    }
       
//    sb.append("<table border=1 cellpadding=0 cellspacing=4><!--td width=2 bgcolor=gray></td--><td>");
    if(allBoxing){
      sb.append("<table border=0 cellpadding=0 cellspacing=3><td style=\"border:1px dotted "+ statusColor +";\">");
    }else{
      sb.append("<table border=0 cellpadding=0 cellspacing=3><td width="+separatorWidth+" bgcolor=" + statusColor + "><img src='' width=2 height=0></td>");   
      sb.append("<td>");
    }   
   
    sb.append("<table border=0 cellpadding=0 cellspacing=0><tr>");
   
    ComplexActivity cActivity = (ComplexActivity)activity;
   
    for(Enumeration enumeration = cActivity.getChildActivities().elements(); enumeration.hasMoreElements(); ){
      sb.append("<td><img src=images/arrow.gif></td><td>");
      Activity child = (Activity)enumeration.nextElement();
     
      ActivityViewer viewer = DefaultActivityViewer.createViewer(child);
      StringBuilder childHTML = viewer.render(child, instance, options);
     
      sb.append(childHTML);
      sb.append("</td>");
    }
   
    //sb.append(activity.getName());
    sb.append("<td><img src=images/arrow.gif></td></tr></table>");
//    sb.append("</td><!--td width=2 bgcolor=gray></td--></table>");
    if(allBoxing){
      sb.append("</td></table>");
    }else{
      sb.append("</td><td width=2 bgcolor="+statusColor+"><img src='' width="+separatorWidth+" height=0></td></table>");
    }
   
    insertHeader(activity, instance, sb, options);
   
    return sb;
  }
 
  public String getHeader(){return "<img src=images/SequenceActivity.gif>";}
 
  public void insertHeader(Activity activity, ProcessInstance instance, StringBuilder sb, Map options){
    StringBuilder headerHtml = new StringBuilder();

    headerHtml.append("<table border=0 cellpadding=0 cellspacing=0><td align=right>");

    if(options.containsKey("flowControl") && instance!=null){
      if(appendFlowController(activity, instance, headerHtml, options))
        headerHtml.append("<br>");
    }

    headerHtml.append(getHeader() + "<br>" + getLabel(activity, instance, options) + "</td><td>");
   
    sb.insert(0, headerHtml);
    sb.append("</td></table>");
  }
 
  public String getLabel(Activity activity, ProcessInstance instance, Map options){
    return activity.getName().getText();
  }
 
  protected boolean appendFlowController(Activity activity, ProcessInstance instance, StringBuilder sb, Map options){
    return DefaultActivityViewer.appendFlowController(activity, instance, sb, options);
  }
}
TOP

Related Classes of org.uengine.kernel.viewer.svg.ComplexActivityViewer

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.