Package org.gephi.graph.api

Examples of org.gephi.graph.api.HierarchicalGraph


            super(NbBundle.getMessage(AttributeEqualBuilder.class, "AttributeNonNullBuilder.name"),
                    column);
        }

        public boolean init(Graph graph) {
            HierarchicalGraph hg = (HierarchicalGraph) graph;
            if (AttributeUtils.getDefault().isNodeColumn(column)) {
                if (graph.getNodeCount() == 0) {
                    return false;
                }
            } else if (AttributeUtils.getDefault().isEdgeColumn(column)) {
                if (hg.getTotalEdgeCount() == 0) {
                    return false;
                }
            }
            return true;
        }
View Full Code Here


        private Integer level = 0;
        private int height;

        public boolean init(Graph graph) {
            HierarchicalGraph hg = (HierarchicalGraph) graph;
            height = hg.getHeight();
            return true;
        }
View Full Code Here

            height = hg.getHeight();
            return true;
        }

        public boolean evaluate(Graph graph, Node node) {
            HierarchicalGraph hg = (HierarchicalGraph) graph;
            return hg.getLevel(node) == level.intValue();
        }
View Full Code Here

            return null;
        }
    }

    public Node duplicateNode(Node node) {
        HierarchicalGraph hg = getHierarchicalGraph();

        Node copy = copyNodeRecursively(node, hg.getParent(node), hg);//Add copy to the same level as the original node
        return copy;
    }
View Full Code Here

        }
    }

    public boolean groupNodes(Node[] nodes) {
        if (canGroupNodes(nodes)) {
            HierarchicalGraph graph = getHierarchicalGraph();
            try {
                float centroidX = 0;
                float centroidY = 0;
                int len = 0;
                float sizes = 0;
                float r = 0;
                float g = 0;
                float b = 0;
                Node group = graph.groupNodes(nodes);
                group.getNodeData().setLabel(NbBundle.getMessage(GraphElementsControllerImpl.class, "Group.nodeCount.label", nodes.length));
                group.getNodeData().setSize(10f);
                for (Node child : nodes) {
                    centroidX += child.getNodeData().x();
                    centroidY += child.getNodeData().y();
                    len++;
                    sizes += child.getNodeData().getSize() / 10f;
                    r += child.getNodeData().r();
                    g += child.getNodeData().g();
                    b += child.getNodeData().b();
                }
                centroidX /= len;
                centroidY /= len;
                group.getNodeData().setSize(sizes);
                group.getNodeData().setColor(r / len, g / len, b / len);
                group.getNodeData().setX(centroidX);
                group.getNodeData().setY(centroidY);
            } catch (Exception e) {
                graph.readUnlockAll();
                NotifyDescriptor.Message nd = new NotifyDescriptor.Message(e.getMessage());
                DialogDisplayer.getDefault().notifyLater(nd);
                return false;
            }
            return true;
View Full Code Here

            return false;
        }
    }

    public boolean canGroupNodes(Node[] nodes) {
        HierarchicalGraph hg = getHierarchicalGraph();
        Node parent = hg.getParent(nodes[0]);
        for (Node n : nodes) {
            if (hg.getParent(n) != parent) {
                return false;
            }
        }
        return true;
    }
View Full Code Here

        return true;
    }

    public boolean ungroupNode(Node node) {
        if (canUngroupNode(node)) {
            HierarchicalGraph hg = getHierarchicalGraph();
            hg.ungroupNodes(node);
            return true;
        } else {
            return false;
        }
    }
View Full Code Here

        }
    }

    public boolean ungroupNodeRecursively(Node node) {
        if (canUngroupNode(node)) {
            HierarchicalGraph hg = getHierarchicalGraph();
            //We can get directly all descendant nodes withoud using recursion and break the groups:
            ungroupNodes(hg.getDescendant(node).toArray());
            ungroupNode(node);
            return true;
        } else {
            return false;
        }
View Full Code Here

        }
    }

    public boolean canUngroupNode(Node node) {
        boolean canUngroup;
        HierarchicalGraph hg = getHierarchicalGraph();
        canUngroup = getNodeChildrenCount(hg, node) > 0;//The node has children
        return canUngroup;
    }
View Full Code Here

        }
    }

    public Node[] getAvailableGroupsToMoveNodes(Node[] nodes) {
        if (canGroupNodes(nodes)) {
            HierarchicalGraph hg = getHierarchicalGraph();
            Set<Node> nodesSet = new HashSet<Node>();
            nodesSet.addAll(Arrays.asList(nodes));

            //All have the same parent, get children and check what of them are groups and are not in the nodes array:
            Node parent = hg.getParent(nodes[0]);
            Node[] possibleGroups;
            //If no parent, get nodes at level 0:
            if (parent != null) {
                possibleGroups = hg.getChildren(parent).toArray();
            } else {
                possibleGroups = hg.getNodes(0).toArray();
            }
            ArrayList<Node> availableGroups = new ArrayList<Node>();

            for (Node n : possibleGroups) {
                if (!nodesSet.contains(n) && getNodeChildrenCount(hg, n) > 0) {
View Full Code Here

TOP

Related Classes of org.gephi.graph.api.HierarchicalGraph

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.