Examples of HierarchicalGraph


Examples of org.gephi.graph.api.HierarchicalGraph

            }
            return minHGraph;
        }

        public Graph filter(Graph graph, Filter[] filters) {
            HierarchicalGraph hgraph = (HierarchicalGraph) graph;
            List<NodeFilter> nodeFilters = new ArrayList<NodeFilter>();
            List<EdgeFilter> edgeFilters = new ArrayList<EdgeFilter>();
            for (Filter f : filters) {
                if (f instanceof NodeFilter) {
                    nodeFilters.add((NodeFilter) f);
                } else if (f instanceof EdgeFilter) {
                    edgeFilters.add((EdgeFilter) f);
                }
            }
            if (nodeFilters.size() > 0) {
                for (Iterator<NodeFilter> itr = nodeFilters.iterator(); itr.hasNext();) {
                    NodeFilter nf = itr.next();
                    if (!nf.init(hgraph)) {
                        itr.remove();
                    }
                }
                List<Node> nodesToRemove = new ArrayList<Node>();
                for (Node n : hgraph.getNodes()) {
                    for (NodeFilter nf : nodeFilters) {
                        if (!nf.evaluate(hgraph, n)) {
                            nodesToRemove.add(n);
                            break;
                        }
                    }
                }

                for (Node n : nodesToRemove) {
                    hgraph.removeNode(n);
                }

                for (NodeFilter nf : nodeFilters) {
                    nf.finish();
                }
            }
            if (edgeFilters.size() > 0) {
                for (Iterator<EdgeFilter> itr = edgeFilters.iterator(); itr.hasNext();) {
                    EdgeFilter ef = itr.next();
                    if (!ef.init(hgraph)) {
                        itr.remove();
                    }
                }
                List<Edge> edgesToRemove = new ArrayList<Edge>();
                for (Edge e : hgraph.getEdges()) {
                    for (EdgeFilter ef : edgeFilters) {
                        if (!ef.evaluate(hgraph, e)) {
                            edgesToRemove.add(e);
                            break;
                        }
                    }
                }

                for (Edge e : edgesToRemove) {
                    hgraph.removeEdge(e);
                }

                for (EdgeFilter ef : edgeFilters) {
                    ef.finish();
                }
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        public Graph filter(Graph[] graphs) {
            if (graphs.length > 1) {
                throw new IllegalArgumentException("Filter accepts a single graph in parameter");
            }

            HierarchicalGraph hgraph = (HierarchicalGraph) graphs[0];
            GraphView hgraphView = hgraph.getView();
            HierarchicalGraph mainHGraph = hgraph.getView().getGraphModel().getHierarchicalGraph();

            List<Edge> edgesToKeep = new ArrayList<Edge>();
            for (Edge e : mainHGraph.getEdges().toArray()) {
                Node source = e.getSource().getNodeData().getNode(hgraphView.getViewId());
                Node target = e.getTarget().getNodeData().getNode(hgraphView.getViewId());
                boolean keep = false;
                switch (option) {
                    case SOURCE:
                        keep = source != null;
                        break;
                    case TARGET:
                        keep = target != null;
                        break;
                    case BOTH:
                        keep = source != null && target != null;
                        break;
                    case ANY:
                        keep = source != null || target != null;
                        break;
                }
                if (keep) {
                    edgesToKeep.add(e);
                }
            }

            hgraph.clearEdges();

            for (Node n : mainHGraph.getNodes().toArray()) {
                if (n.getNodeData().getNode(hgraphView.getViewId()) == null) {
                    hgraph.addNode(n);
                }
            }
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        }

        private void refreshValues(Graph graph) {
            Integer min = 0;
            Integer max = 0;
            HierarchicalGraph hgraph = (HierarchicalGraph) graph;
            values = new ArrayList<Integer>(((HierarchicalGraph) graph).getNodeCount());
            min = Integer.MAX_VALUE;
            max = Integer.MIN_VALUE;
            for (Node n : hgraph.getNodes()) {
                int degree = hgraph.getTotalDegree(n);
                min = Math.min(min, degree);
                max = Math.max(max, degree);
                values.add(degree);
            }
            if (range == null) {
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        public String getName() {
            return NbBundle.getMessage(AttributeEqualBuilder.class, "AttributeEqualBuilder.name");
        }

        public boolean init(Graph graph) {
            HierarchicalGraph hg = (HierarchicalGraph) graph;
            dynamicHelper = new DynamicAttributesHelper(this, hg);
            return true;
        }
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        public String getName() {
            return NbBundle.getMessage(AttributeEqualBuilder.class, "AttributeEqualBuilder.name");
        }

        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;
                }
            }
            dynamicHelper = new DynamicAttributesHelper(this, hg);
            refreshValues(hg);
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

    @Test
    public void testView() {
        DhnsGraphController controller = new DhnsGraphController();
        Dhns dhns = new Dhns(controller, null);
        HierarchicalGraph graph = new HierarchicalDirectedGraphImpl(dhns, dhns.getGraphStructure().getMainView());

        TreeStructure treeStructure = dhns.getGraphStructure().getMainView().getStructure();
        GraphFactoryImpl factory = dhns.factory();

        //Nodes
        for (int i = 0; i < 5; i++) {
            Node node = factory.newNode();
            node.getNodeData().setLabel("Node " + i);
            graph.addNode(node);
        }

        for (Node n : graph.getTopNodes().toArray()) {
            Node newC = factory.newNode();
            graph.addNode(newC, n);
        }

        //treeStructure.showTreeAsTable();

        //Test getNodes()
        for (Node n : graph.getNodes()) {
            assertEquals(1, graph.getChildrenCount(n));
        }

        //Test isInView
        for (Node n : graph.getNodes()) {
            assertTrue(graph.isInView(n));
            assertFalse(graph.isInView(graph.getChildren(n).toArray()[0]));
        }

        //Test resetView
        //treeStructure.showTreeAsTable();
        graph.resetViewToLeaves();
        for (Node n : graph.getNodes()) {
            assertEquals(1, graph.getLevel(n));
            assertFalse(graph.isInView(graph.getParent(n)));
        }

        graph.resetViewToTopNodes();
        for (Node n : graph.getNodes()) {
            assertEquals(0, graph.getLevel(n));
        }

        graph.resetViewToLevel(1);
        for (Node n : graph.getNodes()) {
            assertEquals(1, graph.getLevel(n));
            assertFalse(graph.isInView(graph.getParent(n)));
        }

        for (Node n : graph.getNodes(1).toArray()) {
            graph.removeFromGroup(n);
        }

        //treeStructure.showTreeAsTable();
        try {
            checkHierarchy(treeStructure);
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

            }
            return filterProperties;
        }

        public boolean init(Graph graph) {
            HierarchicalGraph hg = (HierarchicalGraph) graph;
            dynamicHelper = new DynamicAttributesHelper(this, hg);
            return true;
        }
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        private String pattern = "";
        private boolean self = true;
        private int depth = 1;

        public Graph filter(Graph graph) {
            HierarchicalGraph hgraph = (HierarchicalGraph) graph;

            String str = pattern.toLowerCase();

            List<Node> nodes = new ArrayList<Node>();
            for (Node n : hgraph.getNodes()) {
                if (n.getNodeData().getId().toLowerCase().equals(str)) {
                    nodes.add(n);
                } else if ((n.getNodeData().getLabel() != null) && n.getNodeData().getLabel().toLowerCase().equals(str)) {
                    nodes.add(n);
                }
            }

            Set<Node> result = new HashSet<Node>();

            Set<Node> neighbours = new HashSet<Node>();
            neighbours.addAll(nodes);

            for (int i = 0; i < depth; i++) {
                Node[] nei = neighbours.toArray(new Node[0]);
                neighbours.clear();
                for (Node n : nei) {
                    for (Node neighbor : hgraph.getNeighbors(n)) {
                        if (!result.contains(neighbor)) {
                            neighbours.add(neighbor);
                            result.add(neighbor);
                        }
                    }
                }
                if (neighbours.isEmpty()) {
                    break;
                }
            }

            if (self) {
                result.addAll(nodes);
            } else {
                result.removeAll(nodes);
            }

            for (Node node : hgraph.getNodes().toArray()) {
                if (!result.contains(node)) {
                    hgraph.removeNode(node);
                }
            }

            return hgraph;
        }
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        public String getName() {
            return NbBundle.getMessage(EdgeWeightBuilder.class, "EdgeWeightBuilder.name");
        }

        public boolean init(Graph graph) {
            HierarchicalGraph hgraph = (HierarchicalGraph) graph;
            if (hgraph.getTotalEdgeCount() == 0) {
                return false;
            }
            dynamicHelper = new DynamicAttributesHelper(this, hgraph);
            refreshValues(graph);
            return true;
View Full Code Here

Examples of org.gephi.graph.api.HierarchicalGraph

        }

        private void refreshValues(Graph graph) {
            Float min = Float.MAX_VALUE;
            Float max = Float.MIN_VALUE;
            HierarchicalGraph hgraph = (HierarchicalGraph) graph;
            values = new ArrayList<Float>(hgraph.getTotalEdgeCount());
            for (Edge e : hgraph.getEdgesAndMetaEdges()) {
                float weight = dynamicHelper.getEdgeWeight(e);
                min = Math.min(min, weight);
                max = Math.max(max, weight);
                values.add(weight);
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.