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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? workflowmarqueehandler.java

?? osworkflow修改版本
?? JAVA
字號:
package com.opensymphony.workflow.designer;import java.awt.*;import java.awt.geom.Rectangle2D;import java.awt.geom.Point2D;import java.awt.event.MouseEvent;import javax.swing.*;import org.jgraph.graph.BasicMarqueeHandler;import org.jgraph.graph.PortView;import org.jgraph.graph.GraphConstants;/** * @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 = getSourcePortAt(e.getPoint());    // If Port Found and in ConnectMode (=Ports Visible)    if(port != null && graph.isPortsVisible())      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();      // 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);    }  }  public PortView getSourcePortAt(Point point)  {    // Scale from Screen to Model    Point2D tmp = graph.fromScreen(new Point(point));    // Find a Port View in Model Coordinates and Remember    return graph.getPortViewAt(tmp.getX(), tmp.getY());  }  // Find a Cell at point and Return its first Port as a PortView  protected PortView getTargetPortAt(Point point)  {    // Find Cell at point (No scaling needed here)    Object cell = graph.getFirstCellForLocation(point.x, point.y);    // Loop Children to find PortView    for(int i = 0; i < graph.getModel().getChildCount(cell); i++)    {      // Get Child from Model      Object tmp = graph.getModel().getChild(cell, i);      // Get View for Child using the Graph's View as a Cell Mapper      tmp = graph.getGraphLayoutCache().getMapping(tmp, false);      // If Child View is a Port View and not equal to First Port      if(tmp instanceof PortView && tmp != firstPort)      // Return as PortView        return (PortView)tmp;    }    // No Port View found    return getSourcePortAt(point);  }  // 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);          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 = getTargetPortAt(e.getPoint());      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      WorkflowCell source = (WorkflowCell)((WorkflowPort)firstPort.getCell()).getParent();      WorkflowCell target = (WorkflowCell)((WorkflowPort)port.getCell()).getParent();      //      System.out.println("connect " + source + "->" + target);      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    if(e != null && getSourcePortAt(e.getPoint()) != null && !e.isConsumed())    {      // Set Cusor on Graph (Automatically Reset)      graph.setCursor(new Cursor(Cursor.HAND_CURSOR));      // Consume Event      e.consume();    }    // Call Superclass    super.mouseReleased(e);  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久岛一牛影视 | 国产精品网曝门| 亚洲一区中文日韩| 韩日精品视频一区| 欧美日韩国产片| 国产精品夫妻自拍| 精品亚洲aⅴ乱码一区二区三区| 91社区在线播放| 久久欧美中文字幕| 全部av―极品视觉盛宴亚洲| 91亚洲精品乱码久久久久久蜜桃| 精品国产乱码久久久久久久久 | 欧美在线观看一区| 国产精品国产自产拍高清av王其| 免费人成黄页网站在线一区二区| 91在线你懂得| 国产精品你懂的| 国产成人在线色| 精品国产髙清在线看国产毛片| 午夜国产不卡在线观看视频| 色噜噜狠狠成人中文综合| 亚洲国产成人私人影院tom| 激情伊人五月天久久综合| 555夜色666亚洲国产免| 亚洲综合丝袜美腿| 色94色欧美sute亚洲线路二| 国产精品福利av| 高清久久久久久| 国产亚洲精品aa| 国产成人精品午夜视频免费| 久久影音资源网| 精品写真视频在线观看| 久久久不卡网国产精品二区 | 国产欧美日韩精品在线| 国产一区二区三区不卡在线观看 | 精品久久久久久久久久久久久久久久久| 亚洲午夜在线视频| 欧美视频完全免费看| 亚洲最大成人网4388xx| 欧美日韩午夜在线视频| 轻轻草成人在线| 精品国产3级a| 成人免费视频app| 亚洲欧美激情一区二区| 91色porny蝌蚪| 亚洲第一搞黄网站| 日韩一卡二卡三卡四卡| 国产一区二区主播在线| 欧美激情一区在线| 色中色一区二区| 亚洲午夜精品久久久久久久久| 欧美美女一区二区在线观看| 青草av.久久免费一区| 精品日韩一区二区三区免费视频| 精品综合免费视频观看| 国产精品剧情在线亚洲| 色婷婷亚洲婷婷| 蜜桃精品在线观看| 日韩一区欧美一区| 欧美丰满嫩嫩电影| 国产大陆亚洲精品国产| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美久久久| 成人午夜免费视频| 午夜视频在线观看一区| 久久久久久久久伊人| 色婷婷综合五月| 韩国理伦片一区二区三区在线播放| 中文字幕中文乱码欧美一区二区| 欧美嫩在线观看| av午夜精品一区二区三区| 午夜精品久久久久| 亚洲国产精品二十页| 欧美日韩一本到| 97久久超碰国产精品| 美女视频黄 久久| 亚洲乱码国产乱码精品精98午夜| 欧美tickling挠脚心丨vk| 91免费视频大全| 国产乱码字幕精品高清av| 亚洲一区国产视频| 国产精品久久久久久久午夜片| 欧美一级免费观看| 一本高清dvd不卡在线观看| 国产精品77777| 青青国产91久久久久久| 亚洲你懂的在线视频| 久久久亚洲高清| 日韩一级黄色片| 欧美亚洲综合在线| 99久久精品国产观看| 国产在线精品视频| 蜜桃传媒麻豆第一区在线观看| 亚洲一区二区高清| 亚洲色图视频网| 国产喷白浆一区二区三区| 精品久久人人做人人爰| 欧美狂野另类xxxxoooo| 在线日韩一区二区| 91福利视频网站| 色天使久久综合网天天| 97久久久精品综合88久久| 成人在线视频一区| 国产成a人亚洲精品| 精品一区二区三区久久| 久久精品99久久久| 久88久久88久久久| 麻豆成人免费电影| 六月丁香婷婷色狠狠久久| 五月激情六月综合| 日韩精品一级二级| 男女激情视频一区| 免费一级片91| 国产综合久久久久久鬼色| 激情av综合网| 国产成人在线视频网站| 国产91丝袜在线18| 成人动漫一区二区在线| www.日韩av| 色天使色偷偷av一区二区| 91精品福利在线| 欧美高清视频在线高清观看mv色露露十八| 欧美色大人视频| 欧美一级夜夜爽| 久久久影院官网| 亚洲欧美视频在线观看视频| 亚洲免费观看高清在线观看| 一区二区三区国产豹纹内裤在线| 亚洲午夜成aⅴ人片| 日韩成人午夜精品| 国产一区二区三区免费播放| 国产一区二区视频在线播放| 国产不卡高清在线观看视频| 不卡的看片网站| 在线观看日韩av先锋影音电影院| 欧美日韩精品专区| 精品国产人成亚洲区| 国产精品美女久久久久久久| 一区二区三区高清在线| 日韩不卡免费视频| 成人自拍视频在线| 欧美午夜在线观看| 日韩欧美在线影院| 国产精品久久久久影院| 亚洲夂夂婷婷色拍ww47 | 亚洲成a人在线观看| 麻豆国产精品777777在线| 国产一区二区三区在线观看免费| 91丨porny丨国产入口| 欧美精品 日韩| 中文字幕色av一区二区三区| 亚洲电影你懂得| 国产剧情一区二区三区| 在线亚洲精品福利网址导航| 日韩亚洲国产中文字幕欧美| 国产精品成人午夜| 美女尤物国产一区| 91黄色小视频| 久久久久久久久99精品| 亚洲成在人线免费| 成人app下载| 日韩一本二本av| 亚洲夂夂婷婷色拍ww47| 成人一级视频在线观看| 91精品国产乱码| 亚洲人成人一区二区在线观看| 捆绑调教美女网站视频一区| 色偷偷久久一区二区三区| 久久综合精品国产一区二区三区| 一区二区三区精品视频| 成人一区在线观看| 精品福利av导航| 天天av天天翘天天综合网色鬼国产 | 国产欧美日本一区视频| 亚洲成va人在线观看| 91丨porny丨户外露出| 久久九九99视频| 青青国产91久久久久久 | 免费看日韩a级影片| 91官网在线免费观看| 中文字幕亚洲不卡| 国产99久久久久| 国产三级精品视频| 国产河南妇女毛片精品久久久| 欧美一级片在线| 日本少妇一区二区| 69久久夜色精品国产69蝌蚪网| 亚洲欧美一区二区三区久本道91| 国产成人精品网址| 中日韩av电影| 国产福利一区二区三区视频在线 | 亚洲人成精品久久久久久| 粉嫩在线一区二区三区视频| 精品国精品国产尤物美女| 美女性感视频久久| 久久综合色鬼综合色| 久久精品国产亚洲一区二区三区| 3d成人h动漫网站入口| 日韩经典一区二区| 欧美一三区三区四区免费在线看|