public void modificarTarea(Tarea t) {
    try {
      ConexionBaseDatos.actualizarTarea(t);
      for (int i = 0; i < arbolTabla.tareas.length; i++)
        if (t.id == arbolTabla.tareas[i].id) {
          if (arbolTabla.tareas[i].padre != null) {

            if (arbolTabla.tareas[i].padre.id == t.padre.id) {
              int indice = arbolTabla.tareas[i].padre.hijos.indexOf(arbolTabla.tareas[i]);
              arbolTabla.tareas[i].padre.hijos.set(indice, t);
            } else {
              arbolTabla.tareas[i].padre.hijos.remove(arbolTabla.tareas[i]);
              for (Tarea ta : arbolTabla.tareas)
                if (ta.id == t.padre.id) {
                  ta.hijos.add(t);
                  break;
                }
            }
          }
          arbolTabla.tareas[i] = t;
          break;
        }
      refrescarArbolTabla();
    } catch (Exception e) {
      JOptionPane.showMessageDialog(null, "Error de conexión con el servidor");
      System.exit(0);
    }
  }
 /**
  * This method initializes this
  *
  * @return void
  */
 public void init() {
   try {
     ConexionBaseDatos.SERVIDOR = getCodeBase().toString();
     integrantes = ConexionBaseDatos.darIntegrantes();
     Integrante[] i = new Integrante[integrantes.size()];
     integrantes.toArray(i);
     Arrays.sort(i);
     Collections.sort(integrantes);
     Tarea[] ta = darTareasServidor();
     Tarea raiz = darRaiz(ta);
     arbolTabla = new ArbolTabla(this, new ModeloLogicoArbol(raiz), i, ta);
     this.setSize(800, 600);
     this.setContentPane(getPanelPrincipal());
     arbolTabla.setVisible(true);
     panelPrincipal.setVisible(true);
     this.setVisible(true);
   } catch (Exception e) {
     try {
       JOptionPane.showMessageDialog(null, "Error de conexión con el servidor");
       System.exit(0);
     } catch (Exception e1) {
       System.exit(0);
     }
   }
 }
 public void eliminarTarea(int id) {
   try {
     ConexionBaseDatos.eliminarTarea(id);
     actualizarTareas();
     refrescarArbolTabla();
   } catch (Exception e) {
     JOptionPane.showMessageDialog(null, "Error de conexión con el servidor");
     System.exit(0);
   }
 }
 public Tarea[] darTareasServidor() {
   try {
     ArrayList<Tarea> tareas = ConexionBaseDatos.leerTareasActuales(idProyecto, integrantes);
     Tarea[] ta = new Tarea[tareas.size()];
     tareas.toArray(ta);
     return ta;
   } catch (Exception e) {
     JOptionPane.showMessageDialog(null, "Error de conexión con el servidor");
     System.exit(0);
     return null;
   }
 }
 public void agregarTarea(Tarea t) {
   try {
     t.id = arbolTabla.tareas[arbolTabla.tareas.length - 1].id + 1;
     ConexionBaseDatos.crearTarea(t, idProyecto);
     actualizarTareas();
     ((ModeloLogicoArbol) ((AdaptadorArbolTabla) arbolTabla.getModel()).treeTableModel)
         .cambiarModelo();
   } catch (Exception e) {
     JOptionPane.showMessageDialog(null, "Error de conexión con el servidor");
     System.exit(0);
   }
 }