亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? workflowmarqueehandler.java

?? Java編譯osworkflow工作流系統的安裝和源代碼
?? JAVA
字號:
package com.opensymphony.workflow.designer;import java.awt.*;import java.awt.event.MouseEvent;import java.awt.geom.Point2D;import java.awt.geom.Rectangle2D;import javax.swing.*;import org.jgraph.graph.BasicMarqueeHandler;import org.jgraph.graph.PortView;/** * @author Hani Suleiman (hani@formicary.net) Date: Oct 25 2003 Time: 6:56:10 PM */public class WorkflowMarqueeHandler extends BasicMarqueeHandler{  // Holds the Start and the Current Point  protected Point2D start, current;  // Holds the First and the Current Port  protected PortView port, firstPort;  private WorkflowGraph graph;  //  protected boolean readyToConnect = false;  public WorkflowMarqueeHandler(WorkflowGraph graph)  {    this.graph = graph;  }  // Override to Gain Control (for PopupMenu and ConnectMode)  public boolean isForceMarqueeEvent(MouseEvent e)  {    // If Right Mouse Button we want to Display the PopupMenu    if(SwingUtilities.isRightMouseButton(e) || e.isPopupTrigger())    // Return Immediately      return true;    // Find and Remember Port    port = graph.getPortViewAt(e.getX(), e.getY());    // If Port Found and in ConnectMode (=Ports Visible)    if(port != null && graph.isPortsVisible())    {      WorkflowPort workflowPort = (WorkflowPort)port.getCell();      //int edgeCount = workflowPort.getEdgeCount();      //if we have any edges on this port, then assume we're trying to move the edge, rather      //than create a new one      if(workflowPort.getIndex() == 0)      {        return true;      }    }    // Else Call Superclass    return super.isForceMarqueeEvent(e);  }  // Use Xor-Mode on Graphics to Paint Connector  protected void paintConnector(Color fg, Color bg, Graphics g)  {    // Set Foreground    g.setColor(fg);    // Set Xor-Mode Color    g.setXORMode(bg);    // Highlight the Current Port    paintPort(graph.getGraphics());    // If Valid First Port, Start and Current Point    if(firstPort != null && start != null && current != null)    // Then Draw A Line From Start to Current Point      g.drawLine((int)start.getX(), (int)start.getY(), (int)current.getX(), (int)current.getY());  }  // Use the Preview Flag to Draw a Highlighted Port  protected void paintPort(Graphics g)  {    // If Current Port is Valid    if(port != null)    {      // If Not Floating Port...      //boolean isFloating = (GraphConstants.getOffset(port.getAttributes()) != null);      // ...Then use Parent's Bounds      //Rectangle2D r = isFloating ? port.getBounds() : port.getParentView().getBounds();      Rectangle2D r = port.getBounds();      // Scale from Model to Screen      r = graph.toScreen(r);      // Add Space For the Highlight Border      Rectangle2D growRect = new Rectangle2D.Double(r.getX() - 3, r.getY() - 3, r.getWidth() + 6, r.getHeight() + 6);      //r.setFrame(r.getX() - 3, r.getY() - 3, r.getWidth() + 6, r.getHeight() + 6);      // Paint Port in Preview (=Highlight) Mode      graph.getUI().paintCell(g, port, growRect, true);    }  }  // Display PopupMenu or Remember Start Location and First Port  public void mousePressed(final MouseEvent e)  {    // If Right Mouse Button    if(SwingUtilities.isRightMouseButton(e) || e.isPopupTrigger())    //    if(e.isPopupTrigger())    {      // Scale From Screen to Model      //Point loc = fromScreen(e.getPoint());      // Find Cell in Model Coordinates      Object cell = graph.getFirstCellForLocation(e.getX(), e.getY());      // Create PopupMenu for the Cell      if(cell == null)      {        graph.showMenu(e.getX(), e.getY());      }      else      {        if(!(cell instanceof InitialActionCell))        {          //      		System.out.println(cell);          if(cell instanceof WorkflowEdge)          {            graph.showEdgeMenu(e.getX(), e.getY());          }          else          {            graph.showDelete(e.getX(), e.getY());          }        }      }      // Else if in ConnectMode and Remembered Port is Valid    }    else if(port != null && !e.isConsumed() && graph.isPortsVisible())    {      // Remember Start Location      start = graph.toScreen(port.getLocation(null));      // Remember First Port      firstPort = port;      // Consume Event      e.consume();      readyToConnect = false;    }    else    // Call Superclass      super.mousePressed(e);  }  // Find Port under Mouse and Repaint Connector  public void mouseDragged(MouseEvent e)  {    // If remembered Start Point is Valid    if(start != null && !e.isConsumed())    {      // ready to connect      readyToConnect = true;      // Fetch Graphics from Graph      Graphics g = graph.getGraphics();      // Xor-Paint the old Connector (Hide old Connector)      paintConnector(Color.black, graph.getBackground(), g);      // Reset Remembered Port      PortView newPort = graph.getPortViewAt(e.getX(), e.getY());      if(port != newPort && port != null)      {        paintPort(g);      }      port = newPort;      // If Port was found then Point to Port Location      if(port != null)        current = graph.toScreen(port.getLocation(null));      // Else If no Port was found then Point to Mouse Location      else        current = graph.snap(e.getPoint());      // Xor-Paint the new Connector      paintConnector(graph.getBackground(), Color.black, g);      // Consume Event      e.consume();    }    // Call Superclass    super.mouseDragged(e);  }  // Connect the First Port and the Current Port in the Graph or Repaint  public void mouseReleased(MouseEvent e)  {    // If Valid Event, Current and First Port    // first connect first is OK    if(e != null && !e.isConsumed() && port != null && firstPort != null && readyToConnect)    {      readyToConnect = false;      // Then Establish Connection      WorkflowPort sourcePort = (WorkflowPort)firstPort.getCell();      WorkflowCell source = (WorkflowCell)sourcePort.getParent();      WorkflowPort targetPort = (WorkflowPort)port.getCell();      WorkflowCell target = (WorkflowCell)targetPort.getParent();      source.setSelectedPort(source.getIndex(sourcePort));      target.setSelectedPort(target.getIndex(targetPort));      ConnectHelper.connect(source, target, (WorkflowGraphModel)graph.getModel());      //		System.out.println("connectable "+ ConnectHelper.connect(source, target, (WorkflowGraphModel)graph.getModel()));      //				connect((Port) firstPort.getCell(), (Port) port.getCell());      // Consume Event      e.consume();    }    graph.repaint();    // Reset Global Vars    firstPort = port = null;    start = current = null;    // Call Superclass    super.mouseReleased(e);  }  // Show Special Cursor if Over Port  public void mouseMoved(MouseEvent e)  {    // Check Mode and Find Port    PortView portView = graph.getPortViewAt(e.getX(), e.getY());    if(portView != null && !e.isConsumed())    {      // Set Cusor on Graph (Automatically Reset)      WorkflowPort workflowPort = (WorkflowPort)portView.getCell();      if(workflowPort.getIndex() == 0)      //      //int edgeCount = workflowPort.getEdgeCount();      //if(edgeCount == 0)      {        graph.setCursor(new Cursor(Cursor.HAND_CURSOR));        e.consume();      }    }    // Call Superclass    super.mouseReleased(e);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品免费网站| 欧美v国产在线一区二区三区| 欧美精品在线视频| 国产日韩精品一区二区三区| 亚洲精品国产成人久久av盗摄| 麻豆国产欧美一区二区三区| 色乱码一区二区三区88| 欧美激情中文字幕| 精品在线播放午夜| 欧美猛男男办公室激情| 综合欧美一区二区三区| 国产麻豆精品视频| 欧美一区二区成人| 石原莉奈在线亚洲三区| 日本精品一级二级| 亚洲天堂精品视频| aaa亚洲精品| 国产精品久久午夜| 成人h动漫精品一区二区| xvideos.蜜桃一区二区| 青草av.久久免费一区| 欧美卡1卡2卡| 蜜桃久久久久久久| 日韩美女在线视频| 天天综合色天天综合色h| 欧美专区亚洲专区| 亚洲成人av电影在线| 在线观看视频欧美| 亚洲成av人综合在线观看| 91无套直看片红桃| 一区二区三区在线高清| 色婷婷综合久久| 一片黄亚洲嫩模| 欧美午夜精品久久久久久孕妇 | 成人在线视频一区二区| 久久精品视频在线看| 国产成人a级片| 国产精品区一区二区三| 91在线视频播放地址| 亚洲日本成人在线观看| 91视频精品在这里| 亚洲一卡二卡三卡四卡| 91精品国产综合久久福利软件| 视频精品一区二区| 久久一区二区三区国产精品| 国产不卡在线视频| 亚洲欧洲日韩av| 在线精品亚洲一区二区不卡| 午夜精品成人在线| 欧美大片顶级少妇| www.成人网.com| 亚洲综合图片区| 精品精品国产高清a毛片牛牛| 国产成人av电影| 亚洲韩国一区二区三区| 欧美一区二区三区在| 国产精品一区二区在线播放| 国产精品网站在线观看| 91在线观看地址| 蜜桃免费网站一区二区三区| 欧美韩国一区二区| 欧美丝袜自拍制服另类| 国产精选一区二区三区| 日韩伦理免费电影| 欧美成人激情免费网| av一区二区久久| 日韩不卡一区二区| 亚洲欧美一区二区三区极速播放| 91精品国产91热久久久做人人| 国产福利一区在线| 偷偷要91色婷婷| 国产精品久久夜| xvideos.蜜桃一区二区| 欧美日韩小视频| 成人的网站免费观看| 麻豆免费看一区二区三区| 中文字幕综合网| 久久久欧美精品sm网站| 欧美日韩精品一区二区三区| 成人一级视频在线观看| 久久国产精品99久久人人澡| 亚洲欧美区自拍先锋| 久久久久97国产精华液好用吗| 欧美亚洲一区二区在线观看| 国产成人综合在线播放| 偷拍日韩校园综合在线| 国产精品不卡在线观看| 久久久国产一区二区三区四区小说 | 琪琪一区二区三区| 中文字幕一区二区三区蜜月| 欧美一区二区三区四区五区 | 国产69精品一区二区亚洲孕妇| 亚洲一区在线视频| 亚洲欧美在线视频| 国产欧美一区二区精品性色超碰| 欧美精品国产精品| 91老司机福利 在线| 成人一区二区三区视频| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品天天摸av网| 91精品国产入口在线| 欧美视频三区在线播放| 色天天综合久久久久综合片| 成人av小说网| av资源站一区| 91在线精品秘密一区二区| 国产精品一二三四区| 国模无码大尺度一区二区三区| 久久国产乱子精品免费女| 日韩中文字幕不卡| 日本视频免费一区| 日韩**一区毛片| 美脚の诱脚舐め脚责91 | 91久久国产综合久久| 99国产一区二区三精品乱码| 99久久免费精品高清特色大片| 波多野结衣中文字幕一区| 成人午夜又粗又硬又大| av网站一区二区三区| 97se亚洲国产综合在线| 91国偷自产一区二区开放时间| 风间由美一区二区三区在线观看| 国产精品一区二区免费不卡| 国产精品一区在线观看乱码| 国产成人在线观看| av在线不卡免费看| 色噜噜夜夜夜综合网| 欧美撒尿777hd撒尿| 51精品秘密在线观看| 日韩三区在线观看| 久久久久久97三级| **欧美大码日韩| 亚洲大型综合色站| 蜜桃视频免费观看一区| 国产一本一道久久香蕉| 不卡一二三区首页| 色综合天天综合网国产成人综合天| 欧亚一区二区三区| 欧美久久婷婷综合色| 久久综合色8888| 日本一区免费视频| 一区二区三区久久| 麻豆成人av在线| av不卡一区二区三区| 欧美久久一二三四区| 国产偷国产偷精品高清尤物| 亚洲精品福利视频网站| 老色鬼精品视频在线观看播放| 国产大片一区二区| 欧美美女黄视频| 国产欧美日韩亚州综合| 香蕉加勒比综合久久| 国产999精品久久久久久绿帽| 欧美视频一区在线| 国产无遮挡一区二区三区毛片日本| 一区二区三区在线免费视频| 精品一区二区三区免费观看| 91黄色免费观看| 久久精品视频在线看| 一区二区三区鲁丝不卡| 丰满亚洲少妇av| 日韩视频免费观看高清在线视频| 国产精品日韩成人| 黄色成人免费在线| 在线观看视频欧美| 国产精品久久久久一区| 美女视频黄 久久| 欧美三区在线视频| 国产精品美女久久久久高潮| 男人的j进女人的j一区| 99国内精品久久| 国产色综合一区| 青青草视频一区| 欧美精品在线一区二区三区| 亚洲少妇30p| 成人毛片在线观看| 精品国产露脸精彩对白| 亚洲成人久久影院| 在线观看日韩高清av| 国产精品女上位| 国产成人精品亚洲日本在线桃色| 欧美一级国产精品| 热久久久久久久| 欧美日韩一级二级三级| 偷拍日韩校园综合在线| 成人毛片视频在线观看| 国产日韩欧美综合在线| 久久精品72免费观看| 91精品综合久久久久久| 亚洲国产日韩综合久久精品| 91免费看`日韩一区二区| 亚洲天天做日日做天天谢日日欢| 粉嫩av一区二区三区在线播放 | 欧美精品国产精品| 午夜国产精品一区| 欧美午夜精品久久久久久孕妇 | 国产福利精品导航| 久久先锋影音av鲁色资源| 久88久久88久久久| 久久午夜羞羞影院免费观看|