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;
}
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);
}
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);
}
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;
}
}
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);
}
Aggregations