コード例 #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;
  }
コード例 #2
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;
        }