Package org.gephi.graph.api

Examples of org.gephi.graph.api.HierarchicalGraph


            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

    public void writeXML(XMLStreamWriter writer, Workspace workspace) {
        try {
            writer.writeStartElement(ELEMENT_TEXTDATA);
            GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class);
            HierarchicalGraph hierarchicalGraph = graphModel.getHierarchicalGraph();
            for (Node node : hierarchicalGraph.getNodesTree()) {
                TextData nodeTextData = node.getNodeData().getTextData();
                if (nodeTextData != null) {
                    writer.writeStartElement(ELEMENT_NODEDATA_TEXTDATA);
                    writer.writeAttribute("for", String.valueOf(node.getId()));
                    if (nodeTextData.getR() > 0) {
                        writer.writeStartElement(ELEMENT_TEXTDATA_COLOR);
                        writer.writeAttribute("r", String.valueOf(nodeTextData.getR()));
                        writer.writeAttribute("g", String.valueOf(nodeTextData.getG()));
                        writer.writeAttribute("b", String.valueOf(nodeTextData.getB()));
                        writer.writeAttribute("a", String.valueOf(nodeTextData.getAlpha()));
                        writer.writeEndElement();
                    }
                    writer.writeStartElement(ELEMENT_TEXTDATA_SIZE);
                    writer.writeAttribute("value", String.valueOf(nodeTextData.getSize()));
                    writer.writeEndElement();
                    writer.writeStartElement(ELEMENT_TEXTDATA_VISIBLE);
                    writer.writeAttribute("value", String.valueOf(nodeTextData.isVisible()));
                    writer.writeEndElement();
                    writer.writeEndElement();
                }
            }
            for (Node node : hierarchicalGraph.getNodesTree()) {
                for (Edge edge : hierarchicalGraph.getEdges(node)) {
                    TextData edgeTextData = edge.getEdgeData().getTextData();
                    if (edgeTextData != null) {
                        writer.writeStartElement(ELEMENT_EDGEDATA_TEXTDATA);
                        writer.writeAttribute("for", String.valueOf(edge.getId()));
                        if (edgeTextData.getR() > 0) {
View Full Code Here

    }

    public void readXML(XMLStreamReader reader, Workspace workspace) {
        try {
            GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class);
            HierarchicalGraph hierarchicalGraph = graphModel.getHierarchicalGraph();
            boolean end = false;
            while (reader.hasNext() && !end) {
                int type = reader.next();
                switch (type) {
                    case XMLStreamReader.START_ELEMENT:
                        String name = reader.getLocalName();
                        if (ELEMENT_NODEDATA_TEXTDATA.equalsIgnoreCase(name)) {
                            int id = Integer.parseInt(reader.getAttributeValue(null, "for"));
                            Node node = hierarchicalGraph.getNode(id);
                            TextDataImpl textDataImpl = (TextDataImpl) node.getNodeData().getTextData();
                            readTextData(reader, textDataImpl);
                        } else if (ELEMENT_EDGEDATA_TEXTDATA.equalsIgnoreCase(name)) {
                            int id = Integer.parseInt(reader.getAttributeValue(null, "for"));
                            Edge edge = hierarchicalGraph.getEdge(id);
                            TextDataImpl textDataImpl = (TextDataImpl) edge.getEdgeData().getTextData();
                            readTextData(reader, textDataImpl);
                        }
                        break;
                    case XMLStreamReader.END_ELEMENT:
View Full Code Here

    private float maxZ;

    public boolean execute() {
        attributeModel = workspace.getLookup().lookup(AttributeModel.class);
        graphModel = workspace.getLookup().lookup(GraphModel.class);
        HierarchicalGraph graph = null;
        if (exportVisible) {
            graph = graphModel.getHierarchicalGraphVisible();
        } else {
            graph = graphModel.getHierarchicalGraph();
        }
        Progress.start(progress);
        graph.readLock();

        //Options
        if (normalize) {
            calculateMinMax(graph);
        }

        //Calculate progress units count
        int max = 0;
        if (exportHierarchy) {
            for (Node n : graph.getNodesTree()) {
                max++;
            }
            for (Edge e : graph.getEdgesTree()) {
                max++;
            }
        } else {
            max = graph.getNodeCount();
            for (Edge e : graph.getEdgesAndMetaEdges()) {
                max++;
            }
        }
        Progress.switchToDeterminate(progress, max);

        try {
            XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
            outputFactory.setProperty("javax.xml.stream.isRepairingNamespaces", Boolean.FALSE);

            XMLStreamWriter xmlWriter = outputFactory.createXMLStreamWriter(writer);
            xmlWriter = new IndentingXMLStreamWriter(xmlWriter);

            xmlWriter.writeStartDocument("UTF-8", "1.0");
            xmlWriter.setPrefix("", GEXF_NAMESPACE);
            xmlWriter.writeStartElement(GEXF_NAMESPACE, GEXF);
            xmlWriter.writeNamespace("", GEXF_NAMESPACE);
            xmlWriter.writeAttribute(GEXF_VERSION, "1.1");

            if (exportColors || exportPosition || exportSize) {
                xmlWriter.writeNamespace(VIZ, VIZ_NAMESPACE);
            }
            xmlWriter.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
            xmlWriter.writeAttribute("xsi:schemaLocation", GEXF_NAMESPACE_LOCATION);

            if (exportDynamic) {
                DynamicController dynamicController = Lookup.getDefault().lookup(DynamicController.class);
                dynamicModel = dynamicController != null ? dynamicController.getModel(workspace) : null;
                visibleInterval = dynamicModel == null ? null : exportVisible ? dynamicModel.getVisibleInterval() : new TimeInterval(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);
            }

            writeMeta(xmlWriter);
            writeGraph(xmlWriter, graph);

            xmlWriter.writeEndElement();
            xmlWriter.writeEndDocument();
            xmlWriter.close();

        } catch (Exception e) {
            graph.readUnlockAll();
            if (e instanceof RuntimeException) {
                throw (RuntimeException) e;
            }
            throw new RuntimeException(e);
        }

        graph.readUnlock();

        Progress.finish(progress);
        return !cancel;
    }
View Full Code Here

        copyToWorkspace(workspace);
        delete();
    }

    public void delete() {
        HierarchicalGraph hg=Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraph();
        for (Node n : nodes) {
            hg.removeNode(n);
        }
    }
View Full Code Here

    }

    public JPopupMenu getMenu() {
        GraphContextMenuItem[] items = getGraphContextMenuItems();
        final Node[] selectedNodes = eventBridge.getSelectedNodes();
        final HierarchicalGraph graph = eventBridge.getGraph();
        JPopupMenu contextMenu = new JPopupMenu();

        //Add items ordered:
        Integer lastItemType = null;
        for (GraphContextMenuItem item : items) {
View Full Code Here

        avgRadio.addActionListener(radioListener);
    }

    public void setup() {
        GraphModel model = Lookup.getDefault().lookup(GraphController.class).getModel();
        HierarchicalGraph graph = model.getHierarchicalGraphVisible();
        initLevelsLinks(graph);

        //Init status
        GraphSettings settings = model.settings();
        boolean enabled = (Boolean) settings.getClientProperty(GraphSettings.AUTO_META_EDGES);
        autoMetaEdgeCheckbox.setSelected(enabled);

        sumRadio.setEnabled(enabled);
        avgRadio.setEnabled(enabled);
        labelWeight.setEnabled(enabled);

        //Weight
        String builder = (String) settings.getClientProperty(GraphSettings.METAEDGE_BUILDER);
        if (builder.equalsIgnoreCase("sum")) {
            sumRadio.setSelected(true);
        } else if (builder.equalsIgnoreCase("average")) {
            avgRadio.setSelected(true);
        } else {
            sumRadio.setEnabled(false);
            avgRadio.setEnabled(false);
        }

        //Stats
        heightLabel.setText("" + (graph.getHeight() + 1));
    }
View Full Code Here

            final int lvl = i;
            link.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    GraphModel model = Lookup.getDefault().lookup(GraphController.class).getModel();
                    HierarchicalGraph graph = model.getHierarchicalGraphVisible();
                    graph.resetViewToLevel(lvl);
                }
            });
            GridBagConstraints gdc = new GridBagConstraints(0, i, 1, 1, 1, 0, GridBagConstraints.PAGE_START, GridBagConstraints.HORIZONTAL, new Insets(0, 4, 0, 0), 0, 0);
            levelViewPanel.add(link, gdc);
        }

        //Leaves
        JXHyperlink link = new JXHyperlink();
        link.setClickedColor(new java.awt.Color(0, 51, 255));
        link.setText(leavesStr);
        link.setHorizontalAlignment(javax.swing.SwingConstants.LEADING);
        link.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                GraphModel model = Lookup.getDefault().lookup(GraphController.class).getModel();
                HierarchicalGraph graph = model.getHierarchicalGraphVisible();
                graph.resetViewToLeaves();
            }
        });
        GridBagConstraints gdc = new GridBagConstraints(0, height + 1, 1, 1, 1, 1, GridBagConstraints.PAGE_START, GridBagConstraints.HORIZONTAL, new Insets(0, 4, 0, 0), 0, 0);
        levelViewPanel.add(link, gdc);
    }
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.