public void performMethod() {
		readSelection();
		try{
			DistributionModel distribution = Model.getDistributionModelInstance(distributionSel);
			distribution.setParamString(distributionParamDefString);
			distribution.setNumberOfNodes(numberOfNodes);
			distribution.initialize();
			
			addedNodes = new Vector<Node>();
			
			for(int i = 0; i < numberOfNodes; i++){
				pf.setPercentage(100.0d * ((double)i/(double)numberOfNodes));
				
				Node node = generateNode(distribution.getNextPosition());
				
				if(canceled){
					for(Node n:addedNodes){
						Runtime.nodes.removeNode(n);
						i--;
						pf.setPercentage(100.0d * ((double)i/(double)numberOfNodes));
					}
					pf.finish();
					addedNodes.clear();
					return;
				}

				node.finishInitializationWithDefaultModels(true);
				addedNodes.add(node);
			}
		} catch(WrongConfigurationException e){
			Main.minorError("There was an error while generating the nodes.\n" + e.getMessage());
		}
		pf.finish();
		Tools.getGraphPanel().forceDrawInNextPaint();
		Tools.getGraphPanel().repaint();
		this.setVisible(false);
	}