ikbs.illustration.tools
Class PanelThumb

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.ScrollPane
              extended by ikbs.illustration.tools.PanelThumb
All Implemented Interfaces:
ThumbReceiver, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Runnable, javax.accessibility.Accessible

public class PanelThumb
extends java.awt.ScrollPane
implements ThumbReceiver, java.lang.Runnable

Pour créer un Panel qui contient un ensemble d'images réduites intégrées dans des ImageButton. La méthode de création du Panel est un peu complexe du fait que les images sont chargées de manière asynchrone par l'intermédiaire de Thread, ainsi que le calcul des images réduites nécessaires à la création des boutons.

Author:
David Grosser
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.ScrollPane
java.awt.ScrollPane.AccessibleAWTScrollPane
 
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
protected  java.awt.event.ActionListener actionListener
           
protected  java.util.Vector boutonImg
           
protected  java.util.Vector images
           
 Information information
           
static int MAX_THREAD
           
protected  int nbConstantIcones
           
protected  int nbElement
           
static int nbInstances
           
protected static java.lang.String[] nomIcones
           
protected static java.lang.String[] nomIconesLight
           
 Property property
           
protected  IkbsPanel pThumb
           
protected  Ressources rl
           
protected  int startIndex
           
 java.lang.Thread t
           
 java.lang.ThreadGroup thumbCreatorBand
           
protected  java.util.Vector vIllu
           
protected  boolean waitForIcones
           
 
Fields inherited from class java.awt.ScrollPane
SCROLLBARS_ALWAYS, SCROLLBARS_AS_NEEDED, SCROLLBARS_NEVER
 
Fields inherited from class java.awt.Component
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
PanelThumb(java.util.Vector img, Property property, java.awt.event.ActionListener actionListener, Ressources rl)
          constructeur img est un Vecteur de IllustrationPicture
 
Method Summary
 void addImage(IllustrationPicture illu)
          Ajouter une image sans index
 void addImage(IllustrationPicture illu, int index)
          Pour ajouter un Thumb en fonction de son rang
 void addImages(java.util.Vector vIlluPicture)
          Pour ajouter un vecteur de IllustrationPicture Attention, ne pas appeler avec le Vecteur nomImage pour eviter les cycles
 void calcAdjustable()
          Calcul l'ajustement en Width et Height
 java.awt.Image chooseImage(int type)
          Choisir une image en fonction de son type
 void copyProperties(PanelThumb pc)
          Copie des propriétés du panel passé en paramètre Copie des images réduites des images constantes en mémoire relative
 ImageButton creerAjouterBouton(java.awt.Image imgRed, java.lang.String nomFich, int index, boolean invalide)
          Une fois que l'image réduite est prête, on créé le bouton et on l'ajoute
 void deselectAll()
          Pour deselectionner tous les boutons
 boolean filtreThumb(Illustration illu)
          Filtre les ressources dont on doit charger le thumb
 java.awt.Dimension getButtonSize(int rang)
          Retourne la taille w et h du bouton situé à l'index sélectionné
 IllustrationPicture getIllustration(int i)
           
 ImageButton getImageButton(int index)
          pour récupérer un BoutonImage
 java.lang.String getPathThumb(IllustrationPicture ip)
          Récupérer le nom d'accès au thumbnail
 java.awt.Point getPositionThumb(int rang)
          Pour récupérer les coordonnées réelles (x, y) d'un thumb dans le repère du ScrollPane
 java.awt.Point getPosThumb(int rang)
          Pour récupérer la position d'un thumb dans la matrice Coordonnées (i,j)
 java.util.Vector getSelectedIllustration()
          Retourne les illustrations sélectionnées
 void imageReady(java.awt.Image imgRed, java.lang.String nomFich, int index, boolean invalide)
          implement ThumbReceiver Lorsque l'image réduite est prête envoyé par ThumbCreator Utilisé pour calculer une fois les images constantes à la bonne taille
 void indexAllThumb()
          Reconstruction de l'ensemble des Thumbs En fonction des index actions
 int indexOf(IllustrationPicture illu)
          Index de l'illustration
 void init()
          Initialisation de l'ensemble des Thumbs à partir du vector des IllustrationPicture
 void initConstantImages()
          Reinitialise la taille des images constantes en fonction de hauteur et de largeur
 void initRessources()
          Initialisation des ressources
 void initSelectedThumb()
          Initialisation des thumbs des icones sélectionnées
 void initSelectedThumb(int index)
          Réinitialisation du thumb d'index i
 void initThumb()
          Lance l'initialisation des thumbs
 void initThumb(IllustrationPicture illu, int index)
          Initialisation d'un thumb
 void pos(ImageButton buttonImage, int index)
           
 void positionneThumb(ImageButton buttonImage, int rang)
          positionne les thumbnails selon son rang
 void reInit()
          On recalcul tous les thumbs
 void removeAllImages()
          Effacer Toutes les images
 void removeImage(int i)
          Effacer l'élement d'indice i du Vecteur nomImages appelé par pThumb
 void removeImagesWithoutThumb()
          Effacer Toutes les images sans les thumbs
 void removeImageWithoutThumb(int i)
          Effacer l'élement d'indice i du Vecteur nomImages appelé par pThumb
 void removeSelectedImages()
          Effacer les images sélectionnées Eventuellement, il peut y avoir des sélections multiples
 void run()
          Démarrage du Thread
 void select(int index)
          Pour selectionner un bouton
 void selectAll()
          Pour deselectionner tous les boutons
 void setBounds(int x, int y, int w, int h)
          surcharge de setBounds pour repositionner correctement les Thumb On fait attention de ne pas lancer updateAllThumb lorsque toutes les images n'ont pas été chargées C'est à dire quand nbElement > 0
 void setPositionThumb(int rang)
          Détermine la position absolue en y d'un bouton dans le repère du ScrollPane
 void updateAllThumb()
          Reconstruction de l'ensemble des Thumbs
 
Methods inherited from class java.awt.ScrollPane
addImpl, addNotify, doLayout, eventTypeEnabled, getAccessibleContext, getHAdjustable, getHScrollbarHeight, getScrollbarDisplayPolicy, getScrollPosition, getVAdjustable, getViewportSize, getVScrollbarWidth, isWheelScrollingEnabled, layout, paramString, printComponents, processMouseWheelEvent, setLayout, setScrollPosition, setScrollPosition, setWheelScrollingEnabled
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, update, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

nomIcones

protected static final java.lang.String[] nomIcones

nomIconesLight

protected static final java.lang.String[] nomIconesLight

nbInstances

public static int nbInstances

MAX_THREAD

public static int MAX_THREAD

property

public Property property

information

public Information information

rl

protected Ressources rl

images

protected java.util.Vector images

boutonImg

protected java.util.Vector boutonImg

actionListener

protected java.awt.event.ActionListener actionListener

pThumb

protected IkbsPanel pThumb

nbElement

protected int nbElement

nbConstantIcones

protected int nbConstantIcones

thumbCreatorBand

public java.lang.ThreadGroup thumbCreatorBand

t

public java.lang.Thread t

startIndex

protected int startIndex

vIllu

protected java.util.Vector vIllu

waitForIcones

protected boolean waitForIcones
Constructor Detail

PanelThumb

public PanelThumb(java.util.Vector img,
                  Property property,
                  java.awt.event.ActionListener actionListener,
                  Ressources rl)
constructeur img est un Vecteur de IllustrationPicture

Method Detail

init

public void init()
Initialisation de l'ensemble des Thumbs à partir du vector des IllustrationPicture


initRessources

public void initRessources()
Initialisation des ressources


getButtonSize

public java.awt.Dimension getButtonSize(int rang)
Retourne la taille w et h du bouton situé à l'index sélectionné


getPathThumb

public java.lang.String getPathThumb(IllustrationPicture ip)
Récupérer le nom d'accès au thumbnail


addImage

public void addImage(IllustrationPicture illu)
Ajouter une image sans index


addImages

public void addImages(java.util.Vector vIlluPicture)
Pour ajouter un vecteur de IllustrationPicture Attention, ne pas appeler avec le Vecteur nomImage pour eviter les cycles


filtreThumb

public boolean filtreThumb(Illustration illu)
Filtre les ressources dont on doit charger le thumb


addImage

public void addImage(IllustrationPicture illu,
                     int index)
Pour ajouter un Thumb en fonction de son rang


run

public void run()
Démarrage du Thread

Specified by:
run in interface java.lang.Runnable

initSelectedThumb

public void initSelectedThumb(int index)
Réinitialisation du thumb d'index i


initSelectedThumb

public void initSelectedThumb()
Initialisation des thumbs des icones sélectionnées


indexOf

public int indexOf(IllustrationPicture illu)
Index de l'illustration


initThumb

public void initThumb()
Lance l'initialisation des thumbs


initThumb

public void initThumb(IllustrationPicture illu,
                      int index)
Initialisation d'un thumb


chooseImage

public java.awt.Image chooseImage(int type)
Choisir une image en fonction de son type


initConstantImages

public void initConstantImages()
Reinitialise la taille des images constantes en fonction de hauteur et de largeur


imageReady

public void imageReady(java.awt.Image imgRed,
                       java.lang.String nomFich,
                       int index,
                       boolean invalide)
implement ThumbReceiver Lorsque l'image réduite est prête envoyé par ThumbCreator Utilisé pour calculer une fois les images constantes à la bonne taille

Specified by:
imageReady in interface ThumbReceiver

creerAjouterBouton

public ImageButton creerAjouterBouton(java.awt.Image imgRed,
                                      java.lang.String nomFich,
                                      int index,
                                      boolean invalide)
Une fois que l'image réduite est prête, on créé le bouton et on l'ajoute


pos

public void pos(ImageButton buttonImage,
                int index)

removeImage

public void removeImage(int i)
Effacer l'élement d'indice i du Vecteur nomImages appelé par pThumb


removeImageWithoutThumb

public void removeImageWithoutThumb(int i)
Effacer l'élement d'indice i du Vecteur nomImages appelé par pThumb


removeSelectedImages

public void removeSelectedImages()
Effacer les images sélectionnées Eventuellement, il peut y avoir des sélections multiples


removeAllImages

public void removeAllImages()
Effacer Toutes les images


removeImagesWithoutThumb

public void removeImagesWithoutThumb()
Effacer Toutes les images sans les thumbs


getImageButton

public ImageButton getImageButton(int index)
pour récupérer un BoutonImage


getIllustration

public IllustrationPicture getIllustration(int i)

select

public void select(int index)
Pour selectionner un bouton


deselectAll

public void deselectAll()
Pour deselectionner tous les boutons


selectAll

public void selectAll()
Pour deselectionner tous les boutons


getSelectedIllustration

public java.util.Vector getSelectedIllustration()
Retourne les illustrations sélectionnées


positionneThumb

public void positionneThumb(ImageButton buttonImage,
                            int rang)
positionne les thumbnails selon son rang


getPosThumb

public java.awt.Point getPosThumb(int rang)
Pour récupérer la position d'un thumb dans la matrice Coordonnées (i,j)


getPositionThumb

public java.awt.Point getPositionThumb(int rang)
Pour récupérer les coordonnées réelles (x, y) d'un thumb dans le repère du ScrollPane


setPositionThumb

public void setPositionThumb(int rang)
Détermine la position absolue en y d'un bouton dans le repère du ScrollPane


updateAllThumb

public void updateAllThumb()
Reconstruction de l'ensemble des Thumbs


indexAllThumb

public void indexAllThumb()
Reconstruction de l'ensemble des Thumbs En fonction des index actions


setBounds

public void setBounds(int x,
                      int y,
                      int w,
                      int h)
surcharge de setBounds pour repositionner correctement les Thumb On fait attention de ne pas lancer updateAllThumb lorsque toutes les images n'ont pas été chargées C'est à dire quand nbElement > 0

Overrides:
setBounds in class java.awt.Component

calcAdjustable

public void calcAdjustable()
Calcul l'ajustement en Width et Height


reInit

public void reInit()
On recalcul tous les thumbs


copyProperties

public void copyProperties(PanelThumb pc)
Copie des propriétés du panel passé en paramètre Copie des images réduites des images constantes en mémoire relative