public void ctrl_z(){
		if(id_hist >= 0 ){
			Action a = actions.get(id_hist);
			switch(actions.get(id_hist).getNum()){
			case 1:
				delete(actions.get(id_hist).getNode());
				break;
			case 2:
				coord.add(actions.get(id_hist).getNode());
				trait_origin = a.getNode();
				Iterator<Node> it_node = a.getNode().transitions.iterator();
				Node s = null;
				while(it_node.hasNext()){
					s = it_node.next();
					addTrace(s);
				}
				break;
			case 3:
				delTrace(actions.get(id_hist).getTrace());
				break;
			case 4:
				Trace t = actions.get(id_hist).getTrace(); 
				trait_origin = t.getN1();
				addTrace(t.getN2());
				t.getN1().add_transition(t.getN2());
				t.getN2().add_transition(t.getN1());
				break;
			case 5:
				a.getNode().setStart(a.getOldStart());
				a.getNode().setEnd(a.getOldEnd());
				a.getNode().setName(a.getOldName());
				break;
			case 6:
				actions.get(id_hist).getTrace().setName(actions.get(id_hist).getOldName());
				break;
			case 7:
				trait_origin = a.getNode();
				Move(a.getOldX(), a.getOldY());
				repaint();
				break;
			default:
				//System.out.println("error");
			}
			id_hist--;
		}
	}