Package org.gephi.graph.dhns.node

Examples of org.gephi.graph.dhns.node.AbstractNode


            edgeProcessor.removeEdgeFromMetaEdge(edge);
            return res;
        }

        public boolean delMetaEdge(MetaEdgeImpl edge) {
            AbstractNode source = edge.getSource(view.getViewId());
            AbstractNode target = edge.getTarget(view.getViewId());

            if (!edge.isSelfLoop() && source.getEdgesInTree().hasNeighbour(target)) {
                //mutual
                view.decMutualMetaEdgesTotal(1);
                source.decMutualMetaEdgeDegree();
                target.decMutualMetaEdgeDegree();

            }
            view.decMetaEdgesCount(1);

            //Remove edge
            boolean res = source.getMetaEdgesOutTree().remove(edge);
            res = res && target.getMetaEdgesInTree().remove(edge);

            return res;
        }
View Full Code Here


        private AbstractNode[] clearAllNodes() {
            AbstractNode[] deletedNodes = new AbstractNode[treeStructure.getTreeSize() - 1];
            int n = 0;
            for (TreeListIterator itr = new TreeListIterator(treeStructure.getTree(), 1); itr.hasNext();) {
                AbstractNode node = itr.next();
                node.getNodeData().getNodes().remove(view.getViewId());
                dhns.getGraphStructure().removeFromDictionnary(node);
                deletedNodes[n++] = node;
            }
            treeStructure.clear();
            view.setNodesEnabled(0);
View Full Code Here

            edgeProcessor.clearMetaEdges(node);
        }

        private void group(AbstractNode group, AbstractNode[] nodes) {
            group.setEnabled(true);
            AbstractNode parent = ((AbstractNode) nodes[0]).parent;
            //parent = parent.getInView(view.getViewId());
            group.parent = parent;
            business.addNode(group);
            for (int i = 0; i < nodes.length; i++) {
                AbstractNode nodeToGroup = nodes[i];
                nodeToGroup = nodeToGroup.getInView(view.getViewId());
                business.moveToGroup(nodeToGroup, group);
            }
        }
View Full Code Here

            if (nodeGroup.isEnabled()) {
                business.expand(nodeGroup);
            }
            for (int i = 0; i < count; i++) {
                AbstractNode node = treeStructure.getNodeAt(nodeGroup.getPre() + 1);
                business.moveToGroup(node, nodeGroup.parent);
                ungroupedNodes[i] = node;
            }

            business.deleteNode(nodeGroup, view);
View Full Code Here

            return ungroupedNodes;
        }

        private void moveToGroup(AbstractNode node, AbstractNode nodeGroup) {

            AbstractNode toMoveAncestor = treeStructure.getEnabledAncestor(node);
            AbstractNode destinationAncestor = treeStructure.getEnabledAncestorOrSelf(nodeGroup);

            if (toMoveAncestor != destinationAncestor) {
                if (toMoveAncestor != null) {
                    //The node has an enabled ancestor
                    //We delete edges from potential meta edges
                    if (node.size > 0) {
                        for (DescendantAndSelfIterator itr = new DescendantAndSelfIterator(treeStructure, node, Tautology.instance); itr.hasNext();) {
                            AbstractNode descendant = itr.next();
                            edgeProcessor.clearEdgesWithoutRemove(descendant);
                        }
                    } else {
                        edgeProcessor.clearEdgesWithoutRemove(node);
                    }
                } else if (node.isEnabled()) {
                    //The node is enabled
                    if (destinationAncestor != null) {
                        //The destination is enabled or has enabled ancestor
                        //Node is thus disabled
                        edgeProcessor.clearMetaEdges(node);
                        node.setEnabled(false);
                        view.decNodesEnabled(1);
                        edgeProcessor.decrementEdgesCouting(node, null);
                        //DO
                    } else {
                        //The node is kept enabled
                        //Meta edges are still valid only if their target is out of the dest cluster
                        edgeProcessor.clearMetaEdgesOutOfRange(node, nodeGroup);
                    }
                } else if (node.size > 0) {
                    if (destinationAncestor != null) {
                        //The node may have some enabled descendants and we set them disabled
                        for (DescendantIterator itr = new DescendantIterator(treeStructure, node, Tautology.instance); itr.hasNext();) {
                            AbstractNode descendant = itr.next();
                            if (descendant.isEnabled()) {
                                edgeProcessor.clearMetaEdges(descendant);
                                descendant.setEnabled(false);
                                view.decNodesEnabled(1);
                                edgeProcessor.decrementEdgesCouting(descendant, null);
                                //TODO
                            }
                        }
                        //DO
                    } else {
                        //The node may have some enabled descendants and we keep them enabled
                        for (DescendantIterator itr = new DescendantIterator(treeStructure, node, Tautology.instance); itr.hasNext();) {
                            AbstractNode descendant = itr.next();
                            if (descendant.isEnabled()) {
                                //Enabled descendants meta edges are still valid only if their target is out of
                                //the destination cluster
                                edgeProcessor.clearMetaEdgesOutOfRange(node, nodeGroup);
                            }
                        }
View Full Code Here

     */
    @Override
    public AbstractNode set(int index, AbstractNode obj) {
        checkInterval(index, 0, size() - 1);
        DurableAVLNode node = root.get(index);
        AbstractNode result = node.value;
        node.setValue(obj);
        return result;
    }
View Full Code Here

     */
    @Override
    public AbstractNode remove(int index) {
        modCount++;
        checkInterval(index, 0, size() - 1);
        AbstractNode result = get(index);
        levelsSize[result.level]--;
        result.avlNode.setIndex(index);
        root = root.remove(index);
        result.avlNode = null;
        result.parent = null;
View Full Code Here

    public AbstractNode removeAndKeepParent(int index) {
        checkInterval(index, 0, size() - 1);

        //Remove without setting null parent
        AbstractNode result = get(index);
        levelsSize[result.level]--;
        root = root.remove(index);
        result.avlNode = null;
        result.size = 0;
        size--;
View Full Code Here

    }

    public void move(int index, int destination) {
        checkInterval(index, 0, size() - 1);

        AbstractNode node = get(index);
        AbstractNode parent = get(destination);
        int destinationPre = parent.pre + parent.size + 1;
        int nodeLimit = node.pre + node.size;
        boolean forward = destinationPre > node.pre;
        int difflevel = 0;

        //Move descendant & self
        int count = 0;
        for (int i = node.pre; i <= nodeLimit; i++) {
            int sourcePre = i;
            int destPre = destinationPre + count;
            if (forward) {
                sourcePre -= count;
                destPre -= count + 1;
            }

            AbstractNode sourceNode = get(sourcePre);
            levelsSize[sourceNode.level]--;
            root = root.remove(sourcePre);      //Remove
            sourceNode.avlNode = null;          //Remove
            size--;                             //Remove
            //System.out.println("add "+(destPre)+"   remove "+sourceNode.getId());
View Full Code Here

//        dhnsGlobal.getGraphStructure().getMainView().getStructure().showTreeAsTable();
        GraphViewImpl view = dhnsGlobal.getGraphStructure().getNewView();
//        view.getStructure().showTreeAsTable();

        for (TreeListIterator itr = new TreeListIterator(view.getStructure().getTree(), 1); itr.hasNext();) {
            AbstractNode node = itr.next();
            assertEquals(view.getViewId(), node.getViewId());
            AbstractNode mainNode = node.getInView(0);
            assertNotNull(mainNode);
            assertNotSame(node, mainNode);
            assertSame(node.getNodeData(), mainNode.getNodeData());
            if (mainNode.parent != null) {
                assertNotNull(node.parent);
                assertEquals(node.parent.getViewId(), view.getViewId());
            }
        }

        for (TreeListIterator itr = new TreeListIterator(view.getStructure().getTree(), 1); itr.hasNext();) {
            AbstractNode node = itr.next();
            AbstractNode mainNode = node.getInView(0);
            assertEquals(node.getEdgesInTree().getCount(), mainNode.getEdgesInTree().getCount());
            assertEquals(node.getEdgesOutTree().getCount(), mainNode.getEdgesOutTree().getCount());
            for (AbstractEdge edge : node.getEdgesInTree()) {
                assertSame(edge, mainNode.getEdgesInTree().getItem(edge.getSource().getNumber()));
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.gephi.graph.dhns.node.AbstractNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.