public void initialize() {
		try {
			InputStream in = new FileInputStream(file);
			GraphMLReader reader = new GraphMLReader(in, "graph", graph);
			reader.load();
			System.err.println("Read graph '" + graph.getName() + "' with " + graph.getVerticesCount() + " vertices and " + graph.getEdgesCount() + " edges.");
			
			Random random = new Random();
			Table vertexTable = graph.getVertexTable();
			StringColumn idColumn = (StringColumn) vertexTable.getColumn("id");
			for (int i = 0; i < vertexTable.getRowCount(); i++) { 
				float x = random.nextInt(nodeLinkCanvas.getWidth());
	            float y = random.nextInt(nodeLinkCanvas.getHeight());
				nodeLinkCanvas.addNode(idColumn.getStringValueAt(i), x, y);
			}
			
			Table edgeTable = graph.getEdgeTable();
			IntColumn fromColumn = (IntColumn) edgeTable.getColumn("from");
			IntColumn toColumn = (IntColumn) edgeTable.getColumn("to");
			for (int i = 0; i < edgeTable.getRowCount(); i++) {
				int from = fromColumn.getIntValueAt(i); 
				int to = toColumn.getIntValueAt(i);
				nodeLinkCanvas.addEdge(from, to);
			}

		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}