/** * 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; }
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; }