# PdfPanel
declaration: package: lecteur_pdf.pdf, class: PdfPanel

Package lecteur_pdf.pdf

# Class PdfPanel

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
lecteur_pdf.pdf.PdfPanel

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`

public class PdfPanel extends JPanel
Interface de la mainframe de l'application sans utilisation de forms

Author:
  Léo Franch, Tristan Nogaret, Lucàs Vabre, Noé Villeneuve
See Also:
  - `JPanel`
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class javax.swing.JPanel

`JPanel.AccessibleJPanel`

## Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

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

`Container.AccessibleAWTContainer`

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

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

## Field Summary

Fields
Modifier and Type
Field
Description
`private final JTextField`
`indexPageInput`
La zone de saisie du numéro de page
`private final JLabel`
`maxPageLabel`
Le texte définissant le nombre max de pages
`private int`
`numeroPage`
Le numéro de la page courante
`private final JLabel`
`page`
Label qui contient l'image de la page affichée
`private DocumentPdf`
`pdfLoader`
Le document PDF chargé
`private boolean`
`pleineLargeur`
Défini si la page est en pleine largeur ou non
`private boolean`
`processing`
Bloqueur qui défini si le processeur est en train de générer une nouvelle page
`private final JScrollPane`
`scrollPane`
Element scrollable qui contiens la page
`private float`
`taille`
Valeur multiplicative de la taille de la page
`private final JViewport`
`viewport`
Zone de l'élément scrollable qui est visible
`private float`
`zoom`
Valeur multiplicative du zoom

### Fields inherited from class javax.swing.JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

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

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

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

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

## Constructor Summary

Constructors
Constructor
Description
`PdfPanel()`
Crée une nouvelle interface de PDF vide

## Method Summary

Modifier and Type
Method
Description
`private void`
`btnPrecedentAction()`
Action lors du clic sur le bouton precedent Affiche la page précédente du ou des documents (suivant si le `mode Synchronisé` est activé ou non)
`private void`
`btnSuivantAction()`
Action lors du clic sur le bouton suivant Affiche la page suivante du ou des documents (suivant si le `mode Synchronisé` est activé ou non)
`private void`
`changerPage(int index)`
Essaye de changer de page si possible, sinon ne fait rien
`private void`
`changerTaille()`
Change la taille de la page courante suivant si fonction `Pleine Largeur` est activée ou non
`boolean`
`chargerPdf(File pdfFile)`
Méthode qui permet de charger un PDF dans la `fenêtre` courante
`void`
`dechargerPdf()`
Décharge le document courant s'il y en a un
`boolean`
`isCharge()`
Prédicat qui vérifie si un PDF est chargé ou non
`private boolean`
`isPageValide(int index)`
Prédicat qui vérifie si un index de page est valide pour le PDF courant
`void`
`pagePrecedente()`
Affiche la page précédente
`void`
`pageSuivante()`
Affiche la page suivante
`void`
`setPdfLoader(DocumentPdf pdfLoader)`
`void`
`setPleineLargeur(boolean pleineLargeur)`
`private void`
`setTaille(float taille)`
Change la taille de la page courante
`void`
`setZoom(float zoom)`
Change la valeur du zoom de la page courante

### Methods inherited from class javax.swing.JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

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

`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

## Field Details

### numeroPage

private int numeroPage
Le numéro de la page courante

### taille

private float taille
Valeur multiplicative de la taille de la page

### zoom

private float zoom
Valeur multiplicative du zoom

### pleineLargeur

private boolean pleineLargeur
Défini si la page est en pleine largeur ou non

### processing

private boolean processing
Bloqueur qui défini si le processeur est en train de générer une nouvelle page

### pdfLoader

private DocumentPdf pdfLoader
Le document PDF chargé

See Also:
  - `PDDocument`

### indexPageInput

private final JTextField indexPageInput
La zone de saisie du numéro de page

See Also:
  - `JTextField`

### maxPageLabel

private final JLabel maxPageLabel
Le texte définissant le nombre max de pages

See Also:
  - `JLabel`

### scrollPane

private final JScrollPane scrollPane
Element scrollable qui contiens la page

See Also:
  - `JScrollPane`

### viewport

private final JViewport viewport
Zone de l'élément scrollable qui est visible

See Also:
  - `JViewport`

### page

private final JLabel page
Label qui contient l'image de la page affichée

See Also:
  - `JLabel`

## Constructor Details

### PdfPanel

public PdfPanel()
Crée une nouvelle interface de PDF vide

## Method Details

### btnSuivantAction

private void btnSuivantAction()
Action lors du clic sur le bouton suivant Affiche la page suivante du ou des documents (suivant si le `mode Synchronisé` est activé ou non)

See Also:
  - `JButton`

### btnPrecedentAction

private void btnPrecedentAction()
Action lors du clic sur le bouton precedent Affiche la page précédente du ou des documents (suivant si le `mode Synchronisé` est activé ou non)

See Also:
  - `JButton`

### changerTaille

private void changerTaille()
Change la taille de la page courante suivant si fonction `Pleine Largeur` est activée ou non

### setPleineLargeur

public void setPleineLargeur(boolean pleineLargeur)

Parameters:
  `pleineLargeur` - Booléen qui défini l'état du mode `Pleine Largeur`

### isPageValide

private boolean isPageValide(int index)
Prédicat qui vérifie si un index de page est valide pour le PDF courant

Parameters:
  `index` - Entier correspondant a l'indice du numéro de page à tester
Returns:
  true si le prédicat est vérifié, false sinon

### chargerPdf

public boolean chargerPdf(File pdfFile)
Méthode qui permet de charger un PDF dans la `fenêtre` courante

Parameters:
  `pdfFile` - Le fichier PDF à charger
Returns:
  true si le PDF a pu se charger, false sinon

### setPdfLoader

public void setPdfLoader(DocumentPdf pdfLoader)

Parameters:
  `pdfLoader` - un nouveau document PDF à affecter à la `fenêtre`

### dechargerPdf

public void dechargerPdf()
Décharge le document courant s'il y en a un

### setZoom

public void setZoom(float zoom)
Change la valeur du zoom de la page courante

Parameters:
  `zoom` - Valeur flottante (1.00f == 100%)

### setTaille

private void setTaille(float taille)
Change la taille de la page courante

Parameters:
  `taille` - Valeur flottante (1.00f == 100%)

### pageSuivante

public void pageSuivante()
Affiche la page suivante

### pagePrecedente

public void pagePrecedente()
Affiche la page précédente

### changerPage

private void changerPage(int index)
Essaye de changer de page si possible, sinon ne fait rien

Parameters:
  `index` - Le numéro de la page où l'on veut se rendre

### isCharge

public boolean isCharge()
Prédicat qui vérifie si un PDF est chargé ou non

Returns:
  true si un PDF est chargé, false sinon