Beispiel #1
0
  /**
   * Busca un nodo dentro del arbol
   *
   * @param raiz Nodo raíz de la consulta
   * @param codigo Código buscado
   * @param nivel Nivel de profundidad del árbol
   * @return Nodo encontrado, null si no lo encuentra
   */
  private DefaultMutableTreeNode buscarNodo(DefaultMutableTreeNode raiz, String codigo, int nivel) {

    DefaultMutableTreeNode nodo = null;

    String auxCodigo = codigoBuscar(codigo, nivel);

    if (raiz != null) {
      if (auxCodigo.compareTo(((UnidadUserObject) raiz.getUserObject()).getUnidad().getCodigo())
          == 0) {
        return raiz;
      } else {
        for (int i = 0; i < raiz.getChildCount(); i++) {
          Unidad comparacion =
              ((UnidadUserObject) ((DefaultMutableTreeNode) raiz.getChildAt(i)).getUserObject())
                  .getUnidad();
          if (auxCodigo.compareTo(comparacion.getCodigo()) == 0) {
            nodo = (DefaultMutableTreeNode) raiz.getChildAt(i);
            break;
          }
        }

        if (nodo != null) {
          return buscarNodo(nodo, codigo, nivel + 1);
        }
      }
    }

    return nodo;
  }
Beispiel #2
0
  /**
   * Interfaz que inicia la construcción del organigrama.
   *
   * @param auxUnidades Lista de unidades extraidan de la base de datos
   */
  public void armarModelo(List<Unidad> auxUnidades) {

    if (auxUnidades != null && auxUnidades.size() != 0) {

      unidades = new ArrayList<Unidad>();
      unidades.addAll(auxUnidades);

      Unidad universidad = new Unidad("0", "Universidad Nacional", "UNA");
      universidad.setTipo(0);
      DefaultMutableTreeNode raiz = agregarNodo(null, universidad);

      separarUnidades(raiz, raiz);

      model = new DefaultTreeModel(raiz);
    }
  }
Beispiel #3
0
        public int compare(Unidad und1, Unidad und2) {
          int resultado = -1;
          String[] codigosUnidad1 = und1.getCodigo().split("\\.");
          String[] codigosUnidad2 = und2.getCodigo().split("\\.");
          int parte1;
          int parte2;
          for (int i = 0; i < codigosUnidad1.length && i < codigosUnidad2.length; i++) {
            parte1 = Integer.valueOf(codigosUnidad1[i]);
            parte2 = Integer.valueOf(codigosUnidad2[i]);

            resultado = parte1 == parte2 ? 0 : parte1 < parte2 ? -1 : 1;
            if (resultado != 0) {
              return resultado;
            }
          }

          return resultado;
        }
Beispiel #4
0
  /**
   * Agrega una nueva unidad al árbol, como hijo de un nodo padre
   *
   * @param padre Padre de la nueva unidad
   * @param nuevaUnidad Nueva unidad
   * @return El nodo con la unidad dentro, ya asignado al padre
   */
  public DefaultMutableTreeNode agregarNodo(DefaultMutableTreeNode padre, Unidad nuevaUnidad) {

    DefaultMutableTreeNode node = new DefaultMutableTreeNode();
    UnidadUserObject userObject = new UnidadUserObject(node);
    node.setUserObject(userObject);
    userObject.setUnidad(nuevaUnidad);

    node.setAllowsChildren(true);
    userObject.setText(nuevaUnidad.getNombre());
    userObject.setLeaf(false);

    if (nuevaUnidad.getTipo() == 0) {
      userObject.setExpanded(true);
    } else {
      userObject.setExpanded(false);
    }

    if (padre != null) {
      padre.add(node);
    }

    return node;
  }
Beispiel #5
0
  /**
   * Recolecta los datos para asignarlos a una unidad, que va a ser la que se ingresará a la base de
   * datos.
   *
   * @return Nueva unidad formada con los datos de los campos en la página.
   */
  public Unidad crearUnidad() {
    String codigo = "";

    if (((UnidadUserObject) unidadSeleccionada.getUserObject())
            .getUnidad()
            .getCodigo()
            .compareTo("0")
        != 0) {
      codigo +=
          ((UnidadUserObject) unidadSeleccionada.getUserObject()).getUnidad().getCodigo() + ".";
    }

    if (unidadSeleccionada.getChildCount() > 0) {
      UnidadUserObject nuevo =
          (UnidadUserObject)
              ((DefaultMutableTreeNode)
                      unidadSeleccionada.getChildAt(unidadSeleccionada.getChildCount() - 1))
                  .getUserObject();
      String cod = nuevo.getUnidad().getCodigo();
      cod = getCodigoUltimaUnidad();
      if (cod.length() > 1) {
        cod = cod.substring(cod.length() - 2, cod.length());
        cod = cod.replace(".", "");
      }

      codigo += Integer.toString(Integer.parseInt(cod) + 1);
    } else {
      codigo += "1";
    }

    Unidad unidad = new Unidad(codigo, nuevaUnidad, nuevoAcron);
    unidad.setTipo(
        ((UnidadUserObject) unidadSeleccionada.getUserObject()).getUnidad().getTipo() + 1);

    return unidad;
  }