fr.cnam.ihm

## Class Formulaire

- java.lang.Object
- - fr.cnam.ihm.Formulaire

-     public class Formulaire
      extends java.lang.Object

  Classe de définition d'un formulaire JAVA permettant de faire à minima une IHM Java pour saisir des informations et faire des actions via des boutons.
  Pour cela, il faut que l'applicatif implémente les méthodes de l'interface FormulaireInt.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Formulaire(java.lang.String titre, FormulaireInt app, int width, int height)` Constructeur d'un formulaire.
    `Formulaire(java.lang.String titre, FormulaireInt app, int width, int height, boolean avecFrame)` Constructeur d'un formulaire.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `activer(java.lang.String nom)` activer un des composants du formulaire
    `void` | `addButton(java.lang.String nom, java.lang.String button)` Ajout dans le formulaire d'un bouton.
    `CanvasIHM` | `addCanvasIHM(int width, int height, ControlesCanvasIHM controle)` Methode qui ajoute un canvas de grille
    `CanvasIHM` | `addGrilleIHM(int nbLigne, int nbColonne, int tailleCase, ControlesCanvasIHM controle)` Methode qui ajoute un canvas de grille
    `void` | `addLabel(java.lang.String label)` Ajout d'un label dans le formulairel.
    `void` | `addListeChoix(java.lang.String nom, java.lang.String label, java.lang.String[] liste, boolean action, java.lang.String valinit)` Ajout dans le formulaire d'une liste de choix de saisie composé d'un label et d'une liste de choix.
    `void` | `addListScroll(java.lang.String nom, java.lang.String titre, boolean editable, java.lang.String[] values, int width, int height)` Ajout dans le formulaire d'une liste scrollable de valeurs.
    `void` | `addPanel(javax.swing.JPanel panel, int width, int height)` Ajout d'un Panel dans le formulaire
    `void` | `addPosition(int deltax, int deltay)` Change la position courante par delta
    `void` | `addText(java.lang.String nom, java.lang.String label, boolean editable, java.lang.String value)` Ajout dans le formulaire un texte de saisie composé d'un label et d'une zone de saisie.
    `void` | `addZoneText(java.lang.String nom, java.lang.String label, boolean editable, java.lang.String value, int width, int height)` Ajout dans le formulaire d'un texte de saisie multi-ligne composé d'un label et d'une zone de saisie.
    `void` | `afficher()` Affichage du formulaire.
    `void` | `afficher(int x, int y)` Affichage du formulaire en x,y de l'ecran
    `java.lang.String` | `choisirFichier(java.lang.String directory)` Cette methode permet de choisir un fichier sur le disque
    `void` | `desactiver(java.lang.String nom)` desactiver un des composants du formulaire
    `void` | `dessous(int posx)` Change la position courante en passant a la ligne suivante en position posx
    `void` | `fermer()` Permet de fermer le formulaire
    `javax.swing.JPanel` | `getPanel()` Retourne le panel principal du formulaire
    `java.lang.String` | `getValeurChamp(java.lang.String nom)` Méthode qui retourne la valeur d'un champ.
    `int` | `getXCour()` Retourne la position courante en X de la position des éléments
    `int` | `getYCour()` Retourne la position courante en Y de la position des éléments
    `void` | `horizontal()` change le sens en HORIZONTAL
    `static java.lang.String[]` | `lireFichierTexte(java.lang.String nomFichier)` Cette methode statique permet de lire un fichier texte
    `void` | `setApp(FormulaireInt app)` Initialise l'applicatif.
    `void` | `setAutoWidth(boolean auto)` Le contour des textes de Label Text et Button sont autoamtiquement ou pas ajuster a la taille du texte
    `void` | `setButtonFermer(java.lang.String nomButton)` Designe le bouton qui ferme la fenetre
    `void` | `setListData(java.lang.String nom, java.lang.String[] values)` Méthode qui change les valeurs d'une liste de scroll
    `void` | `setPosition(int x, int y)` Change la position courante
    `void` | `setValeurChamp(java.lang.String nom, java.lang.String valeur)` Méthode qui change la valeur d'un champ.
    `void` | `setWidthButtonCour(int width)` Change la largeur courante des boutons
    `void` | `setWidthGapCour(int width)` Change la largeur courante de séparation entre le label et le texte des champs de saisi
    `void` | `setWidthLabelCour(int width)` Change la largeur courante des label
    `void` | `setWidthTextCour(int width)` Change la largeur courante des textes de saisi
    `void` | `vertical()` change le sens en VERTICAL

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Formulaire

          public Formulaire(java.lang.String titre,
                            FormulaireInt app,
                            int width,
                            int height)

      Constructeur d'un formulaire.
      Parameters:
        `titre` - Titre affiché dans le bandeau de la fenetre
        `app` - Un objet dont la classe implémente l'interface FormualaireInt
        `width` - longueur du formulaire
        `height` - hauteur du formulaire

    - #### Formulaire

          public Formulaire(java.lang.String titre,
                            FormulaireInt app,
                            int width,
                            int height,
                            boolean avecFrame)

      Constructeur d'un formulaire.
      Parameters:
        `titre` - Titre affiché dans le bandeau de la fenetre
        `app` - Un objet dont la classe implémente l'interface FormualaireInt
        `width` - longueur du formulaire
        `height` - hauteur du formulaire
        `avecFrame` - si false alors pas de frame cree : que le panel. Ceci permet d'incruster un formulaire dans une IHM existante (un autre formulaire)

  - ### Method Detail

    - #### setApp

          public void setApp(FormulaireInt app)

      Initialise l'applicatif.
      Cette méthode est utilisée dans le cas où quand on crée le formulaire on ne connait pas encore l'applicatif qui gère le formulaire. On appelle alors cette méthode pour initialiser l'applicatif du formulaire.
      Parameters:
        `app` - Un objet qui implémente l'interface Formulaireint

    - #### getPanel

          public javax.swing.JPanel getPanel()

      Retourne le panel principal du formulaire
      Returns:
        panel principal du formulaire

    - #### getXCour

          public int getXCour()

      Retourne la position courante en X de la position des éléments
      Returns:
        int la valeur X

    - #### getYCour

          public int getYCour()

      Retourne la position courante en Y de la position des éléments
      Returns:
        int la valeur Y

    - #### setPosition

          public void setPosition(int x,
                                  int y)

      Change la position courante
      Parameters:
        `x` - position en abscisse (horizontal) de la fenetre
        `y` - position en ordonnée (vertical) de la fenetre

    - #### addPosition

          public void addPosition(int deltax,
                                  int deltay)

      Change la position courante par delta
      Parameters:
        `deltax` - position en abscisse (horizontal) de la fenetre
        `deltay` - position en ordonnée (vertical) de la fenetre

    - #### dessous

          public void dessous(int posx)

      Change la position courante en passant a la ligne suivante en position posx
      Parameters:
        `posx` - nouvelle position courante en x

    - #### horizontal

          public void horizontal()

      change le sens en HORIZONTAL

    - #### vertical

          public void vertical()

      change le sens en VERTICAL

    - #### setAutoWidth

          public void setAutoWidth(boolean auto)

      Le contour des textes de Label Text et Button sont autoamtiquement ou pas ajuster a la taille du texte
      Parameters:
        `auto` - boolean

    - #### setWidthLabelCour

          public void setWidthLabelCour(int width)

      Change la largeur courante des label
      Parameters:
        `width` - nouvelle largeur courante

    - #### setWidthTextCour

          public void setWidthTextCour(int width)

      Change la largeur courante des textes de saisi
      Parameters:
        `width` - nouvelle largeur courante

    - #### setWidthGapCour

          public void setWidthGapCour(int width)

      Change la largeur courante de séparation entre le label et le texte des champs de saisi
      Parameters:
        `width` - nouvelle largeur courante

    - #### setWidthButtonCour

          public void setWidthButtonCour(int width)

      Change la largeur courante des boutons
      Parameters:
        `width` - nouvelle largeur courante

    - #### afficher

          public void afficher()

      Affichage du formulaire.

    - #### afficher

          public void afficher(int x,
                               int y)

      Affichage du formulaire en x,y de l'ecran
      Parameters:
        `x` - position en X du formulaire
        `y` - position en Y du formulaire

    - #### fermer

          public void fermer()

      Permet de fermer le formulaire

    - #### addLabel

          public void addLabel(java.lang.String label)

      Ajout d'un label dans le formulairel.
      Parameters:
        `label` - Chaine qui précéde la zone de saisie

    - #### addText

          public void addText(java.lang.String nom,
                              java.lang.String label,
                              boolean editable,
                              java.lang.String value)

      Ajout dans le formulaire un texte de saisie composé d'un label et d'une zone de saisie.
      Parameters:
        `nom` - Le nom du champ
        `label` - Chaine qui précéde la zone de saisie
        `editable` - détermine si la zone de saisie est éditable
        `value` - valeur initiale dans la zone de saisie

    - #### addListeChoix

          public void addListeChoix(java.lang.String nom,
                                    java.lang.String label,
                                    java.lang.String[] liste,
                                    boolean action,
                                    java.lang.String valinit)

      Ajout dans le formulaire d'une liste de choix de saisie composé d'un label et d'une liste de choix.
      Parameters:
        `nom` - Le nom du champ
        `label` - Chaine qui précéde la zone de saisie
        `liste` - tableau de la liste de choix
        `action` - si vrai alors l'action est réalisée dès que l'on clique
        `valinit` - valeur inital sélectionnée

    - #### addZoneText

          public void addZoneText(java.lang.String nom,
                                  java.lang.String label,
                                  boolean editable,
                                  java.lang.String value,
                                  int width,
                                  int height)

      Ajout dans le formulaire d'un texte de saisie multi-ligne composé d'un label et d'une zone de saisie.
      Parameters:
        `nom` - Le nom du champ
        `label` - Chaine qui précéde la zone de saisie
        `editable` - détermine si la zone de saisie est éditable
        `value` - valeur initiale dans la zone de saisie
        `width` - longueur de la zone de texte
        `height` - hauteur de la zone de texte

    - #### addListScroll

          public void addListScroll(java.lang.String nom,
                                    java.lang.String titre,
                                    boolean editable,
                                    java.lang.String[] values,
                                    int width,
                                    int height)

      Ajout dans le formulaire d'une liste scrollable de valeurs.
      Parameters:
        `nom` - Le nom de la liste scrollable
        `titre` - Titre qui précéde la liste
        `editable` - détermine si la zone de saisie est éditable
        `values` - valeur initiale dans la zone de saisie
        `width` - longueur de la zone (ou -1)
        `height` - hauteur de la zone

    - #### setButtonFermer

          public void setButtonFermer(java.lang.String nomButton)

      Designe le bouton qui ferme la fenetre
      Parameters:
        `nomButton` - le nom du bouton

    - #### addButton

          public void addButton(java.lang.String nom,
                                java.lang.String button)

      Ajout dans le formulaire d'un bouton.
      Parameters:
        `nom` - Le nom du bouton
        `button` - Texte du bouton

    - #### addPanel

          public void addPanel(javax.swing.JPanel panel,
                               int width,
                               int height)

      Ajout d'un Panel dans le formulaire
      Parameters:
        `panel` - le panel a ajouter
        `width` - largeur du panel
        `height` - hauteur du panel

    - #### addGrilleIHM

          public CanvasIHM addGrilleIHM(int nbLigne,
                                        int nbColonne,
                                        int tailleCase,
                                        ControlesCanvasIHM controle)

      Methode qui ajoute un canvas de grille
      Parameters:
        `nbLigne` - nombre de ligne de la grille
        `nbColonne` - nombre de colonne de la grille
        `tailleCase` - taille de la case (en pixel)
        `controle` - objet dont la classe surcharge les méthodes de l'interface ControlesCanvasIHM. Il permet de réaliser les actions réalisées dans la grille.
      Returns:
        retourne la grille d'IHM

    - #### addCanvasIHM

          public CanvasIHM addCanvasIHM(int width,
                                        int height,
                                        ControlesCanvasIHM controle)

      Methode qui ajoute un canvas de grille
      Parameters:
        `width` - largeur du canvas
        `height` - hauteur du canvas
        `controle` - objet dont la classe surcharge les méthodes de l'interface ControlesCanvasIHM. Il permet de réaliser les actions réalisées dans la grille.
      Returns:
        retourne la grille d'IHM

    - #### getValeurChamp

          public java.lang.String getValeurChamp(java.lang.String nom)

      Méthode qui retourne la valeur d'un champ.
      Parameters:
        `nom` - Le nom du champ
      Returns:
        valeur la nouvelle valeur du champ

    - #### setValeurChamp

          public void setValeurChamp(java.lang.String nom,
                                     java.lang.String valeur)

      Méthode qui change la valeur d'un champ.
      Parameters:
        `nom` - Le nom du champ
        `valeur` - la nouvelle valeur du champ

    - #### setListData

          public void setListData(java.lang.String nom,
                                  java.lang.String[] values)

      Méthode qui change les valeurs d'une liste de scroll
      Parameters:
        `nom` - Le nom du champ
        `values` - la nouvelle liste de valeur

    - #### desactiver

          public void desactiver(java.lang.String nom)
                          throws java.lang.RuntimeException

      desactiver un des composants du formulaire
      Parameters:
        `nom` - Nom du composant
      Throws:
        `java.lang.RuntimeException`

    - #### activer

          public void activer(java.lang.String nom)
                       throws java.lang.RuntimeException

      activer un des composants du formulaire
      Parameters:
        `nom` - Nom du composant
      Throws:
        `java.lang.RuntimeException`

    - #### choisirFichier

          public java.lang.String choisirFichier(java.lang.String directory)

      Cette methode permet de choisir un fichier sur le disque
      Parameters:
        `directory` - nom relatif ou absolu du répertoire initial
      Returns:
        retourne le nom absolu fichier sélectionné ou null si annuler

    - #### lireFichierTexte

          public static java.lang.String[] lireFichierTexte(java.lang.String nomFichier)

      Cette methode statique permet de lire un fichier texte
      Parameters:
        `nomFichier` - le path relatif ou absolu du fichier a lire
      Returns:
        un tableau de caractere contenant chaque ligne du fichier