+/**
+ * Clase principal de esta aplicación.
+ * Esta clase se encargada de obtener e
+ * inicializar todos los elementos de la ventana
+ * principal, ya sean botones, cuadros de diálogo, barras
+ * de herramientas, etc.
+ *
+ * Para cada botón referenciado por esta clase, es
+ * conectado a ellos una señal, que será el método que
+ * deben invocar al ser presionados.
+ *
+ * Uno de los métodos mas importantes de esta clase es
+ * on_item_drop_drag_recived() que es la encargada de
+ * crear un nuevo elemento si es arrastrado desde la barra
+ * de elementos, o de moverlo dentro del
+ * \ref WorkPlace "área de trabajo" si este ya estaba creado.
+ *
+ * Para facilitar el diseño y disminuir la complejidad, la
+ * grilla fue dividida en sectores de 32x32 píxels, lo que
+ * permite que el usuario no tenga que ser muy preciso a
+ * la hora de soltar un item en el
+ * \ref WorkPlace "área de trabajo".
+ *
+ * Cada nuevo elemento creado es almacenado en una
+ * \ref listaItems "lista de elementos de transporte o almacenamiento de fluido",
+ * o en una \ref lista_logic_items "lista de elementos lógicos".
+ *
+ * Otra de las funciones principales es check_connection()
+ * que recorre todos los items de ambas listas y verifica
+ * que se haya formado en el momento del diseño un
+ * circuito posible.
+ *
+ * Esta clase contiene los métodos necesarios para guardar
+ * y cargar un archivo XML cuyo formato se explica más adelante.
+ */