com.dlsc.flexgantt.swing
Class GanttChartGlassPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by com.dlsc.flexgantt.swing.util.InfiniteProgressPanel
                  extended by com.dlsc.flexgantt.swing.GanttChartGlassPane
All Implemented Interfaces:
ICommandStackListener, IProgressMonitor, ISortingListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener

public class GanttChartGlassPane
extends InfiniteProgressPanel
implements ICommandStackListener, java.beans.PropertyChangeListener, ISortingListener, IProgressMonitor

A panel designed to be used as a glass pane inside a window (frame or dialog). The panel observes the command stack of a Gantt chart. It will show a busy cursor and block the user from sending any kind of event to the user interface if it detects that the command stack started executing a command.

Since:
1.0
Author:
Dirk Lemmermann
See Also:
JRootPane.setGlassPane(Component), GanttChartFrame, GanttChartInternalFrame, Serialized Form

Nested Class Summary
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class com.dlsc.flexgantt.swing.util.InfiniteProgressPanel
alphaLevel, animation, barsCount, fps, hints, rampDelay, shield, started, text, ticker
 
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 com.dlsc.flexgantt.command.IProgressMonitor
UNKNOWN
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GanttChartGlassPane(AbstractGanttChart gc)
          Constructs a buy panel.
 
Method Summary
 void beginTask(java.lang.String name, int totalWork)
          Notifies that the main task is beginning.
 void block()
          Causes the panel to block all user input.
 void commandStackChanged(CommandStackEvent evt)
          Gets called whenever the command stack changed.
 void done()
          Notifies that the work is done; that is, either the main task is completed or the user canceled it.
 void internalWorked(double work)
          Internal method to handle scaling correctly.
 boolean isCanceled()
          Returns whether cancelation of current operation has been requested.
protected  void processEvent(java.awt.AWTEvent e)
           
 void propertyChange(java.beans.PropertyChangeEvent evt)
           
 void setCanceled(boolean value)
          Sets the cancel state to the given value.
 void setTaskName(java.lang.String name)
          Sets the task name to the given value.
 void sorting(SortingEvent evt)
          Callback method that gets invoked when a sort starts or finishes.
 void subTask(java.lang.String name)
          Notifies that a subtask of the main task is beginning.
 void unblock()
          Causes the panel to unblock all user input.
 void worked(int work)
          Notifies that a given number of work unit of the main task has been completed.
 
Methods inherited from class com.dlsc.flexgantt.swing.util.InfiniteProgressPanel
getText, interrupt, mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased, paintComponent, setText, start, stop
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, 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
 

Constructor Detail

GanttChartGlassPane

public GanttChartGlassPane(AbstractGanttChart gc)
Constructs a buy panel.

Parameters:
gc - the Gantt chart that will be protected from user input events during the execution of a command
Since:
1.0
Method Detail

block

public void block()
Causes the panel to block all user input.

Since:
1.0
See Also:
unblock()

unblock

public void unblock()
Causes the panel to unblock all user input.

Since:
1.0
See Also:
block()

processEvent

protected void processEvent(java.awt.AWTEvent e)
Overrides:
processEvent in class java.awt.Container

commandStackChanged

public void commandStackChanged(CommandStackEvent evt)
Description copied from interface: ICommandStackListener
Gets called whenever the command stack changed. The event object that is passed to this method contains information about the type of event and a reference to the command that caused the event.

Specified by:
commandStackChanged in interface ICommandStackListener
Parameters:
evt - the event issued by the command stack

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener

sorting

public void sorting(SortingEvent evt)
Description copied from interface: ISortingListener
Callback method that gets invoked when a sort starts or finishes.

Specified by:
sorting in interface ISortingListener
Parameters:
evt - an event object with details about the sorting operation

beginTask

public void beginTask(java.lang.String name,
                      int totalWork)
Description copied from interface: IProgressMonitor
Notifies that the main task is beginning. This must only be called once on a given progress monitor instance.

Specified by:
beginTask in interface IProgressMonitor
Parameters:
name - the name (or description) of the main task
totalWork - the total number of work units into which the main task is been subdivided. If the value is UNKNOWN the implementation is free to indicate progress in a way which doesn't require the total number of work units in advance.

done

public void done()
Description copied from interface: IProgressMonitor
Notifies that the work is done; that is, either the main task is completed or the user canceled it. This method may be called more than once (implementations should be prepared to handle this case).

Specified by:
done in interface IProgressMonitor

internalWorked

public void internalWorked(double work)
Description copied from interface: IProgressMonitor
Internal method to handle scaling correctly. This method must not be called by a client. Clients should always use the method worked(int).

Specified by:
internalWorked in interface IProgressMonitor
Parameters:
work - the amount of work done

isCanceled

public boolean isCanceled()
Description copied from interface: IProgressMonitor
Returns whether cancelation of current operation has been requested. Long-running operations should poll to see if cancelation has been requested.

Specified by:
isCanceled in interface IProgressMonitor
Returns:
true if cancellation has been requested, and false otherwise
See Also:
IProgressMonitor.setCanceled(boolean)

setCanceled

public void setCanceled(boolean value)
Description copied from interface: IProgressMonitor
Sets the cancel state to the given value.

Specified by:
setCanceled in interface IProgressMonitor
Parameters:
value - true indicates that cancelation has been requested (but not necessarily acknowledged); false clears this flag
See Also:
IProgressMonitor.isCanceled()

setTaskName

public void setTaskName(java.lang.String name)
Description copied from interface: IProgressMonitor
Sets the task name to the given value. This method is used to restore the task label after a nested operation was executed. Normally there is no need for clients to call this method.

Specified by:
setTaskName in interface IProgressMonitor
Parameters:
name - the name (or description) of the main task
See Also:
IProgressMonitor.beginTask(java.lang.String, int)

subTask

public void subTask(java.lang.String name)
Description copied from interface: IProgressMonitor
Notifies that a subtask of the main task is beginning. Subtasks are optional; the main task might not have subtasks.

Specified by:
subTask in interface IProgressMonitor
Parameters:
name - the name (or description) of the subtask

worked

public void worked(int work)
Description copied from interface: IProgressMonitor
Notifies that a given number of work unit of the main task has been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date.

Specified by:
worked in interface IProgressMonitor
Parameters:
work - the number of work units just completed