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

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

?? workflow_jgraphgxlcodec.java

?? 用java實現的工作流
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    }
    else { // 為了避免在沒有GIF文件的時候,還原圖的時候循環退出,給出一個空GIF文件
      // 就是DEFAULT的圖片..
      String tab1 = createTab(level + 1);
      int level2 = level + 2;
      String values = tab1 + "<tup>\n" +
          encodeValue("", level2) +
          tab1 + "</tup>\n";

      return encodeAttribute(values, attributeName, level);
    }
  }

  /**
   * Encode a Edge of a graph
   *
   * @param graph Graph containing the edge.
   * @param id Id of the vertex.
   * @param vertex Edge to be encoded.
   * @return Encoded string.
   */
  protected static String encodeEdge(JGraph graph, Object id, Object edge) {
    GraphModel model = graph.getModel();
    String from = "";
    if (model.getSource(edge) != null) {
      Object source = encodeHash.get(model.getParent(model.getSource(edge)));
      if (source != null) {
        from = source.toString();
      }
    }
    String to = "";
    if (model.getTarget(edge) != null) {
      Object target = encodeHash.get(model.getParent(model.getTarget(edge)));
      if (target != null) {
        to = target.toString();
      }
    }
    if (from != null && to != null) {
      int level = 2;
      Map attributes = ( (GraphCell) edge).getAttributes();
      String label = graph.convertValueToString(edge);
      return "\n\t<edge id=\"edge"
          + id.toString()
          + "\""
          + " from=\""
          + from
          + "\""
          + " to=\""
          + to
          + "\">\n"
          + encodeString(label, "Label", 2)
          +
          encodeInteger(GraphConstants.getLineEnd(attributes), "LineEnd", level)
          +
          encodeColor(GraphConstants.getForeground(attributes), "Foreground",
                      level)
          + encodeFont(GraphConstants.getFont(attributes), "Font", level)
          +
          encodeInteger(GraphConstants.getLineStyle(attributes), "LineStyle",
                        level)
          +
          encodeColor(GraphConstants.getLineColor(attributes), "LineColor",
                      level)
          + "\n\t</edge>";
    }
    else {
      return "";
    }
  }

  /**
   * Extracts visual properties of the node from the child 'view' element
   * Currently recognized properties:
   * - Bounds
   * - color
   * - background-color
   * - autosize
   * - Font
   * - Line-End, Line-size, Line-color
   */
  protected static void decodeCell(Node gnode, Map gnode_attrs) {
    NodeList gnode_children = gnode.getChildNodes();
    for (int gnode_child_i = 0; gnode_child_i < gnode_children.getLength();
         gnode_child_i++) {
      Node gnode_child = gnode_children.item(gnode_child_i);
      if (gnode_child.getNodeName().equals("attr")) {
        String name = ( (Element) gnode_child).getAttribute("name");
        LinkedList values = new LinkedList();
        // Retreaving all the values in the node
        readGXLAttributeValues(gnode_child, values);
        if ( (name != null) && (values.size() > 0)) {
          if (name.equals("Bounds")) {
            if (values.size() == 4) {
              Point p = new Point(Integer.parseInt( (String) values.get(0)),
                                  Integer.parseInt( (String) values.get(1)));
              Dimension d = new Dimension(Integer.parseInt( (String) values.get(
                  2)),
                                          Integer.parseInt( (String) values.get(
                  3)));
              Rectangle2D bounds = new Rectangle(p, d);
              GraphConstants.setBounds(gnode_attrs, bounds);
            }
          }
          else if (name.equals("Font")) {
            if (values.size() == 3) {
              Font font = new Font( (String) values.get(0),
                                   Integer.parseInt( (String) values.get(1)),
                                   Integer.parseInt( (String) values.get(2)));
              GraphConstants.setFont(gnode_attrs, font);
            }
          }
          else if (name.equals("Foreground")) {
            try {
              Color color = new Color(Integer.parseInt( (String) values.get(0)),
                                      Integer.parseInt( (String) values.get(1)),
                                      Integer.parseInt( (String) values.get(2)));
              GraphConstants.setForeground(gnode_attrs, color);
            }
            catch (Exception nfe) {
            }
          }
          else if (name.equals("BorderColor")) {
            try {
              Color color = new Color(Integer.parseInt( (String) values.get(0)),
                                      Integer.parseInt( (String) values.get(1)),
                                      Integer.parseInt( (String) values.get(2)));
              GraphConstants.setBorderColor(gnode_attrs, color);
            }
            catch (Exception nfe) {
            }
          }
          else if (name.equals("LineColor")) {
            try {
              Color color = new Color(Integer.parseInt( (String) values.get(0)),
                                      Integer.parseInt( (String) values.get(1)),
                                      Integer.parseInt( (String) values.get(2)));
              GraphConstants.setLineColor(gnode_attrs, color);
            }
            catch (Exception nfe) {
            }
          }
          else if (name.equals("Background")) {
            try {
              Color color = new Color(Integer.parseInt( (String) values.get(0)),
                                      Integer.parseInt( (String) values.get(1)),
                                      Integer.parseInt( (String) values.get(2)));
              GraphConstants.setBackground(gnode_attrs, color);
            }
            catch (Exception nfe) {
            }
          }
          else if (name.equals("LineColor")) {
            try {
              Color color = new Color(Integer.parseInt( (String) values.get(0)),
                                      Integer.parseInt( (String) values.get(1)),
                                      Integer.parseInt( (String) values.get(2)));
              GraphConstants.setLineColor(gnode_attrs, color);
            }
            catch (Exception nfe) {
            }
          }
          else if (name.equals("LineEnd")) {
            try {
              GraphConstants.setLineEnd(gnode_attrs,
                                        Integer.parseInt( (String) values.get(0)));
            }
            catch (Exception e) {}
          }
          else if (name.equals("LineStyle")) {
            try {
              GraphConstants.setLineStyle(gnode_attrs,
                                          Integer.parseInt( (String) values.get(
                  0)));
            }
            catch (Exception e) {}
          }
          else if (name.equals("AutoSize")) {
            GraphConstants.setAutoSize(gnode_attrs,
                                       "true".equals( (String) values.get(0)));
          }
        }
      }
    }
  }

  /**
   * Reads the values of an GXL Attribute.
   *
   * @param enode Node to read.
   * @param linkedList List to populate : with 2 dimension String arrys.
   *                              return[0] : type of value
   *                              return[1] : value
   */
  protected static void readGXLAttributeValues(Node enode, LinkedList values) {
    // read Child Elements
    NodeList child_list = enode.getChildNodes();
    for (int j = 0; j < child_list.getLength(); j++) {
      Node currentNode = child_list.item(j);
      String nodeName = currentNode.getNodeName();
      if (nodeName.equals("tup") ||
          nodeName.equals("set") ||
          nodeName.equals("enum") ||
          nodeName.equals("seq") ||
          nodeName.equals("bag")) {
        readGXLAttributeValues(currentNode, values);
      }
      else if (nodeName.equals("int") ||
               nodeName.equals("bool") ||
               nodeName.equals("float") ||
               nodeName.equals("string") ||
               nodeName.equals("locator")) {
        try {
          values.add(currentNode.getFirstChild().getNodeValue());
        }
        catch (DOMException e) {}
      }
    }
  }

  /**
   * Decodes a Edge.
   *
   * @param enode XML Node.
   * @param enode_attrs Cell Attributes.
   */
  protected static void decodeEdge(Node enode, Map enode_attrs) {
    decodeCell(enode, enode_attrs);
  }

  /**
   * Decodes a GXL File.
   *
   * @param inputStream Stream to be decoded.
   * @param graph Graph where the decode file is inserted.
   */
  public static void decode(InputStream inputStream,
                            JGraph graph) throws Exception {
    String defaultLayout = null;
    GraphModel model = graph.getModel();
    // Create a DocumentBuilderFactory
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    // Create a DocumentBuilder
    DocumentBuilder db = dbf.newDocumentBuilder();
    // Parse the input file to get a Document object
    Document doc = db.parse(inputStream);
    // Get the first child (the graph-element)
    // List for the new Cells
    List newCells = new ArrayList();
    // ConnectionSet for the Insert method
    ConnectionSet cs = new ConnectionSet();
    // Hashtable for the ID lookup (ID to Vertex)
    decodeHash = new Hashtable();
    // Hashtable for Attributes (Vertex to Map)
    Hashtable attributes = new Hashtable();

    Element gxl = (Element) doc.getDocumentElement(); // First gxl element

    NodeList graph_list = gxl.getChildNodes();
    if (graph_list.getLength() == 0) {
      return;
    }
    for (int graph_index = 0; graph_index < graph_list.getLength(); graph_index++) {
      Node graph_node = graph_list.item(graph_index);
      if (graph_node.getNodeName().equals("graph")) {
        Element graph_elem = (Element) graph_node;
        NodeList list = graph_elem.getChildNodes();
        boolean defaultDirected = "directed".equals(graph_elem.getAttribute(
            "edgemode")) ||
            "defaultdirected".equals(graph_elem.getAttribute("edgemode"));
        // End of Opheamro

        // Get Graph's Child Nodes (the cells)


        // Loop Children
        for (int i = 0; i < list.getLength(); i++) {
          Node node = list.item(i);
          // Fetch Label
          String label = getLabel(node);
          // If Valid Node
          if (node.getAttributes() != null && node.getNodeName() != null) {
            // Fetch Type
            String type = node.getNodeName().toString().toLowerCase();

            // Create Vertex
            if (type.equals("node")) {
              // Fetch ID Node
              String id = null;
              Node tmp = node.getAttributes().getNamedItem("id");
              // Fetch ID Value
              if (tmp != null) {
                id = tmp.getNodeValue();
                // Need unique valid ID
              }
              if (id != null && !decodeHash.keySet().contains(id)) {
                // Create Vertex with label
                DefaultGraphCell vertex = new DefaultGraphCell(label);
                // Add One Floating Port
                vertex.add(new DefaultPort());
                // Add ID, Vertex pair to Hashtable
                decodeHash.put(id, vertex);
                // Add Default Attributes
                Map node_attrs = new Hashtable(); //createDefaultAttributes(new Hashtable());
                decodeCell(node, node_attrs);
                attributes.put(vertex, node_attrs);
                // Add Vertex to new Cells
                newCells.add(vertex);
              }

              // Create Edge
            }
            else if (type.equals("edge")) {
              Element edge_node = (Element) node;
              // Fetch Source ID Node
              Node tmp = node.getAttributes().getNamedItem("from");
              // Fetch Source ID Value
              String source = null;
              if (tmp != null) {
                source = tmp.getNodeValue();
                // Fetch Target ID Node
              }
              tmp = node.getAttributes().getNamedItem("to");
              // Fetch Target ID Value
              String target = null;
              if (tmp != null) {
                target = tmp.getNodeValue();
                // Create Edge with label
              }
              DefaultEdge edge = new DefaultEdge(label);
              // Find Source Port
              if (source != null) {
                // Fetch Vertex for Source ID
                DefaultGraphCell vertex =
                    (DefaultGraphCell) decodeHash.get(source);
                if (vertex != null) {

                  // Connect to Source Port
                  cs.connect(edge, vertex.getChildAt(0), true);
                }
              }
              // Find Target Port
              if (target != null) {
                // Fetch Vertex for Target ID
                DefaultGraphCell vertex =
                    (DefaultGraphCell) decodeHash.get(target);
                if (vertex != null) {

                  // Connect to Target Port
                  cs.connect(edge, vertex.getChildAt(0), false);
                }
              }

              boolean edge_directed = ("true".equals(edge_node.getAttribute(
                  "isdirected")) || defaultDirected)
                  && ! ("false".equals(edge_node.getAttribute("isdirected")));
              Map map = new Hashtable();
              if (edge_directed) {
                GraphConstants.setLineEnd(map, GraphConstants.ARROW_CLASSIC);
                GraphConstants.setEndFill(map, true);
              }
              decodeEdge(edge_node, map);
              attributes.put(edge, map);

              // Add Edge to new Cells
              newCells.add(edge);
            }
            else if (type.equals("view")) { // Graph view attributes
              // Currently defined: defaultlayout
              defaultLayout = ( (Element) node).getAttribute("defaultlayout");
            }
          }
        }
      }
    }
    // Insert the cells (View stores attributes)
    model.insert(newCells.toArray(), attributes, cs, null, null);
  }

  /**
   * Returns an attributeMap for the specified position and color.
   */
  protected static Map createDefaultAttributes(Map map) {
    // Set a Black Line Border (the Border-Attribute must be Null!)
    GraphConstants.setBorderColor(map, Color.black);
    // Return the Map
    return map;
  }

  // Fetch Cell Label from Node
  protected static String getLabel(Node node) {
    String lab = null;
    NodeList children = node.getChildNodes();
    for (int j = 0; j < children.getLength(); j++) {
      Node attr = children.item(j);
      if (attr.getNodeName().equals("attr")
          && attr.getAttributes().getNamedItem("name").getNodeValue().equals(
          "Label")) {
        NodeList values = attr.getChildNodes();
        for (int k = 0; k < values.getLength(); k++) {
          if (values.item(k).getNodeName().equals("string")) {
            Node labelNode = values.item(k).getFirstChild();
            if (labelNode != null) {
              lab = labelNode.getNodeValue();
            }
          }
        }
      }
    }
    return (lab != null) ? lab : new String("");
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电视剧在线观看完整版| 一本到不卡精品视频在线观看| 亚洲欧洲av另类| 久久久激情视频| 91麻豆精品91久久久久久清纯 | 国产精品乡下勾搭老头1| 国产激情偷乱视频一区二区三区 | 国产成人精品www牛牛影视| 蜜桃91丨九色丨蝌蚪91桃色| 日本女优在线视频一区二区| 蜜桃一区二区三区在线观看| 国产一区二区三区黄视频| 国产河南妇女毛片精品久久久| 成人av在线播放网址| 精品日韩在线观看| 国产欧美日产一区| 国产精品美女久久久久久久久| 亚洲欧洲精品一区二区精品久久久 | 最新不卡av在线| 久久99精品久久久久婷婷| 国产 日韩 欧美大片| 欧美日本在线一区| 一区二区成人在线观看| 国产精品99久久久久久似苏梦涵| 欧美高清性hdvideosex| 亚洲精品成人精品456| 国产成人av福利| 欧洲日韩一区二区三区| 欧美激情中文字幕| 91丨九色丨黑人外教| 日韩午夜在线观看| 午夜私人影院久久久久| 欧美在线免费视屏| 国产精品白丝在线| 99国产精品久久久久久久久久久| 国产精品久久久久一区二区三区 | 一区二区三区精品视频| 99久久免费国产| 亚洲.国产.中文慕字在线| 欧美私模裸体表演在线观看| 亚洲va韩国va欧美va| 日韩亚洲欧美高清| 成人av在线看| 日韩精品福利网| 国产精品三级久久久久三级| av一二三不卡影片| 免费视频最近日韩| 亚洲人成小说网站色在线| 色拍拍在线精品视频8848| 亚洲高清免费视频| 精品国产sm最大网站免费看| 久久精品99久久久| 综合久久一区二区三区| 宅男噜噜噜66一区二区66| 韩国午夜理伦三级不卡影院| 国产日韩精品一区二区三区在线| 91在线看国产| 国产精品一区2区| 麻豆精品久久精品色综合| 亚洲精品亚洲人成人网| 国产精品天美传媒| 日韩欧美自拍偷拍| 欧美一区二区三区成人| 欧美制服丝袜第一页| 99久久99久久精品免费观看| 激情欧美日韩一区二区| 日本特黄久久久高潮| 日日夜夜精品免费视频| 亚洲一区在线观看免费| 国产精品三级av| 亚洲乱码日产精品bd| 亚洲色欲色欲www| 亚洲高清免费视频| 日本不卡一区二区| 极品尤物av久久免费看| 成人在线视频首页| 北条麻妃一区二区三区| 91精彩视频在线| 欧美日韩高清一区二区| 91精品在线观看入口| 欧美日韩精品三区| 精品国产乱子伦一区| www激情久久| 亚洲婷婷综合久久一本伊一区| 综合中文字幕亚洲| 国产麻豆精品在线观看| 国产99一区视频免费| 精品婷婷伊人一区三区三| 日韩一区二区在线观看视频| 国产精品久久久久久久浪潮网站 | 亚洲一区二区影院| 国产一区亚洲一区| 91精品久久久久久久99蜜桃| 欧美激情一区二区三区不卡 | 国产黄色精品视频| 欧美精品在线视频| 亚洲精品成人少妇| 丁香桃色午夜亚洲一区二区三区| 欧美中文一区二区三区| 日本一区二区动态图| 国产精品1区2区| 久久久久亚洲综合| 国产真实精品久久二三区| 欧美日韩免费一区二区三区视频 | 91麻豆精品国产91久久久久| 国产精品白丝在线| 成人污视频在线观看| 国产欧美精品一区aⅴ影院| 日韩和欧美一区二区| 欧美日韩另类一区| 手机精品视频在线观看| 欧美久久一二区| 日韩电影免费在线| 日韩小视频在线观看专区| 美腿丝袜亚洲三区| 国产日韩综合av| caoporm超碰国产精品| 国产精品青草久久| 成人av影院在线| 亚洲午夜久久久久久久久电影网 | 26uuu国产一区二区三区| 99久久久久久| 三级在线观看一区二区| 国产精品丝袜一区| 91麻豆精品国产91久久久资源速度 | 自拍偷在线精品自拍偷无码专区| heyzo一本久久综合| 日本强好片久久久久久aaa| 欧美国产精品专区| 久久精品免视看| 欧美久久久久免费| 在线观看国产日韩| 成人免费观看av| 国产成人自拍网| 精品一区二区三区日韩| 奇米一区二区三区av| 亚洲欧美国产高清| 一区二区在线观看免费| 亚洲色图丝袜美腿| 亚洲视频免费看| 亚洲综合色在线| 日韩高清在线不卡| 日韩精品福利网| 狠狠色丁香婷婷综合久久片| 全国精品久久少妇| 美国毛片一区二区| 国产精品原创巨作av| 91美女在线看| 亚洲国产婷婷综合在线精品| 一区二区三区日韩欧美精品| 国产精品色哟哟| 国产精品久久久久精k8| 亚洲一区二区三区在线看| 亚洲一区二区三区四区在线观看| 国产精品久久久久影视| 亚洲女人的天堂| 欧美aaaaa成人免费观看视频| 经典一区二区三区| 91香蕉视频mp4| 精品三级在线观看| 一区二区三区四区蜜桃| 久久国产婷婷国产香蕉| 成人黄色在线看| 日韩欧美一区电影| 一级中文字幕一区二区| 国产一区二区三区av电影| 91丨九色porny丨蝌蚪| wwwwww.欧美系列| 亚洲综合视频网| 99国产精品久| 中文欧美字幕免费| 久久99精品国产麻豆婷婷| 欧美吞精做爰啪啪高潮| 国产精品毛片a∨一区二区三区| 男男成人高潮片免费网站| 日本道色综合久久| 一二三四社区欧美黄| 91亚洲永久精品| 国产精品久久二区二区| 成人免费视频一区| 久久精品人人做| 风间由美一区二区av101| 91精品国产美女浴室洗澡无遮挡| 亚洲高清久久久| 制服丝袜亚洲精品中文字幕| 亚洲欧美偷拍另类a∨色屁股| 国产激情一区二区三区四区| 国产日产欧美一区二区三区| 狠狠色丁香久久婷婷综合_中 | 精品国产乱码久久久久久老虎| 丝袜亚洲另类欧美| 久久综合九色欧美综合狠狠| 蜜乳av一区二区| 综合色天天鬼久久鬼色| 91社区在线播放| 亚洲一区视频在线观看视频| 欧美老肥妇做.爰bbww| 日韩精品电影一区亚洲| 欧美一级久久久| 91免费视频网|