visjs-addon
visjs addon (network)
*Add-on still support only for Network-diagram
Vis.js is a dynamic, browser based visualization library. The library is designed to be easy to use, to handle large amounts of dynamic data, and to enable manipulation of and interaction with the data. The library consists of the components DataSet, Timeline, Network, Graph2d, and Graph3d.
The vis.js library is developed by Almende B.V, as part of CHAP. Vis.js runs fine on Chrome, Firefox, Opera, Safari, IE9+, and most mobile browsers (with full touch support).
http://visjs.org/ contains documentation, downloads and live examples of vis.js. The sourcecode of vis.js is available at Github. For questions, issues, and suggestions please use the issues section of the Github project.
my skype: sameeraroshan.uom
Sample code
public class BasicUsageView extends HorizontalLayout implements View { NetworkDiagram networkDiagram; Options options; @Override public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) { setSizeFull(); options = new Options(); networkDiagram = new NetworkDiagram(options); networkDiagram.setSizeFull(); addComponent(networkDiagram); //crete nodes Node node1 = new Node(1,"Node 1"); Node node2 = new Node(2,"Node 2"); Node node3 = new Node(3,"Node 3"); Node node4 = new Node(4,"Node 4"); Node node5 = new Node(5,"Node 5"); Node node6 = new Node(6,"Node 6"); //create edges Edge edge1 = new Edge(node1.getId(),node2.getId()); Edge edge2 = new Edge(node1.getId(),node3.getId()); Edge edge3 = new Edge(node2.getId(),node5.getId()); Edge edge4 = new Edge(node2.getId(),node4.getId()); networkDiagram.addNode(node1); networkDiagram.addNode(node2,node3,node4,node5,node6); networkDiagram.addEdge(edge1,edge2,edge3,edge4); } }
public class ShapesView extends HorizontalLayout implements View { NetworkDiagram networkDiagram; Options options; @Override public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) { setSizeFull(); options = new Options(); networkDiagram = new NetworkDiagram(options); networkDiagram.setSizeFull(); addComponent(networkDiagram); Node node1 = new Node(1, "circle", Node.Shape.circle, "group_x"); Node node2 = new Node(2, "ellipse", Node.Shape.ellipse, "group_x"); Node node3 = new Node(3, "database", Node.Shape.database, "group_x"); Node node4 = new Node(4, "box", Node.Shape.box, "group_x"); Node node5 = new Node(5, "shapes\nand\nsizes", Node.Shape.box, "group_main"); Edge edge1 = new Edge(3, 1, Edge.Style.arrow); Edge edge2 = new Edge(1, 4, Edge.Style.dashLine); Edge edge3 = new Edge(1, 2, Edge.Style.arrowCenter); networkDiagram.addNode(node1, node2, node3, node4, node5); networkDiagram.addEdge(edge1, edge2, edge3); int id = 6; int mainId = 5; for (int size = 1; size < 4; size++) { int groupId = id; Node node = new Node(id, "size " + size, Node.Shape.box, "group" + size); node.setMass(size); networkDiagram.addNode(node); networkDiagram.addEdge(new Edge(mainId, id, new Color("gray"), size)); id++; for (Node.Shape shape : Node.Shape.values()) { if (shape != Node.Shape.image) { node = new Node(id, shape.toString(), shape, "group" + size); networkDiagram.addNode(node); networkDiagram.addEdge(new Edge(groupId, id, new Color("red"), size)); id++; } } } } }
package visjsDemo.views; import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener; import com.vaadin.ui.*; import org.vaadin.visjs.networkDiagram.Edge; import org.vaadin.visjs.networkDiagram.NetworkDiagram; import org.vaadin.visjs.networkDiagram.Node; import org.vaadin.visjs.networkDiagram.options.Options; import java.util.ArrayList; import java.util.List; import java.util.Random; public class RandomNodesView extends VerticalLayout implements View { NetworkDiagram networkDiagram; Options options; Button button; Label label; TextField textField; HorizontalLayout horizontalLayout; List<Node> nodeList; List<Edge> edgeList; Random random; @Override public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) { setSizeFull(); horizontalLayout = new HorizontalLayout(); random = new Random(); edgeList = new ArrayList<>(); nodeList = new ArrayList<>(); options = new Options(); button = new Button("Go"); label = new Label("Number of nodes:"); textField = new TextField(); horizontalLayout.addComponent(label); horizontalLayout.addComponent(textField); horizontalLayout.addComponent(button); addComponent(horizontalLayout); setExpandRatio(horizontalLayout, 1); networkDiagram = new NetworkDiagram(options); networkDiagram.setSizeFull(); addComponent(networkDiagram); setExpandRatio(networkDiagram, 20); button.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { String value = textField.getValue(); if (value != null) { int nodesNumber = 0; try { nodesNumber = Integer.parseInt(textField.getValue()); } catch (Exception e) { Notification.show("enter number"); return; } nodeList.clear(); edgeList.clear(); for (int i = 0; i < nodesNumber; i++) { nodeList.add(new Node(i, "node:" + i)); int to = random.nextInt(nodesNumber); edgeList.add(new Edge(i, to)); } networkDiagram.clear(); networkDiagram.updateNodes(nodeList); networkDiagram.updateEdges(edgeList); } else { Notification.show("enter number"); } } }); } }
Links
Compatibility
Was this helpful? Need more help?
Leave a comment or a question below. You can also join
the chat on Discord or
ask questions on StackOverflow.
Version
Released Network Diagram for vis js 4+
Docs Avilable http://visjs.org/docs/network/
- Released
- 2016-02-28
- Maturity
- STABLE
- License
- Apache License 2.0
Compatibility
- Framework
- Vaadin 7.4+
- Vaadin 7.0+ in 1.0.0.4
- Browser
- Firefox
- Opera
- Safari
- Google Chrome
- Internet Explorer
- iOS Browser
- Android Browser
- Internet Explorer
- Internet Explorer
- Windows Phone