Search in sources :

Example 56 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class EdgePencil method getListeners.

@Override
public ToolEventListener[] getListeners() {
    listeners = new ToolEventListener[2];
    listeners[0] = new NodeClickEventListener() {

        @Override
        public void clickNodes(Node[] nodes) {
            Node n = nodes[0];
            if (sourceNode == null) {
                sourceNode = n;
                edgePencilPanel.setStatus(NbBundle.getMessage(EdgePencil.class, "EdgePencil.status2"));
            } else {
                color = edgePencilPanel.getColor();
                weight = edgePencilPanel.getWeight();
                boolean directed = edgePencilPanel.isDirected;
                Edge edge = Lookup.getDefault().lookup(GraphElementsController.class).createEdge(sourceNode, n, directed);
                edge.setColor(color);
                sourceNode = null;
                edgePencilPanel.setStatus(NbBundle.getMessage(EdgePencil.class, "EdgePencil.status1"));
            }
        }
    };
    listeners[1] = new MouseClickEventListener() {

        @Override
        public void mouseClick(int[] positionViewport, float[] position3d) {
            if (sourceNode != null) {
                // Cancel
                edgePencilPanel.setStatus(NbBundle.getMessage(EdgePencil.class, "EdgePencil.status1"));
                sourceNode = null;
            }
        }
    };
    return listeners;
}
Also used : MouseClickEventListener(org.gephi.tools.spi.MouseClickEventListener) Node(org.gephi.graph.api.Node) NodeClickEventListener(org.gephi.tools.spi.NodeClickEventListener) Edge(org.gephi.graph.api.Edge)

Example 57 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class ModularityNGTest method testCyclicWithWeightsGraphModularity.

@Test
public void testCyclicWithWeightsGraphModularity() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    Node node1 = graphModel.factory().newNode("0");
    Node node2 = graphModel.factory().newNode("1");
    Node node3 = graphModel.factory().newNode("2");
    Node node4 = graphModel.factory().newNode("3");
    Node node5 = graphModel.factory().newNode("4");
    Node node6 = graphModel.factory().newNode("5");
    Node node7 = graphModel.factory().newNode("6");
    Node node8 = graphModel.factory().newNode("7");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    undirectedGraph.addNode(node4);
    undirectedGraph.addNode(node5);
    undirectedGraph.addNode(node6);
    undirectedGraph.addNode(node7);
    undirectedGraph.addNode(node8);
    // Test 3 parallel edges summing weight = 10
    // Related issues ==> #1419 Getting null pointer error when trying to calculate modularity; #1526 NullPointerException on Modularity Statistics with gexf with kind / parallel nodes
    Edge edge12_1 = graphModel.factory().newEdge(node1, node2, 1, 2.f, false);
    Edge edge12_2 = graphModel.factory().newEdge(node1, node2, 2, 5.f, false);
    Edge edge12_3 = graphModel.factory().newEdge(node1, node2, 2, 3.f, false);
    Edge edge23 = graphModel.factory().newEdge(node2, node3, false);
    Edge edge34 = graphModel.factory().newEdge(node3, node4, 0, 10.f, false);
    Edge edge45 = graphModel.factory().newEdge(node4, node5, false);
    Edge edge56 = graphModel.factory().newEdge(node5, node6, 0, 10.f, false);
    Edge edge67 = graphModel.factory().newEdge(node6, node7, false);
    // Test 2 parallel edges summing weight = 10
    Edge edge78_1 = graphModel.factory().newEdge(node7, node8, 0, 5.f, false);
    Edge edge78_2 = graphModel.factory().newEdge(node7, node8, 0, 5.f, false);
    Edge edge81 = graphModel.factory().newEdge(node8, node1, false);
    undirectedGraph.addEdge(edge12_1);
    undirectedGraph.addEdge(edge12_2);
    undirectedGraph.addEdge(edge12_3);
    undirectedGraph.addEdge(edge23);
    undirectedGraph.addEdge(edge34);
    undirectedGraph.addEdge(edge45);
    undirectedGraph.addEdge(edge56);
    undirectedGraph.addEdge(edge67);
    undirectedGraph.addEdge(edge78_1);
    undirectedGraph.addEdge(edge78_2);
    undirectedGraph.addEdge(edge81);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    Modularity mod = new Modularity();
    Modularity.CommunityStructure theStructure = mod.new CommunityStructure(graph);
    int[] comStructure = new int[graph.getNodeCount()];
    HashMap<String, Double> modularityValues = mod.computeModularity(graph, theStructure, comStructure, 1., true, true);
    int class1 = comStructure[0];
    int class2 = comStructure[1];
    int class4 = comStructure[3];
    int class5 = comStructure[4];
    int class7 = comStructure[6];
    int class8 = comStructure[7];
    assertEquals(class1, class2);
    assertEquals(class7, class8);
    assertNotEquals(class4, class5);
}
Also used : Node(org.gephi.graph.api.Node) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 58 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class ActionsToolbar method initContent.

private void initContent() {
    // Center on graph
    final JButton centerOnGraphButton = new JButton();
    centerOnGraphButton.setToolTipText(NbBundle.getMessage(VizBarController.class, "ActionsToolbar.centerOnGraph"));
    centerOnGraphButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/visualization/component/centerOnGraph.png")));
    centerOnGraphButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            VizController.getInstance().getGraphIO().centerOnGraph();
        }
    });
    add(centerOnGraphButton);
    // Center on zero
    /*final JButton centerOnZeroButton = new JButton();
         centerOnZeroButton.setToolTipText(NbBundle.getMessage(VizBarController.class, "ActionsToolbar.centerOnZero"));
         centerOnZeroButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/visualization/component/centerOnZero.png")));
         centerOnZeroButton.addActionListener(new ActionListener() {

         public void actionPerformed(ActionEvent e) {
         VizController.getInstance().getGraphIO().centerOnZero();
         }
         });
         add(centerOnZeroButton);*/
    // Reset colors
    final JColorButton resetColorButton = new JColorButton(color, true, false);
    resetColorButton.setToolTipText(NbBundle.getMessage(ActionsToolbar.class, "ActionsToolbar.resetColors"));
    resetColorButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            color = resetColorButton.getColor();
            GraphController gc = Lookup.getDefault().lookup(GraphController.class);
            GraphModel gm = gc.getGraphModel();
            Graph graph = gm.getGraphVisible();
            for (Node n : graph.getNodes()) {
                n.setR(color.getRed() / 255f);
                n.setG(color.getGreen() / 255f);
                n.setB(color.getBlue() / 255f);
                n.setAlpha(1f);
            }
            for (Edge e : graph.getEdges()) {
                e.setR(color.getRed() / 255f);
                e.setG(color.getGreen() / 255f);
                e.setB(color.getBlue() / 255f);
                e.setAlpha(0f);
            }
        }
    });
    add(resetColorButton);
    // Reset sizes
    // Reset label colors
    final JButton resetLabelColorButton = new JButton();
    resetLabelColorButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/visualization/component/resetLabelColor.png")));
    resetLabelColorButton.setToolTipText(NbBundle.getMessage(ActionsToolbar.class, "ActionsToolbar.resetLabelColors"));
    resetLabelColorButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            GraphController gc = Lookup.getDefault().lookup(GraphController.class);
            GraphModel gm = gc.getGraphModel();
            Graph graph = gm.getGraphVisible();
            for (Node n : graph.getNodes().toArray()) {
                n.getTextProperties().setColor(Color.BLACK);
                n.getTextProperties().setAlpha(0f);
            }
            for (Edge e : graph.getEdges().toArray()) {
                e.getTextProperties().setColor(Color.BLACK);
                e.getTextProperties().setAlpha(0f);
            }
        }
    });
    add(resetLabelColorButton);
    // Reset label visible
    final JButton resetLabelVisibleButton = new JButton();
    resetLabelVisibleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/visualization/component/resetLabelVisible.png")));
    resetLabelVisibleButton.setToolTipText(NbBundle.getMessage(ActionsToolbar.class, "ActionsToolbar.resetLabelVisible"));
    resetLabelVisibleButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            GraphController gc = Lookup.getDefault().lookup(GraphController.class);
            GraphModel gm = gc.getGraphModel();
            Graph graph = gm.getGraphVisible();
            for (Node n : graph.getNodes()) {
                n.getTextProperties().setVisible(true);
            }
            for (Edge e : graph.getEdges()) {
                e.getTextProperties().setVisible(true);
            }
        }
    });
    add(resetLabelVisibleButton);
}
Also used : ActionEvent(java.awt.event.ActionEvent) Node(org.gephi.graph.api.Node) JButton(javax.swing.JButton) JColorButton(org.gephi.ui.components.JColorButton) Graph(org.gephi.graph.api.Graph) ActionListener(java.awt.event.ActionListener) GraphModel(org.gephi.graph.api.GraphModel) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController)

Example 59 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class EditEdges method prepareEdgesProperties.

/**
 * Prepare set of editable properties of the node(s): size, position.
 *
 * @return Set of these properties
 */
private Sheet.Set prepareEdgesProperties() {
    try {
        if (multipleEdges) {
            Sheet.Set set = new Sheet.Set();
            set.setName("properties");
            set.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.properties.text.multiple"));
            Property p;
            // Color:
            MultipleEdgesPropertiesWrapper edgesWrapper = new MultipleEdgesPropertiesWrapper(edges);
            p = new PropertySupport.Reflection(edgesWrapper, Color.class, "getEdgesColor", "setEdgesColor");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.color.text"));
            p.setName("color");
            set.put(p);
            // Label color:
            p = new PropertySupport.Reflection(edgesWrapper, Color.class, "getLabelsColor", "setLabelsColor");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.color.text"));
            p.setName("labelcolor");
            set.put(p);
            // Label size:
            p = new PropertySupport.Reflection(edgesWrapper, Float.class, "getLabelsSize", "setLabelsSize");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.size.text"));
            p.setName("labelsize");
            set.put(p);
            // Label visible:
            p = new PropertySupport.Reflection(edgesWrapper, Boolean.class, "getLabelsVisible", "setLabelsVisible");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.visible.text"));
            p.setName("labelvisible");
            set.put(p);
            return set;
        } else {
            Edge edge = edges[0];
            Sheet.Set set = new Sheet.Set();
            set.setName("properties");
            set.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.properties.text", edge.getLabel()));
            Property p;
            // Color:
            SingleEdgePropertiesWrapper edgeWrapper = new SingleEdgePropertiesWrapper(edge);
            p = new PropertySupport.Reflection(edgeWrapper, Color.class, "getEdgeColor", "setEdgeColor");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.color.text"));
            p.setName("color");
            set.put(p);
            TextProperties textProperties = edge.getTextProperties();
            // Label size:
            p = new PropertySupport.Reflection(textProperties, Float.TYPE, "getSize", "setSize");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.size.text"));
            p.setName("labelsize");
            set.put(p);
            // Label color:
            p = new PropertySupport.Reflection(edgeWrapper, Color.class, "getLabelColor", "setLabelColor");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.color.text"));
            p.setName("labelcolor");
            set.put(p);
            // Label visible:
            p = new PropertySupport.Reflection(textProperties, Boolean.TYPE, "isVisible", "setVisible");
            p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.visible.text"));
            p.setName("labelvisible");
            set.put(p);
            return set;
        }
    } catch (Exception ex) {
        Exceptions.printStackTrace(ex);
        return null;
    }
}
Also used : Color(java.awt.Color) Sheet(org.openide.nodes.Sheet) PropertySupport(org.openide.nodes.PropertySupport) Edge(org.gephi.graph.api.Edge) TextProperties(org.gephi.graph.api.TextProperties)

Example 60 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class ConnectedComponentsNGTest method testSpecial1UndirectedGraphConnectedComponents.

@Test
public void testSpecial1UndirectedGraphConnectedComponents() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    Node node1 = graphModel.factory().newNode("0");
    Node node2 = graphModel.factory().newNode("1");
    Node node3 = graphModel.factory().newNode("2");
    Node node4 = graphModel.factory().newNode("3");
    Node node5 = graphModel.factory().newNode("4");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    undirectedGraph.addNode(node4);
    undirectedGraph.addNode(node5);
    Edge edge12 = graphModel.factory().newEdge(node1, node2, false);
    Edge edge14 = graphModel.factory().newEdge(node1, node4, false);
    Edge edge23 = graphModel.factory().newEdge(node2, node3, false);
    Edge edge25 = graphModel.factory().newEdge(node2, node5, false);
    Edge edge35 = graphModel.factory().newEdge(node3, node5, false);
    Edge edge43 = graphModel.factory().newEdge(node4, node3, false);
    Edge edge51 = graphModel.factory().newEdge(node5, node1, false);
    Edge edge54 = graphModel.factory().newEdge(node5, node4, false);
    undirectedGraph.addEdge(edge12);
    undirectedGraph.addEdge(edge14);
    undirectedGraph.addEdge(edge23);
    undirectedGraph.addEdge(edge25);
    undirectedGraph.addEdge(edge35);
    undirectedGraph.addEdge(edge43);
    undirectedGraph.addEdge(edge51);
    undirectedGraph.addEdge(edge54);
    UndirectedGraph graph = graphModel.getUndirectedGraph();
    ConnectedComponents c = new ConnectedComponents();
    HashMap<Node, Integer> indices = c.createIndicesMap(graph);
    LinkedList<LinkedList<Node>> components = c.computeWeaklyConnectedComponents(graph, indices);
    assertEquals(components.size(), 1);
}
Also used : GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) LinkedList(java.util.LinkedList) Test(org.testng.annotations.Test)

Aggregations

Edge (org.gephi.graph.api.Edge)151 Node (org.gephi.graph.api.Node)122 GraphModel (org.gephi.graph.api.GraphModel)84 GraphController (org.gephi.graph.api.GraphController)79 Test (org.testng.annotations.Test)67 UndirectedGraph (org.gephi.graph.api.UndirectedGraph)46 DirectedGraph (org.gephi.graph.api.DirectedGraph)44 Graph (org.gephi.graph.api.Graph)31 HashMap (java.util.HashMap)26 EdgeIterable (org.gephi.graph.api.EdgeIterable)18 LinkedList (java.util.LinkedList)13 Column (org.gephi.graph.api.Column)11 NodeIterable (org.gephi.graph.api.NodeIterable)9 ArrayList (java.util.ArrayList)8 Table (org.gephi.graph.api.Table)6 GraphView (org.gephi.graph.api.GraphView)5 HashSet (java.util.HashSet)4 Interval (org.gephi.graph.api.Interval)4 TimeFormat (org.gephi.graph.api.TimeFormat)4 DateTimeZone (org.joda.time.DateTimeZone)4