martes, 25 de enero de 2011

Dos nuevos componentes!

Bueno, siguiendo con el desarrollo de JPComponents, he creado dos nuevos componentes, ambos realizan la misma funcionalidad, es una especie de suggest, que a medida que el usuario va tipeando caracteres los componentes van sugiriendo palabras que están guardadas en el diccionario. Es un inicio, la idea es que varios componentes que permiten ingresar texto tengan esta funcionalidad.

Comenzaremos hablando del diccionario:

La clase  com.jpcomponents.base.SuggestBase sirve de diccionario para los componentes que implementan la funcionalidad suggest.

Básicamente guarda los strings dentro de listas, clasificadas por la primera letra del string, es como un diccionario común y corriente, donde la clave es la primera letra del string.

Por ahora no es necesario saber qué hace exactamente, ya que nos centraremos en los componentes JPSuggestComboBox y JPSuggestTextField.


Los Componentes:

Ambos componentes tienen las siguientes propiedades, accesibles mediante getters y setters:
  • minLengthToSearch: es el tamaño mínimo del string que se ingresa para comenzar a sugerir resultados
  • maxSuggestLength: es el máximo de resultados que muestra el suggest, ignorando el resto de los resultados, aunque coincidan con el patrón, esto es útil cuando existen muchos resultados para un patrón determinado.
  • suggestBase: obtiene o setea el diccionario sobre el cual el componente busca resultados
Metodos:
Estos componentes tienen los siguientes métodos:
  • void addString(String value):  Agrega un string al diccionario
  • void addString(List<String> values): Agrega la coleccion al diccionario


Eventos:
Ambos componentes lanzan dos eventos, uno es lanzado cuando el diccionario no contiene la clave que se está buscando, esto es útil por ejemplo cuando se traen los datos desde la base de datos, si no existe la clave, entonces podemos ir a buscar los resultados a la base de datos y agregarlos al diccionario con los métodos que ya hemos hablado.
El otro es lanzado cuando, a pesar de existir la clave que coincide con el patrón, no se han encontrado resultados que coincidan con el patrón, por ejemplo, tipeamos "jpcomponents", el diccionario contiene la clave "j", pero no contiene el valor "jpcomponents".


Como Usarlos?

Daré un ejemplo con el JPSugestComboBox:
Para instanciarlos, simplemente basta con la siguiente sentencia:


JPSuggestComboBox jpsugg= new JPSuggestComboBox();


si queremos agregar datos al suggest, suponemos que tenemos una lista de strings llamada datos, que queremos agregar al diccionario


jpsugg.addString(datos);


para escuchar los eventos
  jpsugg.addSuggestListener(new ISuggestListener() {

            public void onNotKeyIsFind(String key) {
                  //hacer algo si no se encontró la clave
            }

            public void onNotDataIsFind(String query) {
                //hacer algo si no se encontraron resultados
           }
});


Descargas:
Puedes descargar la nueva versión desde aquí

Bueno es un poco básico el tuto, así que les recomiendo que los prueben, y me comenten!

Saludos

No hay comentarios:

Publicar un comentario