de.jsystems.framework.common
Class StartUpPic

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjavax.swing.JWindow
                  extended byde.jsystems.framework.common.StartUpPic
All Implemented Interfaces:
Accessible, ActionListener, EventListener, ImageObserver, MenuContainer, RootPaneContainer, Serializable

public class StartUpPic
extends JWindow
implements ActionListener

Zeigt während der Initialisierung einer Applikation ein Bild mit einer Fortschrittsanzeige an. Jede Klasse, die zum Initialisieren etwas Zeit benötigt, registriert sich hier und kann so die Anzeige aktualisieren. Wenn die Initialisierung abgeschlosen ist muß sich die registrierte Klasse wieder deregistrieren. Sobald die letzte registrierte Klasse deregistriert wurde verschwindet das Fenster von der Oberfläche. Das passiert nach einer kleinen Zeitspanne nach dem deregistrieren des letzten Senders. Damit wird ein flackern des Bildes verhindert, falls sich nach einiger Zeit nochmal ein Sender registrieren moechte, dessen Start aber etwas laenger dauert. Diese Zeitspanne betraegt 2. Sekunden. Die Klasse {1link de.jsystems.framework.common.Controller Controller} registriert sich standardmaessig beim Initialisieren hier. Deshalb wird als Default beim starten einer Anwendung auch immer ein Splash-Screen angezeigt. Klassen, die an dem Startbild aenderungen vornehmen wollen, muessen das Interface IProgressSender implementieren. Bei diesem Interface handelt es sich um ein MarkerInterface. Es enthaelt also keine zu implementierenden Methoden.

Version:
1.0
Copyright by Jens Homm 2001 - 2003
Author:
Jens Homm JSYSTEMS
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JWindow
JWindow.AccessibleJWindow
 
Nested classes inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  FPanel picturePanel
          Panel für das Bild
protected  JProgressBar progressBar
          Fortschrittsanzeige
protected  List senderList
          Vector für die einzelnen Sender
protected  FLabel statusText
          Label für den Text
 
Fields inherited from class javax.swing.JWindow
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
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
StartUpPic()
          Initialisiert das StartUpPic.
 
Method Summary
 void actionPerformed(ActionEvent ae)
          Diese Methode wird vom Timer aufgerufen.
 void addProgressSender(IProgressSender sender)
          Registriert eine neue Klase als Sender für die Fortschrittsanzeige.
protected  void init()
          Erzeugt die Oberflaeche fuer das StartUpPic.
 void readImage(IProgressSender sender, String iconName)
          Liest das Icon ein, das mit dem Iconnamen spezifiziert wurde.
 void removeProgressSender(IProgressSender sender)
          Löscht den registrierten Sender.
 void setPicture(IProgressSender sender, ImageIcon pic)
          Bild für die Anzeige festlegen.
 void setProgressProcent(IProgressSender sender, int procent)
          Setzt die Fortschrittsanzeige.
 void setProgressProcent(IProgressSender sender, String procent)
          Setzt die Fortschrittsanzeige.
 void setStatusText(IProgressSender sender, String s)
          Setzt einen Anzeigetext fuer das Startbild.
protected  void zentrieren()
          Zentriert den Splash-Screen auf der Mitte des Bildschirm.
 
Methods inherited from class javax.swing.JWindow
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, remove, setContentPane, setGlassPane, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update, windowInit
 
Methods inherited from class java.awt.Window
addNotify, addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, 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, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, 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, isOpaque, 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, 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, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

progressBar

protected JProgressBar progressBar
Fortschrittsanzeige


senderList

protected List senderList
Vector für die einzelnen Sender


statusText

protected FLabel statusText
Label für den Text


picturePanel

protected FPanel picturePanel
Panel für das Bild

Constructor Detail

StartUpPic

public StartUpPic()
Initialisiert das StartUpPic. Hier wird dann die Oberflaeche zusammengebaut und der Timer initialisiert.

Method Detail

init

protected void init()
Erzeugt die Oberflaeche fuer das StartUpPic. Das Fenster wird mit einem Bereich fuer ein Bild versehen sowie einer Fortschrittsanzeige.


addProgressSender

public void addProgressSender(IProgressSender sender)
Registriert eine neue Klase als Sender für die Fortschrittsanzeige. Beim ersten Aufruf dieser Methode wird das Fenster sichtbar.

Parameters:
sender - Der zu registrierende Sender.

removeProgressSender

public void removeProgressSender(IProgressSender sender)
Löscht den registrierten Sender. Sobald der letzte registrierte Sender ueber diese Methode geloescht wurde wird der Timer gestartet. Dann verschwindet nach 2 Sekunden das Fenster, sofern in dieser Zeit nicht ueber die Methode addProgressSender(IProgressSender) ein neuer Sender registriert wurde.

Parameters:
sender - Der zu loeschende Sender.

setPicture

public void setPicture(IProgressSender sender,
                       ImageIcon pic)
Bild für die Anzeige festlegen. Nur vorher registrierte Sender können hier was ändern. Sobald das Bild dem Panel hinzugefuegt wurde wird die Oberflaeche aktualisiert und der Dialog auf alle Faelle in den Vordergrund gestellt. Wenn der uebergebene Sender kein ueber die Methode addProgressSender(IProgressSender) registrierter Sender ist passiert nichts.

Parameters:
sender - Ein registrierter Sender.
pic - Das im Startbild anzuzeigende Bild.

readImage

public void readImage(IProgressSender sender,
                      String iconName)
Liest das Icon ein, das mit dem Iconnamen spezifiziert wurde. Der Iconname muß den kompletten Pfad des Bildes enthalten ausgehend vom Beginn des Packagepfades. Dieses Bild wird dann zentriert im Paneldargestellt. Nur vorher registrierte Sender können hier was ändern. Wenn der uebergebene Sender nicht durch die Methode addProgressSender(IProgressSender) registriert wurde passiert nichts. Nach dem einlesen des Bildes wird die Methode setPicture(IProgressSender, ImageIcon).

Parameters:
sender - Ein registrierter Sender.
iconName - Der Dateipfad mit Namen zu dem anzuzeigenden Bild.

setStatusText

public void setStatusText(IProgressSender sender,
                          String s)
Setzt einen Anzeigetext fuer das Startbild. Dieser wird unterhalb der Fortschrittsanzeige angezeigt. Wenn der uebergebene Sender nicht durch die Methode addProgressSender(IProgressSender) registriert wurde passiert nichts.

Parameters:
sender - Ein registrierter Sender.
s - Der anzuzeigende Text.

setProgressProcent

public void setProgressProcent(IProgressSender sender,
                               int procent)
Setzt die Fortschrittsanzeige. Auf Grund des hier angegebenen Wertes wird die Fortschrittsanzeige aktualisiert. Der uebergebene Wert wird dabei zusaetzlich in der Fortschrittsanzeige angezeigt. Wenn der uebergebene Sender nicht durch die Methode addProgressSender(IProgressSender) registriert wurde passiert nichts.

Parameters:
procent - Prozentualer Fortschritt als Zahl.

setProgressProcent

public void setProgressProcent(IProgressSender sender,
                               String procent)
Setzt die Fortschrittsanzeige. Auf Grund des hier angegebenen Wertes wird die Fortschrittsanzeige aktualisiert. Der uebergebene Wert wird dabei zusaetzlich in der Fortschrittsanzeige angezeigt. Wenn der uebergebene Sender nicht durch die Methode addProgressSender(IProgressSender) registriert wurde passiert nichts. Wenn sich der uebergebene Text nicht in eine Zahl umwandeln laesst wird eine NumberFormatException ausgeloest.

Parameters:
procent - Prozentualer Fortschritt als Text.

zentrieren

protected void zentrieren()
Zentriert den Splash-Screen auf der Mitte des Bildschirm.


actionPerformed

public void actionPerformed(ActionEvent ae)
Diese Methode wird vom Timer aufgerufen. Hier wird nochmals geprüft, ob nicht zwischenzeitlich wieder Sender hinzugefügt wurden. Falls nicht, wird das Startbild unsichtbar gemacht.

Specified by:
actionPerformed in interface ActionListener
Parameters:
ae - Das ActionEvent-Objekt fuer das Event.