extra.inpro.training
Class SlideShowPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by extra.inpro.training.SlideShowPanel
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class SlideShowPanel
extends javax.swing.JPanel
implements java.awt.event.ActionListener

A slide show panel to be used as part of DataCollector. Given some XML (in an InputStream), this loads images and displays them in a slideshow. The user is responsible for zapping through the slides, there are no automatic slide changes. The XML-format is as follows:

 <slideshow description="a short description or name for the slideshow"
            root="file:/the/URL/root/for/the/slides/"%gt;
     <slide url="image-url(relative to root).png" 
            description="the text that should be displayed together with this slide" />
     <slide ...
 </slideshow>
 
The object can be queried which data is currently being displayed

Author:
timo
See Also:
Serialized Form

Nested Class Summary
private  class SlideShowPanel.SlideIcon
          Simple extension to ImageIcon with an additional infoString field.
private static class SlideShowPanel.SlideShowXML
          simple container class for slideshow XML root elements.
private static class SlideShowPanel.SlideXML
          simple container class for slideshow XML slides.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
private  int current
          index to the currently displayed slide
private  java.lang.String description
          description for this slideshow
private  java.util.List<SlideShowPanel.SlideIcon> images
          list of currently available slides; initialized with one empty slide
private  javax.swing.JButton leftButton
           
private  javax.swing.JButton rightButton
           
private  javax.swing.JLabel slideLabel
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
SlideShowPanel(java.io.InputStream is)
          create a slide show panel with slides from given slideshow XML.
SlideShowPanel(int textPosition)
          create a slide show panel without pre-loaded slides.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
          Handles slide forwarding / backwarding depending on which button this action was performed on.
static void createAndShowGUI()
          used in the demo application.
 java.lang.String getCurrentSlideInfo()
          get information about the currently displayed slide.
static void main(java.lang.String[] args)
          main method used for debugging.
 void setImage(int i)
          change to a specific slide.
 void setXML(java.io.InputStream is)
          sets the slide show images from given slideshow XML.
private  void setXML(SlideShowPanel.SlideShowXML ssx)
          set the slide show images from given slideshow XML.
 void setXML(java.net.URL url)
          set the slide show images from a given URL.
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, 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

description

private java.lang.String description
description for this slideshow


images

private java.util.List<SlideShowPanel.SlideIcon> images
list of currently available slides; initialized with one empty slide


current

private int current
index to the currently displayed slide


slideLabel

private javax.swing.JLabel slideLabel

leftButton

private javax.swing.JButton leftButton

rightButton

private javax.swing.JButton rightButton
Constructor Detail

SlideShowPanel

public SlideShowPanel(int textPosition)
create a slide show panel without pre-loaded slides. Apart from the JLabel which displays the slides, two buttons are created to browse through the slide show


SlideShowPanel

public SlideShowPanel(java.io.InputStream is)
create a slide show panel with slides from given slideshow XML. try for example
 new SlideShowPanel(SlideShowPanel.class.getResourceAsStream("slides.xml"));
 

Parameters:
is - an InputStream containing slideshow XML
Method Detail

setXML

public void setXML(java.net.URL url)
            throws java.io.IOException
set the slide show images from a given URL. try for example
 slideshow.setXML(new URL("http://www.ling.uni-potsdam.de/~timo/projekte/dc/slides1.xml"));
 

Parameters:
url - URL to the XML
Throws:
java.io.IOException - when the URL cannot be accessed

setXML

public void setXML(java.io.InputStream is)
sets the slide show images from given slideshow XML. try for example
 slideshow.setXML(MyClass.getResourceAsStream("slides.xml"));
 
This code uses JAXB to convert the XML contained in the InputStream to SlideShowXML and SlideXML objects, which are then passed to
setXML(SlideShowXML ssx)

Parameters:
is - an InputStream containing slideshow XML

setXML

private void setXML(SlideShowPanel.SlideShowXML ssx)
set the slide show images from given slideshow XML. This creates a new images list from the given XML.

Parameters:
ssx - simple object representing the XML structure read by JAXB

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Handles slide forwarding / backwarding depending on which button this action was performed on.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

setImage

public void setImage(int i)
change to a specific slide.

Parameters:
i -

getCurrentSlideInfo

public java.lang.String getCurrentSlideInfo()
get information about the currently displayed slide.

Returns:
short textual info about the current slide.

createAndShowGUI

public static void createAndShowGUI()
used in the demo application.


main

public static void main(java.lang.String[] args)
main method used for debugging.

Parameters:
args - arguments are ignored