InterfaceGraphique

## Class InterfacePrincipale

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Frame
        - - javax.swing.JFrame
          - - InterfaceGraphique.InterfacePrincipale

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

      public class InterfacePrincipale
      extends javax.swing.JFrame

  Interface graphique principale
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private class` | `InterfacePrincipale.PanCategoriesListener` Classe interne pour l'ecoute d'événements sur le panneaux de gestion des catégories.
    `private class` | `InterfacePrincipale.PanQuestionsListener` Classe interne pour l'ecoute d'événements sur le panneaux de gestion des questions.
    `private class` | `InterfacePrincipale.PanReponsesListener` Classe interne pour l'ecoute d'événements sur le panneaux de gestion des réponses.

    - ### Nested classes/interfaces inherited from class javax.swing.JFrame

      `javax.swing.JFrame.AccessibleJFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Frame

      `java.awt.Frame.AccessibleAWTFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Window

      `java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Bouton` | `addC`
    `private Bouton` | `addQ`
    `private Bouton` | `addR`
    `private ConnexionBDD` | `bdd`
    `private Bouton` | `config`
    `private ConfigBDD` | `configBDD`
    `private Bouton` | `delC`
    `private javax.swing.ImageIcon` | `delImg`
    `private Bouton` | `delQ`
    `private Bouton` | `delR`
    `private Bouton` | `editC`
    `private javax.swing.ImageIcon` | `editImg`
    `private Bouton` | `editQ`
    `private Bouton` | `editR`
    `private static java.awt.Color` | `ERROR_COLOR`
    `private static java.awt.Color` | `INFO_COLOR`
    `private javax.swing.JList` | `listC`
    `private javax.swing.JList` | `listQ`
    `private javax.swing.JList` | `listR`
    `private static java.awt.Color` | `NORMAL_COLOR`
    `private javax.swing.JPanel` | `panCategories`
    `private javax.swing.JPanel` | `panQuestions`
    `private javax.swing.JPanel` | `panReponses`
    `private javax.swing.ImageIcon` | `plusImg`
    `private javax.swing.ImageIcon` | `setupImg`
    `private javax.swing.JPanel` | `statusBar`
    `private javax.swing.JLabel` | `statusText`

    - ### Fields inherited from class javax.swing.JFrame

      `accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled`

    - ### Fields inherited from class java.awt.Frame

      `CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface javax.swing.WindowConstants

      `DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `InterfacePrincipale()` Constructeur lancant le splashcreen, la connexion à la base de donné, et la construction de l'interface principale.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `configureBDD(boolean showExitButton)` Affiche une boite de dialogue pour modifier et sauvegarder une nouvelle configuration.
    `private void` | `createPanelCategories()` Initialise et configure le panneaux de gestion des catégorie.
    `private void` | `createPanelQuestion()` Initialise et configure le panneaux de gestion des questions.
    `private void` | `createPanelReponses()` Initialise et configure le panneaux de gestion des réponses.
    `private void` | `createStatusBar()` Initialise et configure la barre de statut.
    `private java.lang.String[]` | `getCategorieList()` Selectionne une liste des categories.
    `private void` | `loadImgBouton()` Charge les images pour les boutons.
    `void` | `modem56k()` easter-egg
    `void` | `nyan()` easter-egg
    `private void` | `reSelectCategorie(java.lang.String newCatName)` Selectionne à nouveau une catégorie.
    `private void` | `reSelectQuestion(java.lang.String intitule)` Selectionne à nouveau une question.
    `private void` | `reSelectReponses(java.lang.String rep1, java.lang.String rep2)` Selectionne à nouveau un jeu de reponses.
    `private void` | `setQuestionsPanelEnabled(boolean active)` Active ou désactive le panneaux de gestion des questions.
    `private void` | `setReponsesPanelEnabled(boolean active)` Active ou désactive le panneaux de gestion des réponses.
    `private void` | `setStatusText(java.lang.String message)` Change le texte de la barre de statut et el met en noir.
    `private void` | `setStatusText(java.lang.String message, java.awt.Color color)` Change le texte de la barre de statut.
    `private void` | `tryToConnect()` Essaye de se connecter à la base de données, et demande à modifier la configuration de la connexion si echec.

    - ### Methods inherited from class javax.swing.JFrame

      `addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

    - ### Methods inherited from class java.awt.Frame

      `addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

    - ### Methods inherited from class java.awt.Window

      `addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

    - ### Methods inherited from interface java.awt.MenuContainer

      `getFont, postEvent`

- - ### Field Detail

    - #### panCategories

          private javax.swing.JPanel panCategories

    - #### addC

          private Bouton addC

    - #### delC

          private Bouton delC

    - #### editC

          private Bouton editC

    - #### listC

          private javax.swing.JList listC

    - #### panReponses

          private javax.swing.JPanel panReponses

    - #### addR

          private Bouton addR

    - #### delR

          private Bouton delR

    - #### editR

          private Bouton editR

    - #### listR

          private javax.swing.JList listR

    - #### panQuestions

          private javax.swing.JPanel panQuestions

    - #### addQ

          private Bouton addQ

    - #### delQ

          private Bouton delQ

    - #### editQ

          private Bouton editQ

    - #### listQ

          private javax.swing.JList listQ

    - #### plusImg

          private javax.swing.ImageIcon plusImg

    - #### delImg

          private javax.swing.ImageIcon delImg

    - #### editImg

          private javax.swing.ImageIcon editImg

    - #### setupImg

          private javax.swing.ImageIcon setupImg

    - #### statusBar

          private javax.swing.JPanel statusBar

    - #### statusText

          private javax.swing.JLabel statusText

    - #### config

          private Bouton config

    - #### bdd

          private ConnexionBDD bdd

    - #### configBDD

          private ConfigBDD configBDD

    - #### ERROR_COLOR

          private static final java.awt.Color ERROR_COLOR

    - #### INFO_COLOR

          private static final java.awt.Color INFO_COLOR

    - #### NORMAL_COLOR

          private static final java.awt.Color NORMAL_COLOR

  - ### Constructor Detail

    - #### InterfacePrincipale

          public InterfacePrincipale()

      Constructeur lancant le splashcreen, la connexion à la base de donné, et la construction de l'interface principale.

  - ### Method Detail

    - #### loadImgBouton

          private void loadImgBouton()

      Charge les images pour les boutons.

    - #### createStatusBar

          private void createStatusBar()

      Initialise et configure la barre de statut.

    - #### createPanelCategories

          private void createPanelCategories()

      Initialise et configure le panneaux de gestion des catégorie.

    - #### createPanelReponses

          private void createPanelReponses()

      Initialise et configure le panneaux de gestion des réponses.

    - #### createPanelQuestion

          private void createPanelQuestion()

      Initialise et configure le panneaux de gestion des questions.

    - #### modem56k

          public void modem56k()

      easter-egg

    - #### nyan

          public void nyan()

      easter-egg

    - #### configureBDD

          public boolean configureBDD(boolean showExitButton)

      Affiche une boite de dialogue pour modifier et sauvegarder une nouvelle configuration.
      Parameters:
        `showExitButton` - Si true, bouton annuler est remplacé par un bouton pour quitter l'aplication.
      Returns:
        true si la configuration à été modifiée, false sinon.

    - #### tryToConnect

          private void tryToConnect()

      Essaye de se connecter à la base de données, et demande à modifier la configuration de la connexion si echec.

    - #### setStatusText

          private void setStatusText(java.lang.String message,
                           java.awt.Color color)

      Change le texte de la barre de statut.
      Parameters:
        `message` - Message.
        `color` - Couleur;

    - #### setStatusText

          private void setStatusText(java.lang.String message)

      Change le texte de la barre de statut et el met en noir.
      Parameters:
        `message` - Message.

    - #### setReponsesPanelEnabled

          private void setReponsesPanelEnabled(boolean active)

      Active ou désactive le panneaux de gestion des réponses.
      Parameters:
        `active` - panneaux actif ou non.

    - #### setQuestionsPanelEnabled

          private void setQuestionsPanelEnabled(boolean active)

      Active ou désactive le panneaux de gestion des questions.
      Parameters:
        `active` - panneaux actif ou non.

    - #### reSelectCategorie

          private void reSelectCategorie(java.lang.String newCatName)
                                  throws BDDException

      Selectionne à nouveau une catégorie.
      Parameters:
        `newCatName` - La catégorie à selectionner.
      Throws:
        `BDDException` - Si une erreur SQL survient.

    - #### reSelectReponses

          private void reSelectReponses(java.lang.String rep1,
                              java.lang.String rep2)
                                 throws BDDException

      Selectionne à nouveau un jeu de reponses.
      Parameters:
        `rep1` - La réponse 1
        `rep2` - La réponse 2
      Throws:
        `BDDException` - Si une erreur SQL survient.

    - #### reSelectQuestion

          private void reSelectQuestion(java.lang.String intitule)
                                 throws BDDException

      Selectionne à nouveau une question.
      Parameters:
        `intitule` - L'intitulé.
      Throws:
        `BDDException` - Si une erreur SQL survient.

    - #### getCategorieList

          private java.lang.String[] getCategorieList()

      Selectionne une liste des categories.
      Returns:
        Un tableau de noms de catégories.