Package org.uengine.kernel.designer

Source Code of org.uengine.kernel.designer.AtomicHumanActivityDesigner

package org.uengine.kernel.designer;

import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JLabel;

import org.uengine.processdesigner.ActivityDesigner;
import org.uengine.processdesigner.ActivityLabel;
import org.uengine.processdesigner.ArrowLabel;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Stroke;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.geom.GeneralPath;

/**
* @author Jinyoung Jang
*/

public class AtomicHumanActivityDesigner extends SequenceActivityDesigner {

  boolean collapsed = false;
 
  public AtomicHumanActivityDesigner(){
    super();
  }
 
  protected void initialize(){
    super.initialize();
   
    addMouseListener(new MouseAdapter(){

      @Override
      public void mouseClicked(MouseEvent e) {
        if(e.getClickCount()==2){
          toggle();
        }
       
      }
     
    });
   
    toggle();
  }
 
  protected void toggle(){
    for(int i=0; i<getChildDesigners().size(); i++){
      ActivityDesigner designer = (ActivityDesigner) getChildDesigners().get(i);
      if(!(designer instanceof HumanActivityDesigner)){
       
        collapsed = designer.getComponent().isVisible();

        designer.getComponent().setVisible(!collapsed);
        designer.getComponent().getParent().setVisible(!collapsed);
       
      }
    }
  }
 
  public void paint(Graphics g) {
    super.paint(g);
   
    Graphics2D g2d = (Graphics2D) g;
    g2d.setColor(new Color(150, 150, 150));
   
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    g2d.setColor(new Color(150, 150, 150));
    Stroke stroke = new BasicStroke(1.5f);
    stroke = new BasicStroke(1.3f,0,0,4.0f,null,0.0f);
    g2d.setStroke(stroke);
   
   
    //outer border
    g2d.drawRoundRect(0, 0, getWidth()-1, getHeight()-1, 8,8);

    int rectSize = 8;
    int halfRectSize = rectSize/2;
    int innerCrossGap = 2;
    int half = ArrowLabel.DEFAULT_WIDTH / 2;
    int posY = getHeight()*2 / 3 + halfRectSize;
   
    g2d.setColor(Color.BLACK);

    //collapse button
    GeneralPath path = new GeneralPath();   

    if(collapsed){
      path.moveTo(half, posY-halfRectSize+innerCrossGap);
      path.lineTo(half, posY+halfRectSize-innerCrossGap);
//      path.moveTo(getWidth()-halfRectSize-half, posY-halfRectSize+innerCrossGap);
//      path.lineTo(getWidth()-halfRectSize-half, posY+halfRectSize-innerCrossGap);
    }
   
    path.moveTo(half-halfRectSize+innerCrossGap, posY);
    path.lineTo(half+halfRectSize-innerCrossGap, posY);
//    path.moveTo(getWidth()-half+innerCrossGap, posY);
//    path.lineTo(getWidth()-rectSize-half-innerCrossGap, posY);
 
    g2d.draw(path);
   
    g2d.drawRoundRect(half-halfRectSize, posY-halfRectSize, rectSize, rectSize, 2,2);
//    g2d.drawRoundRect(getWidth()-rectSize-half, posY-halfRectSize, rectSize, rectSize, 2,2);

  }
 

}
TOP

Related Classes of org.uengine.kernel.designer.AtomicHumanActivityDesigner

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.