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

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

?? cmsanttaskselectiontreedialog.java

?? cms是開源的框架
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
        StringBuffer ret = new StringBuffer();
        // TODO query the selected paths for all subnodes.
        TreePath[] pathArr = m_tree.getSelectionPaths();
        // avoid NPE but skip loop:
        if (pathArr == null) {
            pathArr = new TreePath[0];
        }
        TreePath path;
        StringBuffer pathString;
        DefaultMutableTreeNode node;

        // pathString is the path string of the selected TreePath from the tree.
        // it may be a leaf (single selection) or not. In the latter case iteration
        // continues to all subnodes to add all reachable leafs as module names.
        // Furthermore every non-leaf-node may be a module name like: org.opencms.workplace and
        // org.opencms.workplace.tools.content...
        for (int i = 0; i < pathArr.length; i++) {
            pathString = new StringBuffer();
            path = pathArr[i];
            // build the path string to the selected path:
            Object[] entries = path.getPath();
            // skip "root"
            for (int j = 1; j < entries.length; j++) {
                pathString.append(entries[j]);
                if (j < entries.length - 1) {
                    pathString.append(".");
                }
            }
            node = (DefaultMutableTreeNode)path.getLastPathComponent();
            if (node.isLeaf()) {
                ret.append(pathString.toString());
                ret.append(CmsAntTaskSelectionTreePrompt.LIST_SEPARATOR);
            } else {
                // first look, wether this is already a module, even if not leaf, (e.g.
                // org.opencms.workplace <-> org.opencms.workplace.tools.accounts...)
                if (m_allModuleList.contains(pathString.toString())) {
                    ret.append(pathString.toString());
                    ret.append(CmsAntTaskSelectionTreePrompt.LIST_SEPARATOR);
                } else {
                    // nop
                }
                // search all leaf nodes and append subpaths:

                ret.append(getSubpaths(node, pathString.toString()));
            }

        }
        dispose();
        if (m_aborted || ret.toString().trim().length() < CmsAntTaskSelectionTreePrompt.LIST_SEPARATOR.length()) {
            return null;
        } else {
            return ret.toString();
        }
    }

    /**
     * Centers the dialog on the screen.
     * <p>
     * 
     * If the size of the dialog exceeds that of the screen, then the size of the dialog is reset to
     * the size of the screen.
     * <p>
     */
    private void center() {

        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension window = getSize();
        // ensure that no parts of the dialog will be off-screen
        int height = window.height;
        int width = window.width;
        if (window.height > screen.height) {
            window.height = screen.height;
            height = screen.height - 50;
            width = width + 50;
        }
        if (window.width > screen.width) {
            window.width = screen.width;
        }
        int xCoord = (screen.width / 2 - window.width / 2);
        int yCoord = (screen.height / 2 - window.height / 2);
        setLocation(xCoord, yCoord);
        setSize(width, height);
    }

    private TreeModel createTree() {

        // for every entry: cut into paths, build a tree path that collates equal paths.
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
        TreeModel tm = new DefaultTreeModel(root);
        Iterator itModules = m_allModuleList.iterator();
        StringTokenizer itPath;
        Enumeration childEnum;
        String pathElement;
        DefaultMutableTreeNode node, child;
        boolean found = false;
        while (itModules.hasNext()) {
            itPath = new StringTokenizer((String)itModules.next(), ".");
            node = root;
            while (itPath.hasMoreTokens()) {
                // is this node already there?
                pathElement = itPath.nextToken();
                childEnum = node.children();
                found = false;
                while (childEnum.hasMoreElements()) {
                    child = (DefaultMutableTreeNode)childEnum.nextElement();
                    if (pathElement.equals(child.getUserObject())) {

                        // found node for path String
                        // reuse old path, descend and continue with next path element.
                        node = child;
                        found = true;
                        break;
                    }
                }
                if (!found) {
                    // did not break, node was not found
                    child = new DefaultMutableTreeNode();
                    child.setUserObject(pathElement);
                    node.add(child);
                    node = child;
                }
            }
        }
        return tm;

    }

    /**
     * Recursive depth first traversal that stops at expansion level and expands those paths.
     * <p>
     * 
     * @param treePath the current path in recursion
     */
    private void expandTree(TreePath treePath) {

        if (treePath.getPathCount() == m_promptTask.getExpansionLevels()) {
            m_tree.expandPath(treePath);

        } else {
            DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)treePath.getLastPathComponent();
            Enumeration children = treeNode.children();
            while (children.hasMoreElements()) {
                expandTree(treePath.pathByAddingChild(children.nextElement()));
            }
        }

    }

    private String getSubpaths(TreeNode node, String parentPath) {

        Enumeration children = node.children();
        TreeNode child;
        String path = parentPath;
        StringBuffer ret = new StringBuffer();
        while (children.hasMoreElements()) {
            child = (TreeNode)children.nextElement();
            if (parentPath.length() == 0) {
                path = child.toString();
            } else {
                path = parentPath + "." + child.toString();
            }
            if (child.isLeaf()) {
                ret.append(path);
                ret.append(CmsAntTaskSelectionTreePrompt.LIST_SEPARATOR);
            } else {
                ret.append(getSubpaths(child, path));
            }
        }
        return ret.toString();
    }

    /**
     * Parses the string of comma separated module names obtained from the ant script into the
     * internal list of module names for better access in several locations.
     * <p>
     * 
     */
    private void parseModuleList() {

        m_allModuleList = new LinkedList();
        StringTokenizer itPaths = new StringTokenizer(
            m_promptTask.getAllValues(),
            CmsAntTaskSelectionPrompt.LIST_SEPARATOR);

        String token;
        while (itPaths.hasMoreElements()) {
            token = itPaths.nextToken().trim();
            m_allModuleList.add(token);
        }
    }

    /**
     * Recursivley selects the nodes that are qualified by the default selections.
     * 
     * @param node the current Node
     */
    private void selectDefaultNodes(DefaultMutableTreeNode node, String path, TreePath treePath) {

        // allow root property to be set:
        String defaultString = m_promptTask.getDefaultValue();
        if ("root".equalsIgnoreCase(defaultString.trim())) {
            if (node == m_tree.getModel().getRoot()) {
                m_tree.setSelectionPath(treePath);
            }
        } else {
            StringTokenizer tokenizer = new StringTokenizer(defaultString, CmsAntTaskSelectionTreePrompt.LIST_SEPARATOR);
            String defaultEntry;
            while (tokenizer.hasMoreTokens()) {
                defaultEntry = tokenizer.nextToken();
                // don't print in recursions for path
                if (node.getLevel() == 0) {
                    System.out.println("Preselection: " + defaultEntry);
                }
                if (defaultEntry.equals(path)) {
                    m_tree.addSelectionPath(treePath);
                    return;
                }
            }
            Enumeration children = node.children();
            DefaultMutableTreeNode subNode;
            String subPath;
            while (children.hasMoreElements()) {
                subPath = path;
                if (subPath.length() != 0) {
                    subPath += ".";
                }
                subNode = (DefaultMutableTreeNode)children.nextElement();
                subPath += subNode.toString();
                selectDefaultNodes(subNode, subPath, treePath.pathByAddingChild(subNode));
            }

        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合资源网| ...av二区三区久久精品| 国产精品久久福利| 蜜桃传媒麻豆第一区在线观看| 国产乱色国产精品免费视频| 欧美日韩免费在线视频| 中文字幕不卡在线观看| 免费xxxx性欧美18vr| 色一区在线观看| 国产片一区二区三区| 蜜桃视频第一区免费观看| 色婷婷久久久亚洲一区二区三区| 国产日韩欧美不卡在线| 全部av―极品视觉盛宴亚洲| 91黄色免费观看| 国产精品久久国产精麻豆99网站| 国产精品自产自拍| 精品免费日韩av| 日韩av电影天堂| 欧美日韩国产一区| 夜夜嗨av一区二区三区四季av| 国产99久久久国产精品潘金网站| 精品国产三级电影在线观看| 日产国产欧美视频一区精品| 欧美日韩中文精品| 亚洲影院久久精品| 91国在线观看| 亚洲午夜精品一区二区三区他趣| 91美女精品福利| 中文字幕在线观看一区| 成人av在线资源网| 国产精品久久久久久久裸模| 国产suv精品一区二区883| 国产亚洲精品资源在线26u| 国产真实精品久久二三区| 久久先锋影音av鲁色资源网| 极品瑜伽女神91| 久久精品视频免费| 成人在线视频一区| 亚洲美女屁股眼交| 在线观看网站黄不卡| 亚洲 欧美综合在线网络| 欧美日本国产一区| 蜜桃av噜噜一区| 国产校园另类小说区| 成人av免费在线观看| 亚洲三级电影网站| 欧美色图12p| 久久99精品一区二区三区| 久久综合国产精品| 不卡电影一区二区三区| 亚洲午夜私人影院| 精品精品欲导航| 成人精品国产福利| 亚洲一区二区精品视频| 91麻豆精品国产综合久久久久久| 蜜桃视频第一区免费观看| 国产视频一区二区在线观看| 色综合色狠狠综合色| 视频在线观看一区| 久久久久久一级片| 日本乱人伦一区| 麻豆成人在线观看| 1000精品久久久久久久久| 欧美日韩国产在线播放网站| 国产精品中文欧美| 艳妇臀荡乳欲伦亚洲一区| 日韩一级大片在线| 91一区二区在线观看| 日韩**一区毛片| 日韩美女精品在线| 久久综合视频网| 欧美午夜不卡视频| 国产传媒久久文化传媒| 亚洲mv在线观看| 国产日韩欧美精品在线| 制服丝袜亚洲精品中文字幕| 国产999精品久久久久久绿帽| 亚洲永久精品国产| 中文字幕一区日韩精品欧美| 欧美一级欧美三级在线观看| 成人激情图片网| 人人爽香蕉精品| 亚洲综合一二三区| 中文字幕精品一区| 精品精品欲导航| 欧美日韩亚洲高清一区二区| 国产成人高清在线| 麻豆国产一区二区| 爽好久久久欧美精品| 亚洲激情第一区| 国产精品女人毛片| 欧美精品一区二区三| 欧美高清视频不卡网| 色综合天天综合网国产成人综合天 | 91碰在线视频| 国产美女娇喘av呻吟久久| 日韩 欧美一区二区三区| 亚洲一区二区三区三| 亚洲精品中文在线观看| 中文字幕电影一区| 欧美国产精品中文字幕| 精品国产露脸精彩对白| 欧美高清视频一二三区| 欧美综合一区二区三区| 97久久超碰国产精品电影| 国产suv精品一区二区三区| 国产精品一区在线观看乱码 | 国产不卡免费视频| 国产一区二区免费在线| 久国产精品韩国三级视频| 蜜臂av日日欢夜夜爽一区| 日韩国产精品久久久久久亚洲| 亚洲一级二级三级在线免费观看| 夜夜嗨av一区二区三区网页| 一区二区三区产品免费精品久久75 | 亚洲综合成人在线视频| 亚洲精品高清在线| 一区二区三区欧美日韩| 亚洲黄色小说网站| 亚洲福利一区二区| 三级不卡在线观看| 裸体在线国模精品偷拍| 国产福利一区二区三区视频在线| 国产一区二区女| 91在线观看高清| 91麻豆精东视频| 欧美日韩免费一区二区三区| 欧美乱妇15p| 欧美电影免费提供在线观看| 精品av综合导航| 国产精品久久久久国产精品日日| 亚洲视频一区二区在线| 亚洲午夜精品在线| 老司机精品视频在线| 国产成人一区在线| 色偷偷久久人人79超碰人人澡| 欧美性生活一区| 精品日韩欧美一区二区| 欧美国产欧美综合| 亚洲第一电影网| 国产一区欧美日韩| 91麻豆高清视频| 91精品久久久久久久91蜜桃| 久久久久国产精品人| 一区二区视频在线| 美女视频黄 久久| 99精品欧美一区| 91精品国产综合久久精品麻豆 | 久久综合色婷婷| 亚洲精品国产成人久久av盗摄 | 亚洲成av人片一区二区三区| 美女视频网站黄色亚洲| a在线欧美一区| 欧美一区二区三区在线看| 亚洲国产精品精华液ab| 午夜精品一区二区三区免费视频| 精品亚洲免费视频| 欧美在线观看一区二区| 久久综合九色综合欧美就去吻| 一区二区三区精品在线| 国产精品一区二区三区四区 | 国产日韩成人精品| 天天操天天综合网| 91免费观看在线| 欧美成va人片在线观看| 亚洲一区在线看| 成人av在线播放网址| 欧美videossexotv100| 亚洲影院在线观看| av电影一区二区| 久久人人97超碰com| 亚洲国产日韩一级| 91美女在线视频| 国产精品每日更新| 国产一区二区三区黄视频| 欧美美女一区二区三区| 亚洲欧美电影院| 成人18精品视频| 国产日韩av一区| 国产综合色视频| 欧美精品一区男女天堂| 麻豆精品国产传媒mv男同| 4438亚洲最大| 午夜不卡av免费| 欧美日韩激情一区| 亚洲国产综合91精品麻豆| 91在线小视频| 国产精品国产自产拍高清av | 国模套图日韩精品一区二区| 69堂精品视频| 天使萌一区二区三区免费观看| 欧美亚洲一区二区在线| 亚洲黄色av一区| 色噜噜久久综合| 亚洲制服丝袜一区| 在线观看视频一区| 亚洲成a人片在线观看中文| 欧美日韩不卡一区二区| 日韩精品免费视频人成|