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

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

?? workflowdesigner.java

?? 一個很好實用的工作流OSWORKFLOW開發例子.有著非常優秀的靈活性.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.opensymphony.workflow.designer;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import java.io.InputStream;import java.io.PrintWriter;import java.net.MalformedURLException;import java.net.URL;import java.util.Locale;import java.util.ResourceBundle;import java.util.StringTokenizer;import javax.swing.*;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import com.opensymphony.workflow.FactoryException;import com.opensymphony.workflow.InvalidWorkflowDescriptorException;import com.opensymphony.workflow.config.WorkspaceManager;import com.opensymphony.workflow.designer.dialogs.NewWorkspaceDialog;import com.opensymphony.workflow.designer.editor.*;import com.opensymphony.workflow.designer.swing.*;import com.opensymphony.workflow.designer.swing.status.StatusBar;import com.opensymphony.workflow.loader.*;import org.jgraph.event.*;import org.w3c.dom.Document;import org.w3c.dom.Element;/** * @author Hani Suleiman (hani@formicary.net) Date: May 15, 2003 Time: 8:36:20 PM */public class WorkflowDesigner extends JFrame implements GraphSelectionListener, GraphModelListener{  public static final String WORKSPACE_SUFFIX = ".wsf";  private WorkspaceNavigator navigator;  private WorkspaceManager manager = new WorkspaceManager();  private GraphTabbedPane graphTabs = new GraphTabbedPane();  private DesignerService service = null;  private JSplitPane mainSplitPane;  private EmptyBorderSplitPane leftSplitPane;  private CardPanel detailPanel = new CardPanel();  private FramePanel detailFramePanel;  private Object currentDetailObject = null;  public static WorkflowDesigner INSTANCE = null;  private PaletteDescriptor palette = null;  public StatusBar statusBar;  public WorkflowDesigner(Splash splash)  {    super(ResourceManager.getString("app.name"));    INSTANCE = this;    service = new DesignerService();    setJMenuBar(BarFactory.createMenubar(manager, service.getVerb()));    splash.setProgress(30);    navigator = new WorkspaceNavigator(this);    JScrollPane sp = new JScrollPane(detailPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);    detailFramePanel = new FramePanel(ResourceManager.getString("details"), false);    detailFramePanel.setContent(sp);    splash.setProgress(40);    loadPalette();    splash.setProgress(50);    // create workspace view    FramePanel flowsPanel = new FramePanel(ResourceManager.getString("workspace"), false);    flowsPanel.setContent(new JScrollPane(navigator));    // layout    leftSplitPane = new EmptyBorderSplitPane(JSplitPane.VERTICAL_SPLIT, flowsPanel, detailFramePanel);    mainSplitPane = new EmptyBorderSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftSplitPane, graphTabs);    graphTabs.setVisible(false);    splash.setProgress(60);    //Provide a preferred size for the split pane    String bounds = Prefs.INSTANCE.get(Prefs.DESIGNER_BOUNDS, "100, 100, 800, 600");    StringTokenizer tok = new StringTokenizer(bounds, ",");    int x = Integer.parseInt(tok.nextToken().trim());    int y = Integer.parseInt(tok.nextToken().trim());    int w = Integer.parseInt(tok.nextToken().trim());    int h = Integer.parseInt(tok.nextToken().trim());    setLocation(x, y);    getContentPane().setLayout(new BorderLayout());    getContentPane().add(BarFactory.createToolbar(), BorderLayout.NORTH);    splash.setProgress(65);    getContentPane().add(mainSplitPane, BorderLayout.CENTER);    statusBar = BarFactory.createStatusBar();    getContentPane().add(statusBar, BorderLayout.SOUTH);    splash.setProgress(70);    mainSplitPane.setPreferredSize(new Dimension(w, h));    addWindowListener(new WindowAdapter()    {      public void windowClosing(WindowEvent evt)      {        quit();      }    });    if("new".equals(service.getVerb()))    {      newRemoteWorkspace();    }    else if("modify".equals(service.getVerb()))    {      newRemoteWorkspace();      openRemoteWorkspace();    }    else    {      String lastOpened = Prefs.INSTANCE.get(Prefs.LAST_WORKSPACE, null);      if(lastOpened != null)      {        try        {          if(lastOpened.indexOf(":/") == -1)          {            openWorkspace(new File(lastOpened).toURL());          }          else          {            openWorkspace(new URL(lastOpened));          }        }        catch(MalformedURLException e)        {          e.printStackTrace();        }        String workflow = Prefs.INSTANCE.get(Prefs.WORKFLOW_CURRENT, null);        if(workflow != null)        {          navigator.selectWorkflow(workflow);        }      }    }    mainSplitPane.setDividerLocation(Prefs.INSTANCE.getInt(Prefs.MAIN_DIVIDER_LOCATION, 150));    leftSplitPane.setDividerLocation(Prefs.INSTANCE.getInt(Prefs.DETAIL_DIVIDER_LOCATION, 50));  }  public void graphChanged(GraphModelEvent e)  {    if(detailPanel.getVisibleCard() == null)    {      return;    }    AbstractDescriptor desc = ((DetailPanel)detailPanel.getVisibleCard()).getDescriptor();    showDetails(desc);    //DefaultGraphCell  relationsCell = relationshipsNavigator.getCell();    //Object[] cells = e.getChange().getChanged();    //System.out.println("changed = " + java.util.Arrays.asList(cells));    //for(int i = 0; i < cells.length; i++)    //{    //  if(cells[i] instanceof WorkflowCell)    //  {    //    if(cells[i] == detailCell)    //    {    //      showDetails(desc);    //    }    //  }    //  else if(cells[i] instanceof WorkflowEdge)    //  {    //    if(cells[i] == detailEdge)    //    {    //      showDetails(desc);    //    }    //  }    //  if(cells[i] instanceof DefaultGraphCell)    //  {    //    //showRelationships(relationsCell);    //  }    //}  }  public WorkflowGraph getCurrentGraph()  {    return graphTabs.getCurrentGraph();  }  /**   * Delete a workflow from config   */   public void deleteWorkflow(String workflowName) throws FactoryException  {    graphTabs.removeGraph(workflowName);    navigator.removeWorkflow(workflowName);    manager.getCurrentWorkspace().removeWorkflow(workflowName);  }  /**   * Delete a workflow from config   */  public void closeWorkflow(String workflowName) throws FactoryException  {    graphTabs.removeGraph(workflowName);    navigator.removeWorkflow(workflowName);    manager.getCurrentWorkspace().removeWorkflow(workflowName);  }  public void validateCurrentWorkflow()  {    WorkflowGraph graph = graphTabs.getCurrentGraph();    if(graph != null)    {      validateWorkflow(graph.getName());    }  }  public void validateSaveCurrentWorkflow()  {    WorkflowGraph graph = graphTabs.getCurrentGraph();    if(graph != null)    {      save(graph, true);    }  }  public void validateWorkflow(String workflowName)  {    WorkflowGraph graph = graphTabs.getGraph(workflowName);    if(graph != null)    {      workflowName = graph.getName();      WorkflowDescriptor d = graph.getDescriptor();      if(d != null)      {        try        {          d.validate();        }        catch(InvalidWorkflowDescriptorException e)        {          System.out.println("Error validating workflow: " + e);          JOptionPane.showMessageDialog(this,                                        ResourceManager.getString("error.validate.workflow", new Object[]{e.getMessage()}),                                        ResourceManager.getString("title.validate.workflow", new Object[]{workflowName}),                                        JOptionPane.ERROR_MESSAGE);          return;        }        JOptionPane.showMessageDialog(this,                                      ResourceManager.getString("success.validate.workflow"),                                      ResourceManager.getString("title.validate.workflow", new Object[]{workflowName}),                                      JOptionPane.INFORMATION_MESSAGE);      }    }  }  public void closeCurrentWorkflow()  {    WorkflowGraph graph = graphTabs.getCurrentGraph();    if(graph != null)    {      graphTabs.removeGraph(graph);    }    //graphTabs.removeGraph(graphTabs.getCurrentGraph());  }  public void createGraph(String workflowName)  {    //Workspace currentWorkspace = manager.getCurrentWorkspace();    WorkflowFactory currentWorkspace = manager.getCurrentWorkspace();    Layout layout = (Layout)currentWorkspace.getLayout(workflowName);    WorkflowGraphModel model = new WorkflowGraphModel(layout);    model.setPalette(palette);    model.addGraphModelListener(this);    boolean hasLayout = layout != null;    if(layout == null) layout = new Layout();    WorkflowDescriptor descriptor;    try    {      descriptor = currentWorkspace.getWorkflow(workflowName, false);    }    catch(FactoryException e)    {      e.printStackTrace();      return;    }    WorkflowGraph graph = new WorkflowGraph(model, descriptor, layout, !hasLayout);    graph.addGraphSelectionListener(this);    //graph.setName(workflowName);    if(descriptor != null)      graph.setName(descriptor.getName());    else      graph.setName(workflowName);    graphTabs.addGraph(graph);    graphTabs.setVisible(true);  }  public void quit()  {    Point location = getLocation();    Prefs.INSTANCE.putInt(Prefs.MAIN_DIVIDER_LOCATION, mainSplitPane.getDividerLocation());    Prefs.INSTANCE.putInt(Prefs.DETAIL_DIVIDER_LOCATION, leftSplitPane.getDividerLocation());    Prefs.INSTANCE.put(Prefs.DESIGNER_BOUNDS, location.x + "," + location.y + ',' + mainSplitPane.getWidth() + ',' + mainSplitPane.getHeight());    try    {      Prefs.INSTANCE.flush();    }    catch(Exception e)    {      e.printStackTrace();    }    System.exit(0);  }  public void renameWorkflow(String oldName, String newName)  {    graphTabs.renameGraph(oldName, newName);    manager.getCurrentWorkspace().renameWorkflow(oldName, newName);  }  public void valueChanged(GraphSelectionEvent e)  {    Object lastAdded = null;    for(int i = e.getCells().length - 1; i >= 0; i--)    {      if(e.isAddedCell(i))      {        lastAdded = e.getCells()[i];        break;      }    }    if(lastAdded instanceof WorkflowCell || lastAdded instanceof WorkflowEdge)    {      AbstractDescriptor desc = getCellDescriptor(lastAdded);      showDetails(desc);      navigator.selectTreeNode(graphTabs.getCurrentGraph().getDescriptor(), desc);    }  }  public void showSelectedCellDetails()  {    WorkflowGraph graph = graphTabs.getCurrentGraph();    if(graph != null)    {      Object cell = graph.getSelectionModel().getSelectionCell();      if(cell != null)      {        if(cell instanceof WorkflowCell || cell instanceof WorkflowEdge)        {          AbstractDescriptor desc = getCellDescriptor(cell);          showDetails(desc);          navigator.selectTreeNode(graphTabs.getCurrentGraph().getDescriptor(), desc);        }      }    }  }  public void refreshUI()  {    if(currentDetailObject != null)    {      showDetails(currentDetailObject);    }  }  public void showDetails(Object node)  {    if(node == null) return;    String title = getDescriptorTitle(node);    AbstractDescriptor descriptor = null;    currentDetailObject = node;    String panelName = node.getClass().getName();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色免费版| 亚洲第一综合色| 亚洲成人午夜电影| 东方欧美亚洲色图在线| 欧美一区二区三区视频在线| 最近日韩中文字幕| 国产激情精品久久久第一区二区| 91黄色免费版| 亚洲日本电影在线| 成人午夜av在线| 久久久一区二区三区捆绑**| 首页亚洲欧美制服丝腿| 欧美亚洲自拍偷拍| 亚洲图片你懂的| av在线这里只有精品| 日本一区二区视频在线| 精一区二区三区| 欧美成人福利视频| 麻豆国产精品777777在线| 欧美日韩专区在线| 亚洲一区二区三区爽爽爽爽爽| 不卡av在线网| 中文字幕日韩欧美一区二区三区| 国产经典欧美精品| 久久先锋资源网| 国产精品主播直播| 26uuu欧美| 国产盗摄视频一区二区三区| 久久久午夜精品理论片中文字幕| 久久99国产精品免费网站| 久久只精品国产| 懂色av一区二区三区免费观看| 久久精品视频在线看| 暴力调教一区二区三区| 亚洲视频每日更新| 精品视频一区二区三区免费| 日韩黄色免费电影| 欧美成人精品福利| 欧美视频在线观看一区| 亚洲欧美在线视频观看| 亚洲精品亚洲人成人网| 色综合天天视频在线观看 | 欧美激情一二三区| 国产成人免费9x9x人网站视频| xvideos.蜜桃一区二区| 成人午夜私人影院| 一区二区三区在线免费观看 | 日日噜噜夜夜狠狠视频欧美人 | 欧美日高清视频| 青草国产精品久久久久久| 日韩精品中文字幕一区二区三区 | 中文字幕电影一区| 色综合中文字幕国产 | 日韩电影在线一区二区三区| 欧美成人精品3d动漫h| 国产91精品一区二区| 成人欧美一区二区三区| 欧美日韩中文一区| 国产一区二区三区不卡在线观看| 国产精品欧美一区喷水| 欧美日韩你懂的| 国产精品系列在线观看| 一区二区三国产精华液| 91精品国产综合久久福利软件| 狠狠色丁香久久婷婷综| 亚洲欧美另类综合偷拍| 欧美一级午夜免费电影| 成人激情免费电影网址| 午夜精品久久久久久久| 久久亚洲精品小早川怜子| 日本福利一区二区| 久久99精品久久久| 亚洲免费在线播放| 久久这里都是精品| 欧美日韩在线直播| 高清视频一区二区| 蜜臀国产一区二区三区在线播放| 亚洲欧洲国产日本综合| 91精品国产免费久久综合| 成人精品视频.| 久久精品99国产精品| 亚洲综合无码一区二区| 亚洲国产高清不卡| 日韩精品一区二区在线观看| 欧美三级资源在线| 不卡的看片网站| 国产成人综合网| 另类专区欧美蜜桃臀第一页| 亚洲国产综合人成综合网站| 国产日本欧洲亚洲| 亚洲精品一区二区三区在线观看 | 欧美另类高清zo欧美| 91美女片黄在线| 国产精品影视天天线| 奇米精品一区二区三区在线观看 | 国产美女在线观看一区| 日产国产欧美视频一区精品| 亚洲尤物视频在线| 亚洲精品水蜜桃| 国产精品家庭影院| 中文字幕不卡的av| 国产夜色精品一区二区av| 精品国产成人在线影院| 欧美一区二区三区在线看| 正在播放亚洲一区| 欧美夫妻性生活| 91.xcao| 欧美日韩国产经典色站一区二区三区 | 欧美一区二区日韩| 69堂精品视频| 91精品国产91久久综合桃花| 91超碰这里只有精品国产| 在线成人午夜影院| 欧美一区二区视频免费观看| 91精品国产色综合久久ai换脸| 欧美电影一区二区| 欧美一区二区三区四区久久| 日韩视频不卡中文| 久久久久久久久久久久久久久99| 久久精品在线免费观看| 国产日韩精品一区二区三区| 国产亚洲精品免费| 亚洲视频资源在线| 亚洲国产日韩a在线播放性色| 一区二区三区欧美亚洲| 天堂资源在线中文精品| 日韩国产一二三区| 久99久精品视频免费观看| 麻豆精品视频在线观看视频| 韩国视频一区二区| 成人h精品动漫一区二区三区| 97se狠狠狠综合亚洲狠狠| 色婷婷av一区二区三区大白胸| 欧美在线免费观看亚洲| 日韩视频在线一区二区| 精品88久久久久88久久久| 国产女同性恋一区二区| 有坂深雪av一区二区精品| 青青草成人在线观看| 国产精品911| 欧美日韩一区久久| 久久只精品国产| 亚洲影视在线播放| 国产综合色视频| 色综合久久中文综合久久牛| 欧美高清激情brazzers| 欧美激情综合五月色丁香| 亚洲国产日产av| 国产麻豆精品theporn| 欧美在线看片a免费观看| 欧美变态tickling挠脚心| 国产精品久久久久久久久果冻传媒 | 一区二区三区成人| 极品少妇xxxx精品少妇| 97se亚洲国产综合自在线观| 日韩欧美一区二区视频| 中文字幕一区日韩精品欧美| 另类小说一区二区三区| 97精品国产露脸对白| 亚洲精品一区二区三区蜜桃下载 | proumb性欧美在线观看| 欧美精品乱码久久久久久 | 国产午夜亚洲精品理论片色戒| 亚洲一二三四区不卡| 国产a精品视频| 欧美va亚洲va| 亚洲成av人影院在线观看网| 丁香六月综合激情| 精品国产一区二区三区久久久蜜月| 樱花草国产18久久久久| 国产成人99久久亚洲综合精品| 欧美一级片在线| 亚洲高清三级视频| 色综合久久中文综合久久牛| 中文字幕欧美激情| 经典一区二区三区| 日韩一区二区三区视频在线 | 亚洲综合图片区| 99久久精品免费看| 久久精品男人的天堂| 久久精品国产**网站演员| 欧美久久久久久久久中文字幕| 一区二区三区欧美亚洲| 91免费在线视频观看| 中文字幕二三区不卡| 国产在线看一区| 精品91自产拍在线观看一区| 美日韩黄色大片| 日韩欧美不卡在线观看视频| 免费成人av在线| 日韩一级成人av| 日本成人超碰在线观看| 在线成人av影院| 日本美女一区二区三区视频| 欧美日韩激情一区| 日本亚洲最大的色成网站www| 538在线一区二区精品国产| 奇米影视7777精品一区二区| 91精品国产一区二区三区| 伦理电影国产精品|