fr.cnam.ihm

## Class CanvasIHM

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

-     public class CanvasIHM
      extends java.lang.Object

  Classe de définition d'un canvas dans lequel on peut afficher une grille IHM avec laquelle il est possible :
  - de colorer ou effacer une case de la grille
  - de realiser une action si on clique dans une des cases de la grille
  - si la grille n'est pas affichee alors on peut tracer des lignes et ecrire du texte et
  avoir une action quand on clique dans le canvas ou quand on deplace la souris
  - on peut dessiner des polygones (2D) qui peuvent avoir une position aussi en Z. Les polygones sont affichés en fonction de Z, avec X plus prioritaire que Y.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `TYPE_MARQUE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CanvasIHM(int width, int height)` Constructeur d'un canvas d'IHM
    `CanvasIHM(int nbX, int nbY, int tailleCase)` Constructeur d'un canvas d'IHM

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afficherFrame(int posX, int posY)`
    `void` | `afficherGrille()` Affichage de la grille dans le canvas
    `void` | `ajouterLigne(int couleur, int x1, int y1, int x2, int y2)` Ajout d'une ligne de (x1,y1) a (x2,y2) et de couleur.
    `void` | `ajouterPolygone(java.lang.Object objet, Position position, int couleur, java.awt.Point... points)` Ajout d'un polygone p1,p2,....
    `void` | `ajouterPolygone(RessourcesCanvas rc, java.lang.Object o, Position p, java.awt.Point... points)` Ajout d'un polygone p1,p2,....
    `void` | `ajouterTexte(java.lang.String texte, int x, int y, int couleur)` Ajout d'un texte dans le canvas a une position (x,y)
    `static CanvasIHM` | `creerCanvasIhmDansFrame(int nbX, int nbY, int tailleCase)` Methode static qui permet de creer le canvas inclus dans un Frame
    `void` | `desafficherGrille()` Desaffichage de la grille du canvas
    `void` | `effacerCanvas()`
    `javax.swing.JFrame` | `getFrame()`
    `int` | `getHeight()` Retourne la hauteur du canvas de la grille
    `java.util.ArrayList<LigneCanvas>` | `getLignes()`
    `int` | `getMarque(int x, int y)` Retourne la marque de la case
    `int` | `getNbMaxMarqueur()` Retourne le nombre max de couleur
    `int` | `getNbX()` Retourne le nombre de colonne de la grille
    `int` | `getNbY()` Retourne le nombre de ligne de la grille
    `javax.swing.JPanel` | `getPanel()` Retourne le panel prinicipal de l'IHM
    `java.util.ArrayList<PolygoneCanvas>` | `getPolygones()`
    `java.util.ArrayList<TexteCanvas>` | `getTextes()`
    `int` | `getWidth()` Retourne la largeur du canvas de la grille
    `void` | `razGrille()` Efface le contenu de la grille (La valeur 0 est mise dans chaque case)
    `void` | `setActions(ControlesCanvasIHM actions)` Initialise ou change les actions utilise dans le Canvas
    `void` | `setMarque(int marque, int x, int y)` Affecte à une case de la grille la marque (couleur)
    `boolean` | `siCaseLibre(int x, int y)` Teste si la case est libre (différente de 0)

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

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

- - ### Field Detail

    - #### TYPE_MARQUE

          public static int TYPE_MARQUE

  - ### Constructor Detail

    - #### CanvasIHM

          public CanvasIHM(int nbX,
                           int nbY,
                           int tailleCase)

      Constructeur d'un canvas d'IHM
      Parameters:
        `nbX` - nombre de case en largeur
        `nbY` - nombre de case en hauteur
        `tailleCase` - taille de chaque case

    - #### CanvasIHM

          public CanvasIHM(int width,
                           int height)

      Constructeur d'un canvas d'IHM
      Parameters:
        `nbX` - nombre de case en largeur
        `nbY` - nombre de case en hauteur

  - ### Method Detail

    - #### setActions

          public void setActions(ControlesCanvasIHM actions)

      Initialise ou change les actions utilise dans le Canvas
      Parameters:
        `actions` - un objet qui implémente l'interface ControlesCanvasIHM

    - #### getPanel

          public javax.swing.JPanel getPanel()

      Retourne le panel prinicipal de l'IHM
      Returns:
        le panel

    - #### getWidth

          public int getWidth()

      Retourne la largeur du canvas de la grille
      Returns:
        largeur

    - #### getHeight

          public int getHeight()

      Retourne la hauteur du canvas de la grille
      Returns:
        largeur

    - #### razGrille

          public void razGrille()

      Efface le contenu de la grille
      (La valeur 0 est mise dans chaque case)

    - #### setMarque

          public void setMarque(int marque,
                                int x,
                                int y)

      Affecte à une case de la grille la marque (couleur)
      Parameters:
        `marque` - une valeur de 1 à 10 (couleur) ou 0 (case vide)
        `x` - coordonnée en x de la case
        `y` - coordonnée en y de la case

    - #### ajouterLigne

          public void ajouterLigne(int couleur,
                                   int x1,
                                   int y1,
                                   int x2,
                                   int y2)

      Ajout d'une ligne de (x1,y1) a (x2,y2) et de couleur.
      Parameters:
        `couleur` - (valeur de 1 à 10)
        `x1` - coord en X du 1er point
        `y1` - coord en Y du 1er point
        `x2` - coord en X du 2eme point
        `y2` - coors en Y du 2eme point

    - #### ajouterTexte

          public void ajouterTexte(java.lang.String texte,
                                   int x,
                                   int y,
                                   int couleur)

      Ajout d'un texte dans le canvas a une position (x,y)
      Parameters:
        `texte` - La valeur de la chaine
        `x` - coord en X du texte
        `y` - coord en Y du texte
        `couleur` - (valeur de 1 à 10)

    - #### ajouterPolygone

          public void ajouterPolygone(java.lang.Object objet,
                                      Position position,
                                      int couleur,
                                      java.awt.Point... points)

      Ajout d'un polygone p1,p2,.... et de couleur.
      Parameters:
        `objet` - objet quelconque (utilisé dans pointerCanvas)
        `position` - position de l'objet en (x,y,z)
        `couleur` - couleur (valeur de 1 à 10)
        `points` - les points du polygone

    - #### ajouterPolygone

          public void ajouterPolygone(RessourcesCanvas rc,
                                      java.lang.Object o,
                                      Position p,
                                      java.awt.Point... points)

      Ajout d'un polygone p1,p2,.... et de couleur.
      Parameters:
        `rc` - ressources graphiques d'affichage
        `o` - objet quelconque (utilisé dans pointerCanvas)
        `p` - position de l'objet en (x,y,z)
        `points` - les points du polygone

    - #### getMarque

          public int getMarque(int x,
                               int y)

      Retourne la marque de la case
      Parameters:
        `x` - coordonnée en x de la case
        `y` - coordonnée en y de la case
      Returns:
        la valeur de la case (de 0 à 10)

    - #### siCaseLibre

          public boolean siCaseLibre(int x,
                                     int y)

      Teste si la case est libre (différente de 0)
      Parameters:
        `x` - coordonnée en x de la case
        `y` - coordonnée en y de la case
      Returns:
        true si la case est libre sinon false

    - #### getNbX

          public int getNbX()

      Retourne le nombre de colonne de la grille
      Returns:
        le nombre de colonne

    - #### getNbY

          public int getNbY()

      Retourne le nombre de ligne de la grille
      Returns:
        le nombre de ligne

    - #### getNbMaxMarqueur

          public int getNbMaxMarqueur()

      Retourne le nombre max de couleur
      Returns:
        nombre max

    - #### desafficherGrille

          public void desafficherGrille()

      Desaffichage de la grille du canvas

    - #### afficherGrille

          public void afficherGrille()

      Affichage de la grille dans le canvas

    - #### creerCanvasIhmDansFrame

          public static CanvasIHM creerCanvasIhmDansFrame(int nbX,
                                                          int nbY,
                                                          int tailleCase)

      Methode static qui permet de creer le canvas inclus dans un Frame
      Parameters:
        `nbX` - nombre de colonnes de la grille
        `nbY` - nombre de lignes de la grille
        `tailleCase` - taille de chaque case en pixel
      Returns:
        retourne le canvas créé

    - #### afficherFrame

          public void afficherFrame(int posX,
                                    int posY)

    - #### getFrame

          public javax.swing.JFrame getFrame()

    - #### getLignes

          public java.util.ArrayList<LigneCanvas> getLignes()

    - #### getTextes

          public java.util.ArrayList<TexteCanvas> getTextes()

    - #### getPolygones

          public java.util.ArrayList<PolygoneCanvas> getPolygones()

    - #### effacerCanvas

          public void effacerCanvas()