public void compose(Node n){
		
		node = n;
		
		methodsAndDescriptions.clear();
		this.removeAll();
		
		this.add(info);

		if(Configuration.dimensions == 3) {
			if(parent.getGraphPanel().containsNodeToDrawCoordinateCube(n)) {
				this.add(hideCoordinateCube);
			} else {
				this.add(showCoordinateCube);
			}
		}
		
		this.add(delete);
		
		this.addSeparator();
		
		JMenuItem dummy = new JMenuItem("No Methods specified");
		dummy.setEnabled(false);
		
		boolean customMethods = false;
		
		Method[] methods = node.getClass().getMethods();
		for(int i = 0; i < methods.length; i++){
			Method method = methods[i];
			Node.NodePopupMethod info = method.getAnnotation(Node.NodePopupMethod.class);
			if(info != null){
				String text = n.includeMethodInPopupMenu(method, info.menuText());
				if(text == null) { // the user dismissed this menu item
					continue;
				}
				JMenuItem item = new JMenuItem(text);
				item.addActionListener(this); // BUGFIX for 0.75.0 -> 0.75.1 : this line was missing
				this.add(item);
				customMethods = true;
				methodsAndDescriptions.put(text, method); // BUGFIX: 1st parameter was info.menuText() 
			}
		}
		
		if(!customMethods){
			this.add(dummy);
		}
		
		this.addSeparator();
		
		this.add(zoomIn);
		this.add(zoomOut);
	}