Author Topic: busqueda con javahelp  (Read 17238 times)

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
busqueda con javahelp
« on: Mayo 22, 2008, 06:47:15 am »
Saludos compañeros, estoy realizando la ayuda de la aplicacion con javahelp. Y me dijeron que es un motor de busqueda tambien. Pero al ejecutar la ayuda, solo me sale un arbol a la izquierda, en forma de menu, y los contenidos van en un frame a la izquierda.
Pero quiero ponerle una busqueda por palabras, que pense que venia con el javahelp.

Como podria conseguir ese motor de busqueda ???

Muchas gracias.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: busqueda con javahelp
« Reply #1 on: Mayo 22, 2008, 11:17:38 am »
Hola:

En el fichero de "help set" se define la ventana de ayuda y las pestañas que lleva. Debes decir ahí que quieres una pestaña para la búsqueda.

Después, una vez que tengas la ayuda hecha, debes ejecutar un comando para que se genere una pequeña base de datos que usará el motor de búsqueda.

Tienes los detalles en este enlace sobre javahelp.

Se bueno.

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #2 on: Mayo 23, 2008, 04:36:06 pm »
1- Tengo el siguiente fichero helpset configurado (lo pongo adjunto), pero no me aparece ninguna pestaña de indice ni de busqueda, solo la tabla de contenidos. A que se puede deber ???

2- Y tengo el jh2.0 en un directorio, ejecuto el jhindexer pero no me aparece ningun directorio con la base de datos (el que llama JavaHelpSearch).

3- En el enlace que me pusiste, en lo de busqueda, pone:
$ cd path_proyecto/ayuda
$ java -jar path_java_help/jh2.0/javahelp/bin/jhindexer.jar .

esto en windows, que seria simplemente ejecutar el jhindexer desde el directorio donde tenga instalado el jh2.0 ???

4- En el supuesto de que me la generase bien la base de datos, me la pondria en un directorio, pero como podria hacer para poner ese directorio en mi directorio de la aplicacion de manera relativa ???

Podriais ayudarme con estas dudas ???
Muchas gracias por la ayuda.

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #3 on: Mayo 23, 2008, 05:13:35 pm »
Ahora si he conseguido que me aparezcan las otras dos pestañas (al reiniciar el ordenador). Pero sigo teniendo algunas dudas:

1- No me funciona la opción de búsqueda.

2- En la tabla de contenidos y en el indice que se suele poner los mismos contenidos ??? es que no le encuentro la diferencia, salvo que en el indice te encuentra lo que tu quieras.

3- Y tengo el jh2.0 en un directorio, ejecuto el jhindexer pero no me aparece ningun directorio con la base de datos (el que llama JavaHelpSearch).

3- En el enlace que me pusiste, en lo de busqueda, pone:
$ cd path_proyecto/ayuda
$ java -jar path_java_help/jh2.0/javahelp/bin/jhindexer.jar .

esto en windows, que seria simplemente ejecutar el jhindexer desde el directorio donde tenga instalado el jh2.0, y con eso ya aparece el JavahelpSearch ?

4- En el supuesto de que me la generase bien la base de datos, me la pondria en un directorio, pero como podria hacer para poner ese directorio en mi directorio de la aplicacion de manera relativa ?

Muchas gracias.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: busqueda con javahelp
« Reply #4 on: Mayo 23, 2008, 05:55:19 pm »
Hola:

jhindexer.jar lo ejecutas en el directorio que se indica. Lo mejor para asegurarse en windows es con una ventana de comandos de ms-dos.

C:\> cd path_proyecto\ayuda
C:\> java -jar path_java_help/jh2.0/javahelp/bin/jhindexer.jar .

fíjate en el punto final. No puedes ejecutarlo haciendo doble click sobre él.

Eso genera la base de datos de la ayuda. Luego, en tu aplicación no dees ocuparte de nada, simplemente lleva todo el directorio ayuda con todo su contenido junto con tu aplicación.

La diferencia entre índice y tabla de contenidos es que habitualmente la tabla de contenidos es en forma de árbol y capítulos, mientras que el índice son los temas por orden alfabético. Eres tú el que tiene que decidir si quiere las dos cosas y cómo las pones.

Se bueno.

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #5 on: Mayo 23, 2008, 06:37:54 pm »
Lo de la tabla de contenidos y el indice ya lo tengo un poco mas claro.

Me falta lo de la busqueda, yo todas las pantallas para la ayuda las tengo en:
C:\Documents and Settings\Maga\workspace\Proyecto\src\help\html

y el javahelp, el bin, en:
C:\Documents and Settings\Maga\workspace\Proyecto\src\jh2.0\javahelp\bin

Hago lo que me dices, me pongo en el directorio donde tengo esos ficheros .html de ayuda con:

cd C:\Documents and Settings\Maga\workspace\Proyecto\src\help\html

y se pone en ese directorio, y luego ejecuto:

java -jar C:\Documents and Settings\Maga\workspace\Proyecto\src\jh2.0\javahelp\bin\jhindexer.jar .

y me da el error   " Unable to access jarfile C:\Documents "

Mis dudas son:
1- tengo que poner algo de jh2.0 en el classpath o en el path ???

2-  Ese error a que puede ser ??

Gracias.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: busqueda con javahelp
« Reply #6 on: Mayo 23, 2008, 08:23:20 pm »
Hola:

Tienes que poner todo entre comillas, ya que el directorio Documents and Settings tiene espacios entre medias

java -jar "C:\Documents and Settings\Maga\workspace\Proyecto\src\jh2.0\javahelp\bin\jhindexer.jar" .

Se bueno

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #7 on: Mayo 23, 2008, 08:45:02 pm »
Vale, con lo anterior me genera el fichero JavahelpSearch en el directorio html, pero luego si ejecuto la ayuda, en la busqueda, me da el siguiente error:

Exception while creating engine named com.sun.java.help.search.DefaultSearchEngine for view: javax.help.SearchView@a29c6e
java.lang.reflect.InvocationTargetException

2- Otra duda que tengo, que a lo mejor va en relacion con esto. En el fichero helpset:

   <view>
      <name>Buscar</name>
      <label>Búsqueda</label>
      <type>javax.help.SearchView</type>
      <data engine="com.sun.java.help.search.DefaultSearchEngine"> JavaHelpSearch </data>
   </view>

tengo que el motor esta en el directorio javahelpSearch.

Como indico mi directorio, donde tengo yo ese JavaHelpSearch, y si puede ser, de forma relativa ???

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #8 on: Mayo 26, 2008, 04:46:15 am »
Por favor, ayudadme.

Gracias.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: busqueda con javahelp
« Reply #9 on: Mayo 26, 2008, 05:35:41 am »

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #10 on: Mayo 28, 2008, 05:34:35 pm »
Pero en la instruccion de codigo donde se le indica la base de datos JavaHelpSearch:

<data engine="com.sun.java.help.search.DefaultSearchEngine">
      JavaHelpSearch   </data>

yo en la estructura mia tengo:
una carpeta html, que contiene el principal.hs (el helpset), la tabla de contenidos.xml y el indice.xml y una carpeta de html (que contiene las paginas html y a su vez otra carpeta que la creo el jhindexer llamada JavaHelpSearch con la base de datos).

Que tendria que poner como ruta en lo de       <data engine=" ...">    ? </data>   para que encuentre dicha base de datos ?

Por favor ayudadme. Gracias.






chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: busqueda con javahelp
« Reply #11 on: Mayo 28, 2008, 08:27:29 pm »
Hola:

Supongo que jhindexer/JavaHelpSearch

Se bueno.

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #12 on: Mayo 29, 2008, 06:20:10 am »
Nada, sigue sin funcionarme, me da el error:

Exception while creating engine named com.sun.java.help.search.DefaultSearchEngine for view: javax.help.SearchView@1cc0a7f
java.lang.reflect.InvocationTargetException

...
Caused by: java.security.InvalidParameterException
   at com.sun.java.help.search.DefaultSearchEngine.<init>(DefaultSearchEngine.java:75)


Cual es el fichero que se supone de partida, para poder hacer la ruta relativa ? porque he puesto html/JavaHelpSearch, pero nada.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: busqueda con javahelp
« Reply #13 on: Mayo 29, 2008, 12:12:48 pm »
En teoría el fichero de partida es donde tienes el helpset.

Se bueno.

alemag

  • Sr. Member
  • ****
  • Posts: 289
  • Karma: 0
    • View Profile
Re: busqueda con javahelp
« Reply #14 on: Mayo 29, 2008, 07:03:12 pm »
Bueno, me acaba d ir, aunque tengo otro problema.
Para que me encuentre la base de datos le he puesto "/html/JavaSearch" porque a mi me crea la base de datos en ese directorio, lo que no sabia era lo de las comillas, de momento asi me la localiza bien.

El problema que me queda es el siguiente:

Si meto una cadena para que me la busque en la base de datos, me muestra los resultados, pero si pincho ahi, en el frame de la izquierda, en el de la derecha no me muestra la pagina asociada (aunque resalta los caracteres de la cadena a buscar, pero no es la pagina adecuada). Mando un jpg para que no sea tanto lio.

Como lo puedo solucionar ???

Muchas gracias.

 

ey