private void stopEditing(boolean cancel) {
		if (editingTable == null)
			return; // Nothing to do.
		try {
			editingTable.getCellEditor().stopCellEditing();
		} catch (NullPointerException e) {

		} catch (IllegalArgumentException e) {
			System.err.println("Odd 'focusCycleRoot' exception thrown "
					+ "from the depths of Java again.");
		}
		if (!cancel) {
			TableModel oldModel = createModel(transition);
			Transition t = modifyTransition(transition, editingTable.getModel());
			if (t != null) {
				if (isNew) {
					getParent().getDrawer().getAutomaton().addTransition(t);
				} else{
					getParent().getDrawer().getAutomaton().replaceTransition(
							transition, t);
				}
			}
		}
		getParent().remove(editingTable);
		getParent().validate();
		getParent().repaint();
		editingTable = null;
		getParent().requestFocus();
	}