Herramientas de usuario

Herramientas del sitio


bloque5:documentacion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque5:documentacion [2020/12/20 15:24] – [Instaladores] fernandobloque5:documentacion [2021/03/19 11:04] (actual) – [Manual de Instalación] fernando
Línea 101: Línea 101:
   * ''@return'': indicando el tipo y su funcionalidad, si el método no es void   * ''@return'': indicando el tipo y su funcionalidad, si el método no es void
   * ''@exception ó @throws'': una por tipo de Exception que se puede lanzar, solo si se lanzan (@exception y @throws se pueden usar indistintamente).   * ''@exception ó @throws'': una por tipo de Exception que se puede lanzar, solo si se lanzan (@exception y @throws se pueden usar indistintamente).
 +==== Generar JavaDoc en IntelliJ ====
 +La documentación JavaDoc la podemos almacenar en la ruta que queramos. Puede ser buena idea crear un directorio dentro de nuestro proyecto e indicar que se exporte en esa ubicación.
 +
 +En el menú //Tools// pulsamos sobre la opción "//Generate JavaDoc..//" y se nos abre el siguiente dialogo:
 +{{ :bloque5:javadoc-intellij.png?direct&300 |}}
 +
 +  - Ítem de lista ordenada Indicamos que queremos generar la documentación de todo el proyecto
 +  - Indicamos la ruta donde queremos que se genere
 +  - Podemos indicar también qué miembros de la clase se tendrán en cuenta para generar el javadoc. Lo habitual es generar la documentación de la API pública. Pero desde el punto de vista del desarrollador, puede ser interesante mostrar la documentación de todos los miembros de la clase, independientemente de su visibilidad. Entonces podemos subir el //slider// a **private**, ya que es la visibilidad más restrictiva.
 +
 ==== Diagrama de clases ==== ==== Diagrama de clases ====
 Un diagrama de clases nos ayuda a tener un enfoque de las relaciones entre las clases que conforman un programa. Un diagrama de clases nos ayuda a tener un enfoque de las relaciones entre las clases que conforman un programa.
Línea 110: Línea 120:
  
 No está de más incluirlo en la documentación de nuestra aplicación. No está de más incluirlo en la documentación de nuestra aplicación.
 +
 +  * **Generar Diagrama de clases en IntelliJ**: Necesitamos seleccionar el //package// que contiene las clases de nuestro programa, y pulsar botón derecho sobre la selección -> Diagram -> Show Diagram. Después podemos indicar qué elementos queremos que se muestren en nuestro diagrama, así como si queremos que se muestren las relaciones.
 ===== Manual de Usuario ===== ===== Manual de Usuario =====
  
Línea 171: Línea 183:
 Un generador de instaladores es un programa que contiene una serie de pasos a través de los cuales copia nuestra aplicación y los ficheros necesario dentro de un directorio en nuestro equipo. A estos programas les indicaremos todos los ficheros que queremos copiar en el equipo destino y la ruta donde debe copiarlos. Un generador de instaladores es un programa que contiene una serie de pasos a través de los cuales copia nuestra aplicación y los ficheros necesario dentro de un directorio en nuestro equipo. A estos programas les indicaremos todos los ficheros que queremos copiar en el equipo destino y la ruta donde debe copiarlos.
  
-Además de lo indicado anteriormente, los estos programas nos permiten añadir multitud de opciones: mostrar licencias, crear accesos directos, crear accesos en el menu inicio de Windows, etc. Normalmente estos programas permiten que configuremos todas las opciones que va a tener nuestro isntalador mediante un lenguaje de script. +Además de lo indicado anteriormente, estos programas nos permiten añadir multitud de opciones: mostrar licencias, crear accesos directos, crear accesos en el menu inicio de Windows, etc. Normalmente permiten que configuremos todas las opciones que va a tener nuestro instalador mediante un lenguaje de script. 
  
-Este tipo de programas tienen su propio lenguaje script para definir todas las opciones que queremos que tenga el isntalador. Algunos de ellos nos permiten crear el script mediante un modo asistido (//Wizard//) de forma que nos facilita la creación sin necesidad de conocer su lenguaje de //scripting//+Este tipo de programas tienen su propio lenguaje script para definir todas las opciones que queremos que tenga el instalador. Algunos de ellos nos permiten crear el script mediante un modo asistido (//Wizard//) de forma que nos facilita la creación sin necesidad de conocer su lenguaje de //scripting//
  
 A continuación indicamos dos de los programas más famosos: A continuación indicamos dos de los programas más famosos:
Línea 190: Línea 202:
    
 ==== Manual de Instalación ==== ==== Manual de Instalación ====
-El manual de instalación permite al usuario desplegar la aplicación en el sistema. En algunos casos esta documentación se puede incluir en los diferentes pasos guiados de un isntalador, o sino incluirla en un documento o página web.+El manual de instalación permite al usuario desplegar la aplicación en el sistema. En algunos casos esta documentación se puede incluir en los diferentes pasos guiados de un instalador, o si no incluirla en un documento o página web.
  
-Su finalidad es facilitar al usuario la isntalación, sobre todo en caso de que se permita elegir diferentes parámetros de instalación (crear accesos directos, instalar componentes extra, indicar una ruta de instalación, etc).+Su finalidad es facilitar al usuario la instalación, sobre todo en caso de que se permita elegir diferentes parámetros de instalación (crear accesos directos, instalar componentes extra, indicar una ruta de instalación, etc).
 ==== Licencias ==== ==== Licencias ====
 Todo obra de software debe distribuirse bajo los términos de una licencia de software. __La licencia describe el contrato de uso y posesión entre el desarrollador de software y el usuario__. Principalmente existen las licencias de software privativas y las licencias libres. Ambas clasificaciones tienen diversos matices en cuanto a cuanta libertad tiene el usuario final respecto al uso del software. Todos estos matices vienen recogidos en los diferentes tipos de licencias. Todo obra de software debe distribuirse bajo los términos de una licencia de software. __La licencia describe el contrato de uso y posesión entre el desarrollador de software y el usuario__. Principalmente existen las licencias de software privativas y las licencias libres. Ambas clasificaciones tienen diversos matices en cuanto a cuanta libertad tiene el usuario final respecto al uso del software. Todos estos matices vienen recogidos en los diferentes tipos de licencias.
Línea 213: Línea 225:
 Permite crear una wiki para aportar la documentación. Permite crear una wiki para aportar la documentación.
 ==== BitBucket ==== ==== BitBucket ====
-Permite crear una documentación en la pagina principal del repositorio, o crear una wiki para su documentación.+Permite crear una documentación en la pagina principal del repositorio, o crear una wiki para su documentación. En el enlace siguiente podeis ver un [[https://bitbucket.org/fvaldeon/accesodatosud3/wiki/Home|ejemplo de wiki]] de documentacion en bitbucket.
  
 ===== Acceso a documentación desde la aplicación ===== ===== Acceso a documentación desde la aplicación =====
 La documentación debe distribuirse con nuestra aplicación. Para ello vamos a plantear dos formas de acceso a la documentación: desde la aplicación y desde fuera de la aplicación. La documentación debe distribuirse con nuestra aplicación. Para ello vamos a plantear dos formas de acceso a la documentación: desde la aplicación y desde fuera de la aplicación.
 ==== Documentación en sitio Web ==== ==== Documentación en sitio Web ====
-Podemos mostrar dicha documentación desde alguna ventana de nuestra aplicación, o hacer que nuestra aplicación utilice el navegador web del sistema para acceder al sitio web de la documentación: +Podemos mostrar dicha documentación desde alguna ventana de nuestra aplicación, o hacer que nuestra aplicación utilice el navegador web del sistema para acceder al sitio web de la documentación
-==== Documentación en PDF ====+ 
 +Para lanzar el navegador web por defecto desde nuestra aplicación: 
 +<code java> 
 +// Creo una etiqueta de color azul 
 +JLabel lblFersoft = new JLabel("FerSoft 2020"); 
 +lblFersoft.setForeground(Color.BLUE.darker()); 
 + 
 +// Modifico el puntero del ratón al pasar sobre ella (Hand_cursor) 
 +lblFersoft.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
 + 
 +... 
 + 
 +//Añadir un MouseListener a la JLabel para hacer click sobre ella 
 +//Debemos controlar las excepciones de la siguiente instrucción 
 +Desktop.getDesktop().browse(new URI("http://www.bitbucket.org/fvaldeon")); 
 + 
 +</code> 
 + 
 +Para mostrar una página web dsde una ventana en nuestra aplicación: 
 + 
 +Mostrar sitio web en elemento **JTextPane**: 
 +<code java> 
 + 
 +JTextPane textPane = new JTextPane(); 
 +textPane.setEditable(false); 
 + 
 +URL myUrl = null; 
 +try { 
 +    myUrl = new URL("http://miSitioWeb.com"); 
 +} catch (MalformedURLException ex) { 
 +    ex.printStackTrace(); 
 +
 + 
 +try { 
 +    textPane.setPage(myurl); 
 +} catch (IOException ex) { 
 +    ex.printStackTrace(); 
 +
 + 
 +</code> 
 + 
 +{{ :bloque5:visorweb-jtextpane.png?direct&400 |}} 
 + 
 +Las clases ''JTextPane'' o ''JEditorPane'' aunque permiten visualizar y parsear código //html//, no están diseñadas para tal labor. Las librerías de //JavaFX// tienen componentes específicos para mostrar código //html//. 
 + 
 +Mostrar sitio web con **JavaFX**: 
 + 
 +<code java> 
 +JFXPanel fxpanel = new JFXPanel(); 
 +JFrame frame = new JFrame(); 
 +... 
 +frame.add(fxpanel); 
 + 
 +WebEngine engine; 
 +WebView view  = new WebView(); 
 +engine = view.getEngine(); 
 +fxpanel.setScene(new Scene(view)); 
 +engine.load("http://miSitioWeb.com"); 
 + 
 +frame.setVisible(true); 
 + 
 +</code> 
 + 
 +{{ :bloque5:visorweb-javafx.png?direct&400 |}} 
 + 
 +Estos ejemplos están extraidos del sitio [[http://javatongue.blogspot.com/2015/09/how-to-load-webpage-in-java-app.html|javatongue.blogspot.com]] 
 +==== Documentación en PDF. Librería IcePDF====
 Ofreciendo la documentación en formato PDF, podemos también mostrarla desde alguna sección de nuestra aplicación, o permitir al programa utilizar la aplicación por defecto del sistema para abrir dicha documentación. Ofreciendo la documentación en formato PDF, podemos también mostrarla desde alguna sección de nuestra aplicación, o permitir al programa utilizar la aplicación por defecto del sistema para abrir dicha documentación.
 +
 +Java no dispone de clases nativas para renderizar ficheros //PDF//, pero existen multitud de librerías //open-source// para renderizar este tipo de archivos. Una de ellas es [[http://www.icesoft.org/java/projects/ICEpdf/overview.jsf|IcePDF]]
 +
 +Para utilizarla necesitamos 2 ficheros jar:
 +  * icepdf-core.jar: [[https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core|Repositorio de maven]]
 +  * icepdf-viewer.jar: [[https://mvnrepository.com/artifact/org.icepdf.os/icepdf-viewer|Repositorio de maven]]
 +
 +El siguiente ejemplo está planteado con las últimas versiones en la fecha: [[https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core/6.2.2|icepdf.core-6.2.2.jar]] y [[https://mvnrepository.com/artifact/org.icepdf.os/icepdf-viewer/6.2.2|icepdf-viewer-6.2.2.jar]]
 +
 +Necesitamos un JPanel para mostra el visor PDF, que podemos añadir a una ventana específica, o a un area dentro de una ventana.
 +
 +<code java>
 +
 +SwingController controller = new SwingController();
 +SwingViewBuilder factory = new SwingViewBuilder(controller);
 +
 +//Creamos el elemento JPanel donde vamos a mostrar el Visor
 +JPanel viewerPanel = factory.buildViewerPanel();
 +
 +// En este ejemplo mostramos el JPanel en un Jframe
 +
 +JFrame frame = new JFrame("Visor Pdf");
 +frame.setContentPane(viewerPanel);
 +frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 +frame.pack();
 +frame.setVisible(true);
 +
 +//Finalmente, abrimos el fichero pdf indicando su ruta
 +controller.openDocument("miFichero.pdf");
 +</code>
 +
 +{{ :bloque5:icepdf-viewer.png?direct&400 | }}
  
 ---- ----
  
 (c) {{date> %Y}} Fernando Valdeón (c) {{date> %Y}} Fernando Valdeón
bloque5/documentacion.1608477887.txt.gz · Última modificación: 2020/12/20 15:24 por fernando