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

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

?? workflowgraph.java

?? 一個很好實用的工作流OSWORKFLOW開發例子.有著非常優秀的靈活性.
?? JAVA
字號:
package com.opensymphony.workflow.designer;import java.awt.*;import java.awt.geom.Rectangle2D;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.dnd.*;import java.util.List;import java.util.Properties;import javax.swing.*;import com.opensymphony.workflow.designer.actions.*;import com.opensymphony.workflow.designer.dnd.DragData;import com.opensymphony.workflow.designer.layout.LayoutAlgorithm;import com.opensymphony.workflow.designer.layout.SugiyamaLayoutAlgorithm;import com.opensymphony.workflow.loader.*;import org.jgraph.JGraph;import org.jgraph.graph.*;public class WorkflowGraph extends JGraph implements DropTargetListener{  private Layout layout = new Layout();  private Point menuLocation = new Point();  private WorkflowDescriptor descriptor;  private JPopupMenu genericMenu;  private JPopupMenu edgeMenu;  private JPopupMenu cellMenu;  private UndoManager undoManager = new UndoManager();  private static final Color GRID_COLOR = new Color(240, 240, 240);  public WorkflowGraph(GraphModel model, WorkflowDescriptor descriptor, Layout layout, boolean doAutoLayout)  {    super(model);    getGraphLayoutCache().setFactory(new WorkflowCellViewFactory());    getGraphLayoutCache().setSelectsAllInsertedCells(false);    ToolTipManager.sharedInstance().registerComponent(this);    this.layout = layout;    setDescriptor(descriptor);    if(doAutoLayout)    {      autoLayout();    }    setGridEnabled(true);    setSizeable(true);    setGridColor(GRID_COLOR);    setGridSize(12);    //setTolerance(2);    setGridVisible(true);    setGridMode(JGraph.LINE_GRID_MODE);    setBendable(true);    setMarqueeHandler(new WorkflowMarqueeHandler(this));    setCloneable(false);    setPortsVisible(true);    // one set of menu <==> one graph <==> one workflow descriptor    genericMenu = new JPopupMenu();    JMenu n = new JMenu(ResourceManager.getString("create.new"));    genericMenu.add(n);    n.add(new CreateStep(descriptor, getWorkflowGraphModel(), menuLocation));    //	n.add(new CreateInitialAction(descriptor, getWorkflowGraphModel(), menuLocation));    n.add(new CreateJoin(descriptor, getWorkflowGraphModel(), menuLocation));    n.add(new CreateSplit(descriptor, getWorkflowGraphModel(), menuLocation));    JMenu g = new JMenu(ResourceManager.getString("grid.size"));    genericMenu.add(g);    g.add(new SetGridSize(this, menuLocation, 1));    g.add(new SetGridSize(this, menuLocation, 2));    g.add(new SetGridSize(this, menuLocation, 4));    g.add(new SetGridSize(this, menuLocation, 8));    g.add(new SetGridSize(this, menuLocation, 12));    g.add(new SetGridSize(this, menuLocation, 16));    cellMenu = new JPopupMenu();    cellMenu.add(new Delete(descriptor, this, menuLocation));    edgeMenu = new JPopupMenu();    n = new JMenu(ResourceManager.getString("edge.color"));    edgeMenu.add(n);    n.add(new ResultEdgeColor(this, menuLocation, Color.black, ResourceManager.getString("edge.color.black")));    n.add(new ResultEdgeColor(this, menuLocation, Color.LIGHT_GRAY, ResourceManager.getString("edge.color.gray")));    n.add(new ResultEdgeColor(this, menuLocation, Color.red, ResourceManager.getString("edge.color.red")));    n.add(new ResultEdgeColor(this, menuLocation, Color.ORANGE, ResourceManager.getString("edge.color.orange")));    n.add(new ResultEdgeColor(this, menuLocation, new Color(0, 200, 0), ResourceManager.getString("edge.color.green")));    n.add(new ResultEdgeColor(this, menuLocation, Color.MAGENTA, ResourceManager.getString("edge.color.magenta")));    n.add(new ResultEdgeColor(this, menuLocation, Color.blue, ResourceManager.getString("edge.color.blue")));    n = new JMenu(ResourceManager.getString("edge.width"));    edgeMenu.add(n);    for(int i = 1; i <= 5; i++)    {      n.add(new ResultEdgeLineWidth(this, menuLocation, i));    }    edgeMenu.add(new Delete(descriptor, this, menuLocation));    model.addUndoableEditListener(undoManager);    new DropTarget(this, this);  }  public String convertValueToString(Object value)  {    if(value == null) return null;    if(value instanceof EdgeView)    {      return ((EdgeView)value).getCell().toString();    }    else    {      return value.toString();    }  }	public WorkflowDescriptor getDescriptor()	{		return descriptor;	}  public void setDescriptor(WorkflowDescriptor descriptor)  {    if(descriptor != null)    {      this.descriptor = descriptor;      List initialActionList = descriptor.getInitialActions();      addInitialActions(initialActionList);      List stepsList = descriptor.getSteps();      for(int i = 0; i < stepsList.size(); i++)      {        StepDescriptor step = (StepDescriptor)stepsList.get(i);        addStepDescriptor(step);      }      List splitsList = descriptor.getSplits();      for(int i = 0; i < splitsList.size(); i++)      {        SplitDescriptor split = (SplitDescriptor)splitsList.get(i);        addSplitDescriptor(split);      }      List joinsList = descriptor.getJoins();      for(int i = 0; i < joinsList.size(); i++)      {        JoinDescriptor join = (JoinDescriptor)joinsList.get(i);        addJoinDescriptor(join);      }      getWorkflowGraphModel().insertResultConnections();    }  }  public Layout getGraphLayout()  {    return layout;  }  public void autoLayout()  {    if(descriptor.getSteps().size() > 0)    {      LayoutAlgorithm algo = new SugiyamaLayoutAlgorithm();      Properties p = new Properties();      p.put(SugiyamaLayoutAlgorithm.KEY_HORIZONTAL_SPACING, "110");      p.put(SugiyamaLayoutAlgorithm.KEY_VERTICAL_SPACING, "70");      algo.perform(this, true, p);    }  }  public void addInitialActions(List initialActionList)  {    InitialActionCell initialActionCell = new InitialActionCell(ResourceManager.getString("action.initial.step"));    // Create Vertex Attributes    if(layout != null)    {      double[] bounds = layout.getBounds(initialActionCell.getId(), "InitialActionCell");      if(bounds != null)      {        Rectangle2D rect = new Rectangle();        rect.setRect(bounds[0], bounds[1], bounds[2], bounds[3]);        initialActionCell.getAttributes().put(GraphConstants.BOUNDS, rect);      }      if(initialActionCell.getChildCount() == 0)      {        WorkflowPort port = new WorkflowPort();        initialActionCell.add(port);      }    }    else    {      WorkflowPort port = new WorkflowPort();      initialActionCell.add(port);    }    getWorkflowGraphModel().insertInitialActions(initialActionList, initialActionCell, null, null, null);  }  public void addJoinDescriptor(JoinDescriptor descriptor)  {    JoinCell join = new JoinCell(descriptor);    // Create Vertex Attributes    if(layout != null)    {      double[] bounds = layout.getBounds(join.getId(), "JoinCell");      if(bounds != null)      {        Rectangle2D rect = new Rectangle();        rect.setRect(bounds[0], bounds[1], bounds[2], bounds[3]);        join.getAttributes().put(GraphConstants.BOUNDS, rect);      }      if(join.getChildCount() == 0)      {        WorkflowPort port = new WorkflowPort();        join.add(port);      }    }    else    {      WorkflowPort port = new WorkflowPort();      join.add(port);    }    getWorkflowGraphModel().insertJoinCell(join, null, null, null);  }  public void addSplitDescriptor(SplitDescriptor descriptor)  {    SplitCell split = new SplitCell(descriptor);    if(layout != null)    {      double[] bounds = layout.getBounds(split.getId(), "SplitCell");      if(bounds != null)      {        Rectangle2D rect = new Rectangle();        rect.setRect(bounds[0], bounds[1], bounds[2], bounds[3]);        split.getAttributes().put(GraphConstants.BOUNDS, rect);      }      if(split.getChildCount() == 0)      {        WorkflowPort port = new WorkflowPort();        split.add(port);      }    }    else    {      WorkflowPort port = new WorkflowPort();      split.add(port);    }    getWorkflowGraphModel().insertSplitCell(split, null, null, null);  }  public void addStepDescriptor(StepDescriptor descriptor)  {    StepCell step = CellFactory.createStep((WorkflowDescriptor)descriptor.getParent(), descriptor, getWorkflowGraphModel(), null);    if(layout != null)    {      double[] bounds = layout.getBounds(step.getId(), "StepCell");      if(bounds != null)      {        Rectangle2D rect = new Rectangle();        rect.setRect(bounds[0], bounds[1], bounds[2], bounds[3]);        step.getAttributes().put(GraphConstants.BOUNDS, rect);      }    }    // Insert into Model   // getWorkflowGraphModel().insertStepCell(step, null, null, null);  }  public WorkflowGraphModel getWorkflowGraphModel()  {    return (WorkflowGraphModel)getModel();  }  public void showMenu(int x, int y)  {    menuLocation.x = x;    menuLocation.y = y;    genericMenu.show(this, x, y);  }  public void showDelete(int x, int y)  {    menuLocation.x = x;    menuLocation.y = y;    cellMenu.show(this, x, y);  }  public void showEdgeMenu(int x, int y)  {    menuLocation.x = x;    menuLocation.y = y;    edgeMenu.show(this, x, y);  }  public boolean removeEdge(ResultEdge edge)  {    return getWorkflowGraphModel().removeEdge(edge);  }  public boolean removeStep(StepCell step)  {    getWorkflowGraphModel().removeStep(step);    return true;  }  public boolean removeJoin(JoinCell join)  {    return getWorkflowGraphModel().removeJoin(join);  }  public boolean removeSplit(SplitCell split)  {    return getWorkflowGraphModel().removeSplit(split);  }  public void dragEnter(DropTargetDragEvent dtde)  {  }  public void dragOver(DropTargetDragEvent dtde)  {  }  public void dropActionChanged(DropTargetDragEvent dtde)  {  }  public void drop(DropTargetDropEvent dtde)  {    try    {      //Ok, get the dropped object and try to figure out what it is.      Transferable tr = dtde.getTransferable();      DataFlavor[] flavors = tr.getTransferDataFlavors();      for(int i = 0; i < flavors.length; i++)      {        if(flavors[i].isFlavorSerializedObjectType())        {          if(flavors[i].equals(DragData.WORKFLOW_FLAVOR))          {            dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);            DragData o = (DragData)tr.getTransferData(flavors[i]);            dtde.dropComplete(true);            CellFactory.createCell(this.descriptor, this.getWorkflowGraphModel(), dtde.getLocation(), o);            return;          }        }      }      dtde.rejectDrop();    }    catch(Exception e)    {      e.printStackTrace();      dtde.rejectDrop();    }  }  public void dragExit(DropTargetEvent dte)  {  }  public UndoManager getUndoManager()  {    return undoManager;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品77777| 日日骚欧美日韩| 国产伦精一区二区三区| 久久人人爽爽爽人久久久| 久久er精品视频| 国产精品国产三级国产有无不卡 | 91精品国产综合久久久久久久久久| 亚洲成人精品影院| 久久久精品tv| 国产日韩亚洲欧美综合| 欧美日韩亚州综合| 激情国产一区二区| 亚洲精品乱码久久久久久久久| 7777女厕盗摄久久久| 777色狠狠一区二区三区| 91精品国产综合久久精品app | 欧美一区二区三区在线电影| 欧美日韩精品免费观看视频 | 亚洲日本护士毛茸茸| 日韩一级免费观看| 99精品久久只有精品| 性做久久久久久免费观看欧美| 亚洲一区二区精品久久av| 国产亚洲制服色| 91精品国产麻豆国产自产在线 | 91老师片黄在线观看| 九九热在线视频观看这里只有精品| 中文字幕一区二区在线观看 | eeuss影院一区二区三区| 日韩中文字幕一区二区三区| 青青草成人在线观看| 夜夜嗨av一区二区三区网页| 国产精品护士白丝一区av| 亚洲一区二区三区三| 九九九精品视频| 91女厕偷拍女厕偷拍高清| 91麻豆精品国产91久久久| 久久精品无码一区二区三区| 一区二区三区日韩欧美精品| 男人操女人的视频在线观看欧美| 国产精品18久久久久| 蜜桃久久av一区| 免费成人在线视频观看| 不卡视频免费播放| 国产ts人妖一区二区| 成人性视频网站| 高清成人免费视频| 欧美美女喷水视频| 91精品国产黑色紧身裤美女| 国产精品色在线观看| 亚洲国产经典视频| 国产精品久久免费看| 人人爽香蕉精品| 日本韩国欧美在线| 51久久夜色精品国产麻豆| 国产精品久久久久久久久免费樱桃| 日欧美一区二区| 欧美性高清videossexo| 日韩欧美不卡在线观看视频| 国产亚洲成年网址在线观看| 亚洲福利视频导航| 久久99精品久久久久久| 欧美日韩极品在线观看一区| 亚洲少妇屁股交4| 丁香激情综合五月| 国产情人综合久久777777| 蜜桃视频免费观看一区| 欧美日韩一区二区三区在线看| 国产精品夫妻自拍| 波多野结衣精品在线| 国产欧美一区二区三区在线老狼 | 国产精品12区| 精品电影一区二区| 自拍偷在线精品自拍偷无码专区| 狠狠色丁香婷婷综合| 欧美成人三级在线| 有码一区二区三区| 色婷婷av一区二区三区之一色屋| 欧美欧美午夜aⅴ在线观看| 一区二区久久久| 欧美在线观看视频一区二区 | 午夜久久久久久久久久一区二区| 久久国产生活片100| 91精品国产品国语在线不卡| 日韩精品一级二级| 日韩免费在线观看| 国产一区二区三区免费在线观看| 26uuu国产在线精品一区二区| 亚洲色大成网站www久久九九| 不卡在线观看av| 亚洲人123区| 国产一区二区不卡| 日本一区二区不卡视频| 99re视频精品| 偷拍一区二区三区| 精品国产乱码久久久久久蜜臀| 国内久久精品视频| 亚洲婷婷综合色高清在线| 欧美日韩国产高清一区二区 | 亚洲情趣在线观看| 欧美综合在线视频| 久久精品国产亚洲aⅴ| 久久久91精品国产一区二区精品| 国产一区不卡在线| 亚洲乱码国产乱码精品精的特点| 91久久人澡人人添人人爽欧美| 日日夜夜一区二区| 久久久久国产成人精品亚洲午夜| 99国产精品99久久久久久| 性感美女极品91精品| 久久久亚洲午夜电影| 91日韩精品一区| 麻豆91精品视频| 国产精品第一页第二页第三页| 色婷婷精品大视频在线蜜桃视频| 美女性感视频久久| 亚洲欧美在线另类| 日韩午夜激情视频| 91在线观看污| 看片网站欧美日韩| 亚洲精选一二三| 久久综合精品国产一区二区三区 | 国产精品免费免费| 欧美丰满高潮xxxx喷水动漫| 成人在线视频首页| 免费观看成人av| 亚洲一区中文日韩| 中文字幕不卡在线观看| 日韩一级片在线播放| 在线亚洲一区二区| 国产99精品国产| 精品一区二区三区影院在线午夜| 亚洲男人的天堂网| 国产亚洲短视频| 久久中文字幕电影| 日韩三级免费观看| 欧美日韩第一区日日骚| 97超碰欧美中文字幕| 国产一区二区三区不卡在线观看 | 日韩一区二区三区视频在线观看| 色综合久久久久综合体| 粉嫩av一区二区三区在线播放| 免费不卡在线视频| 五月天视频一区| 亚洲一区二区三区四区在线观看 | 国产精品视频看| 久久精品一区二区三区不卡 | 久久国产精品99久久久久久老狼| 亚洲一区在线观看免费观看电影高清 | 欧美国产日产图区| 欧美变态tickle挠乳网站| 337p亚洲精品色噜噜| 欧美日韩三级一区| 欧美日韩一区不卡| 欧美色图天堂网| 欧美性三三影院| 欧美剧情片在线观看| 欧美日韩不卡一区二区| 正在播放亚洲一区| 8x8x8国产精品| 欧美va在线播放| 久久蜜桃一区二区| 国产精品午夜春色av| 国产日韩欧美精品综合| 国产精品视频第一区| 亚洲免费成人av| 亚洲精品欧美专区| 五月综合激情婷婷六月色窝| 亚洲香肠在线观看| 亚洲国产成人91porn| 美女尤物国产一区| 国产成人精品一区二| 91一区一区三区| 欧美揉bbbbb揉bbbbb| 日韩欧美色综合网站| 久久精品水蜜桃av综合天堂| 国产精品成人网| 夜夜亚洲天天久久| 精品制服美女久久| 成人久久久精品乱码一区二区三区| 95精品视频在线| 欧美日韩在线播| 亚洲精品在线三区| 亚洲人妖av一区二区| 日韩中文欧美在线| 高清国产午夜精品久久久久久| 91香蕉视频污在线| 91精品国产综合久久久久| 中文字幕乱码日本亚洲一区二区| 亚洲最大成人网4388xx| 久久成人久久爱| 91小视频在线| 精品久久久久久久久久久久包黑料 | 亚洲成在线观看| 九九精品一区二区| 欧美日韩在线综合| 欧美国产日韩在线观看| 日本成人超碰在线观看| 亚洲一区二区视频| 国产精品99久|