⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdfframe.java.old

📁 java xml 应用开发
💻 OLD
📖 第 1 页 / 共 5 页
字号:
        m_insertResPopupItem = new JMenuItem(m_littleBundle.getString("ResourceKey"));
        m_insertResPopupItem.addActionListener(this);
        resMenu.add(m_insertResPopupItem);

        rightMenu.add(resMenu);

        final JMenu resLinkMenu = new JMenu(m_littleBundle.getString("InsertResLinkKey"));
        resLinkMenu.setEnabled(elem != null && (elem.isJDFNode()
        								|| elem.getNodeName().equals("ResourceLinkPool")));
        
        m_insertInResLinkPopupItem = new JMenuItem(m_littleBundle.getString("ResourceInLinkKey"));
        m_insertInResLinkPopupItem.addActionListener(this);
        resLinkMenu.add(m_insertInResLinkPopupItem);
        
        m_insertOutResLinkPopupItem = new JMenuItem(m_littleBundle.getString("ResourceOutLinkKey"));
        m_insertOutResLinkPopupItem.addActionListener(this);
        resLinkMenu.add(m_insertOutResLinkPopupItem);

        rightMenu.add(resLinkMenu);

        m_insertAttrPopupItem = new JMenuItem(m_littleBundle.getString("InsertAttKey"));
        m_insertAttrPopupItem.addActionListener(this);
        rightMenu.add(m_insertAttrPopupItem);
        rightMenu.add(new JSeparator());

        m_cutPopupItem = new JMenuItem(m_littleBundle.getString("CutKey"));
        m_cutPopupItem.setAccelerator(KeyStroke.getKeyStroke('X', menuKeyMask));
        m_cutPopupItem.addActionListener(this);
        rightMenu.add(m_cutPopupItem);

        m_copyPopupItem = new JMenuItem(m_littleBundle.getString("CopyKey"));
        m_copyPopupItem.setAccelerator(KeyStroke.getKeyStroke('C', menuKeyMask));
        m_copyPopupItem.addActionListener(this);
        rightMenu.add(m_copyPopupItem);

        m_pastePopupItem = new JMenuItem(m_littleBundle.getString("PasteKey"));
        m_pastePopupItem.setAccelerator(KeyStroke.getKeyStroke('P', menuKeyMask));
        m_pastePopupItem.addActionListener(this);
        rightMenu.add(m_pastePopupItem);

        m_deletePopupItem = new JMenuItem(m_littleBundle.getString("DeleteKey"));
        m_deletePopupItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
        m_deletePopupItem.addActionListener(this);
        rightMenu.add(m_deletePopupItem);
        rightMenu.add(new JSeparator());

        m_renamePopupItem = new JMenuItem(m_littleBundle.getString("RenameKey"));
        m_renamePopupItem.addActionListener(this);
        rightMenu.add(m_renamePopupItem);
        
        m_modifyAttrValuePopupItem = new JMenuItem(m_littleBundle.getString("ModifyAttValueKey"));
        m_modifyAttrValuePopupItem.addActionListener(this);
        rightMenu.add(m_modifyAttrValuePopupItem);
        rightMenu.add(new JSeparator());

        m_requiredAttrPopupItem = new JMenuItem(m_littleBundle.getString("AddRequiredAttKey"));
        m_requiredAttrPopupItem.addActionListener(this);
        rightMenu.add(m_requiredAttrPopupItem);

        m_requiredElemPopupItem = new JMenuItem(m_littleBundle.getString("AddRequiredElKey"));
        m_requiredElemPopupItem.addActionListener(this);
        rightMenu.add(m_requiredElemPopupItem);
        rightMenu.add(new JSeparator());

        m_xpandPopupItem = new JMenuItem(m_littleBundle.getString("ExpandKey"));
        m_xpandPopupItem.addActionListener(this);
        rightMenu.add(m_xpandPopupItem);
        
        m_collapsePopupItem = new JMenuItem(m_littleBundle.getString("CollapseKey"));
        m_collapsePopupItem.addActionListener(this);
        rightMenu.add(m_collapsePopupItem);

        //20040913 MRE
        m_copyToClipBoardPopupItem = new JMenuItem(m_littleBundle.getString("CopyNode"));
        m_copyToClipBoardPopupItem.addActionListener(this);
        rightMenu.add(m_copyToClipBoardPopupItem);
        
        setEnabledInMouseMenu(node, elem);

        return rightMenu;
    }
    
    /**
     * Creates the popupmenu after a right mouse click on node in the DevCap Output View.   
     * @param path - The path to the clicked node
     * @return A JPopupMenu
     */
    JPopupMenu drawDevCapMouseMenu(TreePath path)
    {
        final JPopupMenu rightMenu = new JPopupMenu();
        final DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
        if (node == null) 
            return rightMenu;
        
        final Object object = node.getUserObject();
        if (object instanceof JDFWrapper) 
        {
        
            JMenuItem spawnExecutable = new JMenuItem("Spawn...");

            spawnExecutable.addActionListener(new ActionListener() 
                    {
                        public void actionPerformed(ActionEvent ae)
                        {
                            JDFWrapper baseElem = (JDFWrapper) object;
                            String p = baseElem.getXPath();
                            if (p != null) 
                            {
                                findInNode(p);
                                spawn(false);
                            }
                        }
                    });
        
            rightMenu.add(spawnExecutable);
            spawnExecutable.setEnabled(true);
            
            JMenuItem spawnInfExecutable = new JMenuItem("Spawn Informative...");

            spawnInfExecutable.addActionListener(new ActionListener() 
                    {
                        public void actionPerformed(ActionEvent ae)
                        {
                            JDFWrapper baseElem = (JDFWrapper) object;
                            String p = baseElem.getXPath();
                            if (p != null) 
                            {
                                findInNode(p);
                                spawn(true);
                            }
                        }
                    });
        
            rightMenu.add(spawnInfExecutable);
            spawnInfExecutable.setEnabled(true);
            
            JDFTreeNode treeNode = (JDFTreeNode)m_jdfTree.getSelectionPath().getLastPathComponent();
            if (treeNode!=null && treeNode.equals(m_root))
            {
                spawnExecutable.setEnabled(false);
                spawnInfExecutable.setEnabled(false);
            }
        }
        else if (!node.isLeaf())
        {
	        JMenuItem xpandDevCapOutput = new JMenuItem(m_littleBundle.getString("ExpandKey"));
	        xpandDevCapOutput.addActionListener(new ActionListener() 
	                {
	                    public void actionPerformed(ActionEvent ae)
	                    {
	                        final Enumeration e = node.postorderEnumeration();
	                        
	                        while (e.hasMoreElements())
	                        {
	                            final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) e.nextElement();
	                            m_reportTree.expandPath(new TreePath(treeNode.getPath()));
	                        }
	                        m_reportTree.expandPath(m_reportTree.getSelectionPath());
	                    }
	                });
	        
	        rightMenu.add(xpandDevCapOutput);
	        xpandDevCapOutput.setEnabled(true);
	        
	        JMenuItem collapseDevCapOutput = new JMenuItem(m_littleBundle.getString("CollapseKey"));
	        collapseDevCapOutput.addActionListener(new ActionListener() 
	                {
	                    public void actionPerformed(ActionEvent ae)
	                    {
	                        final Enumeration e = node.postorderEnumeration();
	                        
	                        while (e.hasMoreElements())
	                        {
	                            final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) e.nextElement();
	                            m_reportTree.collapsePath(new TreePath(treeNode.getPath()));
	                        }
	                        m_reportTree.collapsePath(m_reportTree.getSelectionPath());
	                    }
	                });
	        
	        rightMenu.add(collapseDevCapOutput);
            collapseDevCapOutput.setEnabled(true);
        }

        return rightMenu;
    }
    
    /**
     * Disables the MenuItems in the MouseMenu that isn't selectable for the selected
     * JDFTreeNode.
     * @param node - The selected node
     * @param elem - The JDFElement for the selected node, can be null
     */
    private void setEnabledInMouseMenu(JDFTreeNode node, JDFElement elem)
    {
        if (node.isElement() && elem != null)
        {
            if (!((JDFTreeNode) m_root.getFirstChild()).equals(node))
            {
                m_insertElemBeforePopupItem.setEnabled(true);
                m_insertElemAfterPopupItem.setEnabled(true);
                
                if (elem.getTagName().equals("Comment"))
                    m_insertElemIntoPopupItem.setEnabled(false);
                else
                    m_insertElemIntoPopupItem.setEnabled(true);
            }
            else
            {
                m_insertElemBeforePopupItem.setEnabled(false);
                m_insertElemAfterPopupItem.setEnabled(false);
                m_insertElemIntoPopupItem.setEnabled(true);
            }
            
            final boolean bMayContainResources = elem.isJDFNode() || elem.getNodeName().equals("ResourcePool");
            
                m_insertInResPopupItem.setEnabled(bMayContainResources);
                m_insertOutResPopupItem.setEnabled(bMayContainResources);
                m_insertResPopupItem.setEnabled(bMayContainResources);
                        
            final boolean bNodeOK = (elem.isJDFNode() && 
                                     getResourcesAllowedToLink((JDFNode) elem).size() != 0);
            
            final boolean bResLinkPoolOK = (elem.getNodeName().equals("ResourceLinkPool") && 
                                            getResourcesAllowedToLink(elem.getParentJDF()).size() != 0);

            m_insertInResLinkPopupItem.setEnabled(bNodeOK || bResLinkPoolOK);
            m_insertOutResLinkPopupItem.setEnabled(bNodeOK || bResLinkPoolOK);
            
            boolean bHasChildNodes = elem.hasChildElements() || elem.hasAttributes();
            
            m_xpandPopupItem.setEnabled(bHasChildNodes);
            m_collapsePopupItem.setEnabled(bHasChildNodes);
                
            m_requiredAttrPopupItem.setEnabled(true);
            m_requiredElemPopupItem.setEnabled(true);
            m_modifyAttrValuePopupItem.setEnabled(false);
        }
        else
        {
            m_requiredAttrPopupItem.setEnabled(false);
            m_requiredElemPopupItem.setEnabled(false);
            m_modifyAttrValuePopupItem.setEnabled(true);
            m_xpandPopupItem.setEnabled(false);
            m_collapsePopupItem.setEnabled(false);
        }

        m_pastePopupItem.setEnabled(m_copyNode != null);
        final Object parent = ((JDFTreeNode) node.getParent()).getUserObject();
        m_renamePopupItem.setEnabled(parent!=null);

    }
    /**
     * Method createModel.
     * create the treeModel
     * @param doc
     * @return TreeModel
     */
    private TreeModel createModel(JDFDoc doc)
    {
        m_jdfDocument = doc;

        if (m_jdfDocument != null)
        {
            m_docNS = m_jdfDocument.getDocumentElement().getNamespaceURI();
            buildModel(m_jdfDocument.getRoot(), m_root);
        }
        m_model = new DefaultTreeModel(m_root);
        m_vStrangeElementsString.clear();
        m_vStrangeElements.clear();
        m_vInvalidResLinks.clear();
        m_vInvalidResLinksString.clear();
        m_model.addTreeModelListener(new MyTreeModelListener());
        return m_model;
    }
    /**
     * Method buildModel.
     * Creates the JDFTreeNodes
     * @param node
     * @param m_root
     */
    private void buildModel(JDFElement node, JDFTreeNode my_Root)
    {
        JDFTreeNode childNode = null;
        final String xPath = node.buildXPath();
        if (node.getNodeName().equals("JDF"))
        {
            final JDFWrapper jdfW = new JDFWrapper(node);
            childNode = new JDFTreeNode(jdfW, jdfW.wrapperIsValid(), true, xPath);
            if (!childNode.isValid())
                setInvalidNode(node, KElement.ValidationLevel_Complete);
                
            setNSAndAttributes(node, childNode, my_Root);
        }
        else if (JDFElement.isResourceLinkStatic(node) && childNode == null)
        {
            final ResourceLinkWrapper resLinkW = new ResourceLinkWrapper(node);
            childNode = new JDFTreeNode(resLinkW, resLinkW.wrapperIsValid(), true, xPath);
            if (!childNode.isValid())
                setInvalidNode(node, KElement.ValidationLevel_Complete);
                
            setNSAndAttributes(node, childNode, my_Root);

            if (m_currentAutoVal)
            {
                final JDFElement jdfElement = node;
                hasInvalidResourceLinks(childNode, jdfElement);
            }
        }
        else if (JDFElement.isRefElementStatic(node) && childNode == null)
        {
            final RefElementWrapper refElW = new RefElementWrapper(node);
            childNode = new JDFTreeNode(refElW, refElW.wrapperIsValid(), true, xPath);
            if (!childNode.isValid())
                setInvalidNode(node, KElement.ValidationLevel_Complete);
                
            setNSAndAttributes(node, child

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -