com.dlsc.flexgantt.swing.layer
Class LayerContainer

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 com.dlsc.flexgantt.swing.layer.LayerContainer
All Implemented Interfaces:
ICommandStackListener, ICalendarModelListener, IDatelineModelListener, IGanttChartModelListener, ITreeTableModelListener, IGridComponent, ILayerContainerListener, ILayerContainerSelectionModelListener, java.awt.dnd.Autoscroll, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.TreeModelListener

public class LayerContainer
extends javax.swing.JPanel
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.beans.PropertyChangeListener, ICommandStackListener, IGanttChartModelListener, ILayerContainerSelectionModelListener, ICalendarModelListener, IDatelineModelListener, ILayerContainerListener, IGridComponent, java.awt.dnd.Autoscroll, ITreeTableModelListener

The layer container is the main user interface component on the right-hand side of the Gantt chart. It stores and manages the various UI layers that were created based on the layer information retrieved from the Gantt chart model. It also manages spreadsheets and time span selections.

Since:
1.0
Author:
Dirk Lemmermann
See Also:
Serialized Form

Nested Class Summary
static class LayerContainer.RenderingDirection
          An enumerator, which can be used to specify a rendering hint for the framework.
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String PROPERTY_ALTERNATING_BACKGROUND
          A constant used for property change events that get fired when the alteranting background color gets replaced.
static java.lang.String PROPERTY_BOOKMARK_MODEL
          Constant used for those property change events that get fired when the bookmark information changes.
static java.lang.String PROPERTY_DRAGGING_ENABLED
          A constant used for property change events that get fired when the dragging feature gets globally turned on or off.
static java.lang.String PROPERTY_GRID_GRANULARITY
          Constant used for those property change events that get fired when the grid granularity changes.
static java.lang.String PROPERTY_POLICY_PROVIDER
          A constant used for property change events that get fired when the policy provider gets replaced.
static java.lang.String PROPERTY_SELECTION_MODEL
          A constant used for property change events that get fired when the selection model gets replaced.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
LayerContainer(AbstractGanttChart ganttChart, IGanttChartModel model, TreeTable treeTable, ILayerFactory layerFactory)
          Constructs a new layer container.
 
Method Summary
 void addGridComponentListener(IGridComponentListener l)
          Adds a listener to the grid component.
 void addHighlightedObject(TimelineObjectPath path)
          Adds a single timeline object path to the set of highlighted objects.
 void addHighlightedObjects(java.util.Collection<TimelineObjectPath> paths)
          Adds a collection of timeline object paths where each timeline object referenced will be added to the set of highlighted objects.
 void addLayerContainerListener(ILayerContainerListener l)
          Adds a listener to the layer container.
 void alignEndTimes()
          Aligns the end times of all currently selected (and visible) timeline objects with each other.
 void alignStartTimes()
          Aligns the start times of all currently selected (and visible) timeline objects with each other.
 void autoscroll(java.awt.Point cursorLocn)
           
 void calendarChanged(CalendarModelEvent evt)
          Listener callback method that gets invoked whenever the calendar model changes.
 void clearHighlightedObjects()
          Clears the set of highlighted objects.
 void clearTimelineObjectSelection()
          Clears all timeline object selections on all layers, independent of whether the layer is currently visible or not.
 void commandStackChanged(CommandStackEvent evt)
          Gets called whenever the command stack changed.
 void datelineModelChanged(DatelineModelEvent evt)
          The listener's callback method that gets invoked when the model's time span or time zone changes.
 void datelineModelWillChange(DatelineModelEvent evt)
          The listener's callback method that gets invoked when the model's time span or time zone will change.
 void deleteSelectedTimelineObjects()
          Deletes all currently selected timeline objects.
protected  void fireGridChanged()
          Informs all grid component listeners that the grid used by the eventline has changed.
protected  void fireLayerContainerChanged(LayerContainerEvent evt)
          Fires a layer container event, which will be sent to all listeners currently attached to the container.
 void ganttChartChanged(GanttChartModelEvent e)
          Callback method that gets invoked whenever change occures in the Gantt chart model that is being observed by the listener.
 java.util.Collection<ObjectBounds> getAllObjectBoundsAt(int x, int y)
          Searches for and returns all object bounds for the given coordinates.
 java.awt.Color getAlternatingBackground()
          Returns the color used as an alternating background color for odd row numbers.
 java.awt.Insets getAutoscrollInsets()
           
 java.awt.Color getBackground(int row)
          Returns the background color for the given row.
 IBookmarkModel getBookmarkModel()
          Returns the (optional) bookmark model.
 java.util.List<TreeTableNode> getClipNodes()
          Returns a list of tree table nodes where each node is contained within the current drawing clip.
 int getClippingExtra()
          Returns the number of pixels that will be added to the clipping rectangle during repaint operations of the layer container.
 AbstractCustomLayer getCustomLayer(ILayer layer)
          Returns the customer layer for the given model layer.
 Dateline getDateline()
          Returns the dateline.
 Eventline getEventline()
          Returns the eventline.
 AbstractGanttChart getGanttChart()
          Returns the parent Gantt chart.
 java.lang.String getGridComponentName()
          Returns the name of the grid component.
 IGranularity getGridGranularity()
          Returns the granularity used for a virtual grid that gets used during drag & drop operations to make timeline objects snap to specific time points rather than just the current drop location.
 IGridPolicy getGridPolicy()
          Returns the grid policy used by the grid component.
 long getHighlightingDelay()
          Returns the delay in milliseconds used by the highlighting thread which makes the highlighted objects blink (default behaviour).
 ILayerFactory getLayerFactory()
          Returns the factory that was used to create the various layer UIs.
 javax.swing.Icon getLayerIcon(ILayer layer)
          Returns an icon representation for the given layer.
 int getLayerIndex(AbstractLayer layer)
          Returns the index of the given layer within the list of layers that are currently managed by the layer container.
 int getLayerIndex(ILayer layer)
          Returns the index of the given layer within the layer stack.
 ILayer[] getLayers()
          Returns the layer stack.
 ILayerContainerMenuProvider getMenuProvider()
          Returns a menu provider that can be used by the layer container to lookup a popup menu for a specific context where the context is defined by the tree path, timeline object paths, etc...
 java.awt.Dimension getMinimumSize()
           
 IGanttChartModel getModel()
          Returns the Gantt chart model.
 ObjectBounds getObjectBounds(TimelineObjectPath path)
          Returns the object bounds for the given timeline object path.
 ObjectBounds getObjectBoundsAt(int x, int y)
          Searches for and returns object bounds for the given coordinates.
 IPolicyProvider getPolicyProvider()
          Returns the layer container's policy provider.
 javax.swing.JPopupMenu getPopup()
          Returns the currently or last used popup menu.
 java.awt.Dimension getPreferredSize()
           
 java.util.Map<java.lang.Class,ITimelineObjectRenderer> getRendererMap()
          Returns the map that is containing the mapping of timeline object classes to renderers.
 javax.swing.CellRendererPane getRendererPane()
          Returns the shared renderer pane that can be used by the layer UIs to draw objects via renderers.
 LayerContainer.RenderingDirection getRenderingDirection()
          Returns a hint whether the timeline objects will be rendered right to left or left to right (default).
 int getRowAt(int y)
          Returns the row index at the given vertical location.
 java.util.List<TimelineObjectPath> getSelectedTimelineObjects()
          Returns all timeline objects that are currently selected on the visible timeline layers.
 java.util.List<TimelineObjectPath> getSelectedTimelineObjects(ILayer layer)
          Returns all timeline objects that are currently selected on the given timeline layer (independent of whether or not the layer is visible).
 ILayerContainerSelectionModel getSelectionModel()
          Returns the selection model associated with the layer container.
 ITimelineObjectLayerSelectionModel getSelectionModel(ILayer layer)
          Returns the selection model for the given layer.
 int getStartRow()
          Returns the first visible row in the currently visible rectangle.
<T extends AbstractSystemLayer>
T
getSystemLayer(java.lang.Class<T> layerType)
          Returns the UI component for the given system layer.
 Timeline getTimeline()
          Returns the timeline.
 ITimelineObjectEditor getTimelineObjectEditor(java.lang.Class cl)
          Returns a timeline object editor for an object.
 TimelineObjectLayer getTimelineObjectLayer(ILayer layer)
          Returns the timeline object layer for the given model layer.
 java.util.Collection<TimelineObjectLayer> getTimelineObjectLayers()
          Returns a collection of all timeline object layers.
 ITimelineObjectRenderer getTimelineObjectRenderer(java.lang.Class cl)
          Returns a timeline object renderer for an object.
 java.awt.Color getTimelineObjectStatusColor(java.lang.Object status)
          Returns the color mapped to the given status object.
 javax.swing.Icon getTimelineObjectStatusIcon(java.lang.Object status)
          Returns the icon mapped to the given status object.
 ITimeSpan getTimeSpanUsed()
          Returns the time span used by the layer container.
 TreeTable getTreeTable()
          Returns the tree table that is placed to the left of the layer container.
protected  java.util.List<java.lang.Class<? extends AbstractSystemLayer>> getTypesOfLowerSystemLayers()
          Returns those system layers that will be placed below the timeline object layers and the customer layers.
protected  java.util.List<java.lang.Class<? extends AbstractSystemLayer>> getTypesOfUpperSystemLayers()
          Returns those system layers that will be placed above the timeline object layers and the customer layers.
 ILayer[] getVisibleLayers()
          Returns the layer stack of those layers that are currently visible.
 boolean hasClipNodes()
          Determines whether or not the current drawing clip affected any tree table nodes.
 void hideAllLayers()
          Hides all timeline object layers.
 void hideLayer(ILayer layer)
          Hides the timeline object layer that belongs to the given model layer.
 boolean isDraggingEnabled()
          Returns TRUE if the layer container generally supports drag and drop operations on timeline objects.
 boolean isGridAutomatic()
          Determines whether the component is using an automatic grid.
 boolean isGridControlVisible()
          Determines whether the UI component used to control the grid is currently visible or not.
 boolean isHighlighted(TimelineObjectPath path)
          Determines if the timeline object specified by the given path is currently a member of the set of highlighted objects.
 boolean isHighlighting()
          Determines whether timeline objects that are contained in the set of highlighted objects shall render themselves highlighted or normal.
 boolean isIgnoringTreeTableSelection()
          Determines whether selections made in the layer container (e.g. via the lasso) will affect the selections made in the tree table.
 boolean isLayerVisible(ILayer layer)
          Checks whether the given model layer has a visible user interface layer.
 boolean isPopupShowing()
          Determines whether a popup menu is currently in use.
 boolean isPrimary()
          Determines whether the layer container is the primary layer container.
 void layerContainerChanged(LayerContainerEvent evt)
          The listener's callback method that gets invoked by the LayerContainer when the container changes.
 void mouseClicked(java.awt.event.MouseEvent evt)
           
 void mouseDragged(java.awt.event.MouseEvent evt)
           
 void mouseEntered(java.awt.event.MouseEvent evt)
           
 void mouseExited(java.awt.event.MouseEvent evt)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent evt)
           
 void mouseReleased(java.awt.event.MouseEvent evt)
           
 void moveBack(ILayer layer)
          Moves the given layer backwards causing the layer's timeline objects to be drawn at a later stage than before.
 void moveForward(ILayer layer)
          Moves the given layer forward causing the layer's timeline objects to be drawn at an earlier stage than before.
 void moveToBack(ILayer layer)
          Moves the given layer to the back so that the layer will be drawn first and all other layers will be drawn after it / on top of it.
 void moveToFront(ILayer layer)
          Moves the given layer to the front so that the layer will be drawn last and all other layers will be drawn before it / below it.
 void paintComponent(java.awt.Graphics g)
           
 void propertyChange(java.beans.PropertyChangeEvent evt)
           
 void removeGridComponentListener(IGridComponentListener l)
          Removes a listener from the grid component.
 void removeHighlightedObjects(java.util.Collection<TimelineObjectPath> paths)
          Removes a collection of timeline object paths where each timeline object referenced will be removed from the set of highlighted objects
 void removeLayerContainerListener(ILayerContainerListener l)
          Removes a listener from the container
 void repaintRow(int row)
          Repaints the given row only.
 void selectAllTimelineObjects()
          Selects all timeline objects on all layers, independent of whether the layer is currently visible or not.
 void setAlternatingBackground(java.awt.Color color)
          Sets the color used as an alternating background color for odd row numbers.
 void setBookmarkModel(IBookmarkModel model)
          Sets the (optional) bookmark model.
 void setClippingExtra(int extra)
          Specifies the number of pixels that will be added to the clipping rectangle during repaint operations of the layer container.
 void setDraggingEnabled(boolean enabled)
          Enabled / disables dragging globally.
 void setGridAutomatic(boolean auto)
          Specifies whether the component is using an automatic grid.
 void setGridControlVisible(boolean b)
          Specifies whether the grid control will be visible in the Gantt chart.
 void setGridGranularity(IGranularity granularity)
          Sets the granularity used for a virtual grid that gets used during drag & drop operations to make timeline objects snap to specific time points rather than just the current drop location.
 void setHighlighting(boolean b)
          Sets the highlight flag that will be passed to timeline object renderers to tell them whether those timeline objects contained in the set of highlighted objects are to be rendered highlighted or not.
 void setHighlightingDelay(long delay)
          Sets the delay in milliseconds used by the highlighting thread which makes the highlighted objects blink (default behaviour).
 void setIgnoringTreeTableSelection(boolean ignore)
          Specifies whether selections made in the layer container (e.g. via the lasso) will affect the selections made in the tree table.
 void setLayerIcon(ILayer layer, javax.swing.Icon icon)
          Sets an icon that will be used to represent the given layer in various user interface components, for example in the LayerPalette.
 void setMenuProvider(ILayerContainerMenuProvider provider)
          Specifies a menu provider that can be used by the layer container to lookup a popup menu for a specific context where the context is defined by the tree path, timeline object paths, etc...
 void setPolicyProvider(IPolicyProvider provider)
          Changes the container's policy provider.
 void setPrimary(boolean primary)
          Specifies that the layer container is the primary layer container.
 void setRendererMap(java.util.Map<java.lang.Class,ITimelineObjectRenderer> map)
          Sets an entire set of timeline object renderers at once.
 void setRenderingDirection(LayerContainer.RenderingDirection direction)
          Provides a hint whether the timeline objects will be rendered right to left or left to right (default).
 void setSelectionModel(ILayerContainerSelectionModel model)
          Replaces the current selection model with a new one.
 void setSelectionModel(ILayer layer, ITimelineObjectLayerSelectionModel model)
          Sets a selection model implementation for the given layer.
 void setTimelineObjectEditor(java.lang.Class objectType, ITimelineObjectEditor editor)
          Maps the implementation of a timeline object editor to a class definition.
 void setTimelineObjectRenderer(java.lang.Class objectType, ITimelineObjectRenderer renderer)
          Maps the implementation of a timeline object renderer to a class definition.
 void setTimelineObjectStatusColor(java.lang.Object status, java.awt.Color color)
          Maps a color to the given status object.
 void setTimelineObjectStatusIcon(java.lang.Object status, javax.swing.Icon icon)
          Maps an icon to the given status object.
 void showAllLayers()
          Shows all timeline object layers.
 void showAllObjects()
          Scrolls and zooms the Dateline in such a way that allf timeline objects (stored on the currently visible rows) become visible.
 void showEarliestObjects()
          Scrolls the Dateline in such a way that the earliest timeline objects (stored on the currently visible rows) become visible.
 void showLatestObjects()
          Scrolls the Dateline in such a way that the latest timeline objects (stored on the currently visible rows) become visible.
 void showLayer(ILayer layer)
          Ensures that the given layer becomes visible.
 void timeSpansAdded(TimeSpanSelectionEvent evt)
          Callback method that gets invoked when time spans have been added to the selection model.
 void timeSpansRemoved(TimeSpanSelectionEvent evt)
          Callback method that gets invoked when time spans have been removed from the selection model.
 void treeNodeKeyChanged(TreeTableModelEvent evt)
          Callback method that gets invoked if the user edited the key value of a tree table node.
 void treeNodesChanged(javax.swing.event.TreeModelEvent e)
           
 void treeNodesInserted(javax.swing.event.TreeModelEvent e)
           
 void treeNodesRemoved(javax.swing.event.TreeModelEvent e)
           
 void treeNodeValueChanged(TreeTableModelEvent evt)
          Callback method that gets invoked if the user edited a column value of a tree table node.
 void treeStructureChanged(javax.swing.event.TreeModelEvent e)
           
 void updateUI()
          Calls JComponent.updateUI() and additionally initializes some colors for the layer container.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
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, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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

PROPERTY_DRAGGING_ENABLED

public static final java.lang.String PROPERTY_DRAGGING_ENABLED
A constant used for property change events that get fired when the dragging feature gets globally turned on or off.

Since:
1.0
See Also:
Constant Field Values

PROPERTY_POLICY_PROVIDER

public static final java.lang.String PROPERTY_POLICY_PROVIDER
A constant used for property change events that get fired when the policy provider gets replaced.

Since:
1.0
See Also:
Constant Field Values

PROPERTY_SELECTION_MODEL

public static final java.lang.String PROPERTY_SELECTION_MODEL
A constant used for property change events that get fired when the selection model gets replaced.

Since:
1.0
See Also:
Constant Field Values

PROPERTY_ALTERNATING_BACKGROUND

public static final java.lang.String PROPERTY_ALTERNATING_BACKGROUND
A constant used for property change events that get fired when the alteranting background color gets replaced.

Since:
1.0
See Also:
Constant Field Values

PROPERTY_BOOKMARK_MODEL

public static final java.lang.String PROPERTY_BOOKMARK_MODEL
Constant used for those property change events that get fired when the bookmark information changes.

Since:
1.0
See Also:
setBookmarkModel(IBookmarkModel), Constant Field Values

PROPERTY_GRID_GRANULARITY

public static final java.lang.String PROPERTY_GRID_GRANULARITY
Constant used for those property change events that get fired when the grid granularity changes.

Since:
1.0
See Also:
setBookmarkModel(IBookmarkModel), Constant Field Values
Constructor Detail

LayerContainer

public LayerContainer(AbstractGanttChart ganttChart,
                      IGanttChartModel model,
                      TreeTable treeTable,
                      ILayerFactory layerFactory)
Constructs a new layer container.

Parameters:
ganttChart - the parent container
model - the Gantt chart model visualized by the layer container
treeTable - the tree table that belongs to the layer container
layerFactory - the factory used to create the different layer types
Since:
1.0
Method Detail

calendarChanged

public void calendarChanged(CalendarModelEvent evt)
Description copied from interface: ICalendarModelListener
Listener callback method that gets invoked whenever the calendar model changes.

Specified by:
calendarChanged in interface ICalendarModelListener
Parameters:
evt - the change event with more information on the source of the change

ganttChartChanged

public void ganttChartChanged(GanttChartModelEvent e)
Description copied from interface: IGanttChartModelListener
Callback method that gets invoked whenever change occures in the Gantt chart model that is being observed by the listener.

Specified by:
ganttChartChanged in interface IGanttChartModelListener
Parameters:
e - the event object describing the change that took place in the Gantt chart model

getLayerFactory

public ILayerFactory getLayerFactory()
Returns the factory that was used to create the various layer UIs.

Returns:
the container's layer factory
Since:
1.0

getTypesOfUpperSystemLayers

protected java.util.List<java.lang.Class<? extends AbstractSystemLayer>> getTypesOfUpperSystemLayers()
Returns those system layers that will be placed above the timeline object layers and the customer layers. The system layers will be added to the layer container in the order found in the returned list. The default ordering is: The default implementation of this method takes into account that the AbstractGanttChart.isVerticalLinesOnTop() method controls whether the GridLayer will be added to the system layers that are on top or the ones that are on the bottom.

Returns:
the order in which system layers will be added above the timeline object and custom layers
Since:
1.0
See Also:
getTypesOfLowerSystemLayers()

getTypesOfLowerSystemLayers

protected java.util.List<java.lang.Class<? extends AbstractSystemLayer>> getTypesOfLowerSystemLayers()
Returns those system layers that will be placed below the timeline object layers and the customer layers. The system layers will be added to the layer container in the order found in the returned list. The default ordering is: The default implementation of this method takes into account that the AbstractGanttChart.isVerticalLinesOnTop() method controls whether the GridLayer will be added to the system layers that are on top or the ones that are on the bottom.

Returns:
the order in which system layers will be added above the timeline object and custom layers
Since:
1.0
See Also:
getTypesOfUpperSystemLayers()

getLayerIndex

public int getLayerIndex(AbstractLayer layer)
Returns the index of the given layer within the list of layers that are currently managed by the layer container. Layers in the list are drawn in the order stored in the list. Since the background layer always gets drawn first its index is 0.

Parameters:
layer - the layer for which to return the index
Returns:
the layer's index
Since:
1.0

getSystemLayer

public <T extends AbstractSystemLayer> T getSystemLayer(java.lang.Class<T> layerType)
Returns the UI component for the given system layer.

Type Parameters:
T - the type of the system layer
Parameters:
layerType - the system layer type
Returns:
the UI component for the given system layer ID
Since:
1.0

getObjectBoundsAt

public ObjectBounds getObjectBoundsAt(int x,
                                      int y)
Searches for and returns object bounds for the given coordinates. Only currently visible layers will be considered.

Parameters:
x - the x-coordinate
y - the y-coordinate
Returns:
the object bounds at the given location
Since:
1.0

getAllObjectBoundsAt

public java.util.Collection<ObjectBounds> getAllObjectBoundsAt(int x,
                                                               int y)
Searches for and returns all object bounds for the given coordinates. Only currently visible layers will be considered.

Parameters:
x - the x-coordinate
y - the y-coordinate
Returns:
all object bounds at the given location
Since:
1.0
See Also:
getObjectBoundsAt(int, int)

getObjectBounds

public ObjectBounds getObjectBounds(TimelineObjectPath path)
Returns the object bounds for the given timeline object path.

Parameters:
path - the path to locate the timeline object
Returns:
the object bounds for the given path
Since:
1.0

getSelectedTimelineObjects

public java.util.List<TimelineObjectPath> getSelectedTimelineObjects()
Returns all timeline objects that are currently selected on the visible timeline layers.

Returns:
a list of all selected (and visible) timeline objects
Since:
1.0

getSelectedTimelineObjects

public java.util.List<TimelineObjectPath> getSelectedTimelineObjects(ILayer layer)
Returns all timeline objects that are currently selected on the given timeline layer (independent of whether or not the layer is visible).

Parameters:
layer - the layer for which to return the selected timeline objects
Returns:
a list of all selected timeline objects on the given layer
Since:
1.0

getTimelineObjectLayer

public TimelineObjectLayer getTimelineObjectLayer(ILayer layer)
Returns the timeline object layer for the given model layer.

Parameters:
layer - the model layer
Returns:
the UI component for the given model layer
Since:
1.0

getTimelineObjectLayers

public java.util.Collection<TimelineObjectLayer> getTimelineObjectLayers()
Returns a collection of all timeline object layers.

Returns:
all timeline layers
Since:
1.0

getCustomLayer

public AbstractCustomLayer getCustomLayer(ILayer layer)
Returns the customer layer for the given model layer. The model layer has to be a custom layer specification.

Parameters:
layer - the model layer
Returns:
the custom layer for the given model layer
Since:
1.0
See Also:
ILayer.isCustomLayer()

updateUI

public void updateUI()
Calls JComponent.updateUI() and additionally initializes some colors for the layer container. The colors are based on colors retrieved from the tree table.

Overrides:
updateUI in class javax.swing.JPanel
Since:
1.0
See Also:
JPanel.updateUI()

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class javax.swing.JComponent

getTimeline

public Timeline getTimeline()
Returns the timeline. This is a convenience method delegating to AbstractGanttChart.getTimeline().

Returns:
the Gantt chart's timeline
Since:
1.0
See Also:
getDateline(), getEventline()

getDateline

public Dateline getDateline()
Returns the dateline. This is a convenience method delegating to Timeline.getDateline().

Returns:
the Gantt chart's dateline
Since:
1.0
See Also:
getTimeline(), getEventline()

getEventline

public Eventline getEventline()
Returns the eventline. This is a convenience method delegating to Timeline.getEventline().

Returns:
the Gantt chart's dateline
Since:
1.0
See Also:
getTimeline(), getDateline()

getModel

public IGanttChartModel getModel()
Returns the Gantt chart model.

Returns:
the model
Since:
1.0

getGanttChart

public AbstractGanttChart getGanttChart()
Returns the parent Gantt chart.

Returns:
the Gantt chart parent
Since:
1.0

getTreeTable

public TreeTable getTreeTable()
Returns the tree table that is placed to the left of the layer container.

Returns:
the tree table
Since:
1.0

getBackground

public java.awt.Color getBackground(int row)
Returns the background color for the given row. If an alternating background color has been specified then this method will return it for any even row number.

Parameters:
row - the row for which to return a background color
Returns:
a background color for the given row
Since:
1.0

getRowAt

public int getRowAt(int y)
Returns the row index at the given vertical location.

Parameters:
y - the y-coordinate for which to return a row number
Returns:
the row at the given location
Since:
1.0

getTimeSpanUsed

public ITimeSpan getTimeSpanUsed()
Returns the time span used by the layer container. The span depends on the time spans used by the individual custom and timeline layers. The method will only consider the currently visible timeline object layers.

Returns:
the time span used by the layer container
Since:
1.0
See Also:
AbstractLayer.getTimeSpanUsed()

getStartRow

public int getStartRow()
Returns the first visible row in the currently visible rectangle. The layer container caches this value for the layers. This way we save a lot of calls to the binary search method TreeTable.getRowAt(int)

Returns:
the first visible row
Since:
1.0

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

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

getLayers

public ILayer[] getLayers()
Returns the layer stack. The timeline and custom layer UIs are added in the same order as this array. The stack does not express whether a layer is currently visible or not.

Returns:
the layer stack
Since:
1.0
See Also:
getVisibleLayers(), moveBack(ILayer), moveForward(ILayer), moveToBack(ILayer), moveToFront(ILayer)

getVisibleLayers

public ILayer[] getVisibleLayers()
Returns the layer stack of those layers that are currently visible. The timeline and custom layer UIs are added in the same order as this array.

Returns:
the (visible) layer stack
Since:
1.0
See Also:
getLayers()

isLayerVisible

public boolean isLayerVisible(ILayer layer)
Checks whether the given model layer has a visible user interface layer.

Parameters:
layer - the model layer to check for visibility
Returns:
TRUE if the model layer is currently visualized
Since:
1.0

moveToBack

public void moveToBack(ILayer layer)
Moves the given layer to the back so that the layer will be drawn first and all other layers will be drawn after it / on top of it. The layer's timeline objects will appear as if they were physically placed all the way in the background.

Parameters:
layer - the layer that will be moved to the back
Since:
1.0
See Also:
moveToFront(ILayer), moveBack(ILayer), moveForward(ILayer)

moveToFront

public void moveToFront(ILayer layer)
Moves the given layer to the front so that the layer will be drawn last and all other layers will be drawn before it / below it. The layer's timeline objects will appear as if they were physically placed in front of all other timeline objects.

Parameters:
layer - the layer that will be moved to the front
Since:
1.0
See Also:
moveToBack(ILayer), moveBack(ILayer), moveForward(ILayer)

moveBack

public void moveBack(ILayer layer)
Moves the given layer backwards causing the layer's timeline objects to be drawn at a later stage than before. Some objects that used to be drawn below the layer's objects might now show up on top of them.

Parameters:
layer - the layer that will be moved backwards
Since:
1.0
See Also:
moveForward(ILayer), moveToBack(ILayer), moveToFront(ILayer)

moveForward

public void moveForward(ILayer layer)
Moves the given layer forward causing the layer's timeline objects to be drawn at an earlier stage than before. Some objects that used to be drawn on top of the layer's objects might now show up below them.

Parameters:
layer - the layer that will be moved backwards
Since:
1.0
See Also:
moveForward(ILayer), moveToBack(ILayer), moveToFront(ILayer)

getLayerIndex

public int getLayerIndex(ILayer layer)
Returns the index of the given layer within the layer stack. The method takes all layers into account, not just the visible ones.

Parameters:
layer - the layer for which to return the index
Returns:
the layer's index within the layer stack (-1 if layer is not a member of the container)
Since:
1.0
See Also:
getLayers()

showLayer

public void showLayer(ILayer layer)
Ensures that the given layer becomes visible.

Parameters:
layer - the layer to show
Since:
1.0
See Also:
hideLayer(ILayer)

showAllLayers

public void showAllLayers()
Shows all timeline object layers.

Since:
1.0

hideLayer

public void hideLayer(ILayer layer)
Hides the timeline object layer that belongs to the given model layer.

Parameters:
layer - the layer to hide
Since:
1.0
See Also:
showLayer(ILayer)

hideAllLayers

public void hideAllLayers()
Hides all timeline object layers.

Since:
1.0

alignStartTimes

public void alignStartTimes()
Aligns the start times of all currently selected (and visible) timeline objects with each other. After this operation all selected timeline objects will have the same start time.

Since:
1.0
See Also:
alignEndTimes()

alignEndTimes

public void alignEndTimes()
Aligns the end times of all currently selected (and visible) timeline objects with each other. After this operation all selected timeline objects will have the same end time.

Since:
1.0
See Also:
alignStartTimes()

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent evt)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent evt)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent evt)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent evt)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent evt)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent evt)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

getPolicyProvider

public IPolicyProvider getPolicyProvider()
Returns the layer container's policy provider.

Returns:
the container's policy provider
Since:
1.0

setPolicyProvider

public void setPolicyProvider(IPolicyProvider provider)
Changes the container's policy provider. Calling this method will cause a property change event to be fired where the property name is equal to PROPERTY_POLICY_PROVIDER.

Parameters:
provider - the new policy provider
Since:
1.0
See Also:
getPolicyProvider()

setDraggingEnabled

public void setDraggingEnabled(boolean enabled)
Enabled / disables dragging globally. Calling this method will cause a property change event to be fired where the property name is equal to PROPERTY_DRAGGING_ENABLED.

Parameters:
enabled - enables / disables dragging
Since:
1.0
See Also:
isDraggingEnabled()

isDraggingEnabled

public boolean isDraggingEnabled()
Returns TRUE if the layer container generally supports drag and drop operations on timeline objects.

Returns:
TRUE if the layer container supports DnD
Since:
1.0
See Also:
setDraggingEnabled(boolean)

getSelectionModel

public ILayerContainerSelectionModel getSelectionModel()
Returns the selection model associated with the layer container. Each container has its own selection model that is used to manage selected time spans.

Returns:
the container's selection model
Since:
1.0
See Also:
setSelectionModel(ILayerContainerSelectionModel), DefaultLayerContainerSelectionModel

setSelectionModel

public void setSelectionModel(ILayerContainerSelectionModel model)
Replaces the current selection model with a new one. Calling this method will cause a property change event to be fired where the property name is equal to PROPERTY_SELECTION_MODEL.

Parameters:
model - the new selection model
Since:
1.0
See Also:
getSelectionModel(), DefaultLayerContainerSelectionModel

timeSpansAdded

public void timeSpansAdded(TimeSpanSelectionEvent evt)
Description copied from interface: ILayerContainerSelectionModelListener
Callback method that gets invoked when time spans have been added to the selection model.

Specified by:
timeSpansAdded in interface ILayerContainerSelectionModelListener
Parameters:
evt - an event describing the modification of the selection model
See Also:
ILayerContainerSelectionModelListener.timeSpansRemoved(TimeSpanSelectionEvent)

timeSpansRemoved

public void timeSpansRemoved(TimeSpanSelectionEvent evt)
Description copied from interface: ILayerContainerSelectionModelListener
Callback method that gets invoked when time spans have been removed from the selection model.

Specified by:
timeSpansRemoved in interface ILayerContainerSelectionModelListener
Parameters:
evt - an event describing the modification of the selection model
See Also:
ILayerContainerSelectionModelListener.timeSpansAdded(TimeSpanSelectionEvent)

getMenuProvider

public ILayerContainerMenuProvider getMenuProvider()
Returns a menu provider that can be used by the layer container to lookup a popup menu for a specific context where the context is defined by the tree path, timeline object paths, etc...

Returns:
a menu provider for retrieving context-aware popup menus
Since:
1.0

setMenuProvider

public void setMenuProvider(ILayerContainerMenuProvider provider)
Specifies a menu provider that can be used by the layer container to lookup a popup menu for a specific context where the context is defined by the tree path, timeline object paths, etc...

Parameters:
provider - the provider that will be used by the layer container to find a suitable popup menu for a specific context
Since:
1.0

getAlternatingBackground

public java.awt.Color getAlternatingBackground()
Returns the color used as an alternating background color for odd row numbers. Using alternating row colors greatly enhances the readability of the Gantt chart information.

Returns:
the background color used for odd row numbers
Since:
1.0
See Also:
setAlternatingBackground(Color), TreeTable.getAlternatingBackground()

setAlternatingBackground

public void setAlternatingBackground(java.awt.Color color)
Sets the color used as an alternating background color for odd row numbers. Using alternating row colors greatly enhances the readability of the Gantt chart information. Calling this method will trigger a property change event with the ID PROPERTY_ALTERNATING_BACKGROUND.

Parameters:
color - the background color for odd row numbers
Since:
1.0

getClipNodes

public java.util.List<TreeTableNode> getClipNodes()
Returns a list of tree table nodes where each node is contained within the current drawing clip. Layers can use this method to implement a loop over all nodes in the list to perform their drawing operations.

Returns:
those tree table nodes affected by the current drawing clip
Since:
1.0

hasClipNodes

public boolean hasClipNodes()
Determines whether or not the current drawing clip affected any tree table nodes. The clip might have been at the bottom of the Gantt chart where no tree table nodes are displayed but only empty rows to fill the chart and make it look nice.

Returns:
TRUE if tree table nodes are affected by the current drawing clip
Since:
1.0

setTimelineObjectStatusColor

public void setTimelineObjectStatusColor(java.lang.Object status,
                                         java.awt.Color color)
Maps a color to the given status object. The color can be used by the user interface (for example the OverviewPalette) to render timeline objects differently based on their status.

Parameters:
status - the status object to which a color gets mapped
color - the color to use for the given status
Since:
1.0

getTimelineObjectStatusColor

public java.awt.Color getTimelineObjectStatusColor(java.lang.Object status)
Returns the color mapped to the given status object. The color can be used by the user interface (for example the OverviewPalette) to render timeline objects differently based on their status.

Parameters:
status - the status object to which a color gets mapped
Returns:
the color to use for the given status
Since:
1.0

setTimelineObjectStatusIcon

public void setTimelineObjectStatusIcon(java.lang.Object status,
                                        javax.swing.Icon icon)
Maps an icon to the given status object. The icon can be used by the user interface (for example the OverviewPalette) to render timeline objects differently based on their status.

Parameters:
status - the status object to which a color gets mapped
icon - the icon to use for the given status
Since:
1.0

getTimelineObjectStatusIcon

public javax.swing.Icon getTimelineObjectStatusIcon(java.lang.Object status)
Returns the icon mapped to the given status object. The icon can be used by the user interface (for example the OverviewPalette) to render timeline objects differently based on their status.

Parameters:
status - the status object to which a color gets mapped
Returns:
the icon to use for the given status
Since:
1.0

datelineModelWillChange

public void datelineModelWillChange(DatelineModelEvent evt)
Description copied from interface: IDatelineModelListener
The listener's callback method that gets invoked when the model's time span or time zone will change.

Specified by:
datelineModelWillChange in interface IDatelineModelListener
Parameters:
evt - the event that occured on the dateline

datelineModelChanged

public void datelineModelChanged(DatelineModelEvent evt)
Description copied from interface: IDatelineModelListener
The listener's callback method that gets invoked when the model's time span or time zone changes.

Specified by:
datelineModelChanged in interface IDatelineModelListener
Parameters:
evt - the event that occured on the dateline

getRendererPane

public javax.swing.CellRendererPane getRendererPane()
Returns the shared renderer pane that can be used by the layer UIs to draw objects via renderers.

Returns:
the shared renderer instance
Since:
1.0

addLayerContainerListener

public void addLayerContainerListener(ILayerContainerListener l)
Adds a listener to the layer container.

Parameters:
l - the added listener
Since:
1.0

removeLayerContainerListener

public void removeLayerContainerListener(ILayerContainerListener l)
Removes a listener from the container

Parameters:
l - the removed listener
Since:
1.0

fireLayerContainerChanged

protected void fireLayerContainerChanged(LayerContainerEvent evt)
Fires a layer container event, which will be sent to all listeners currently attached to the container.

Parameters:
evt - the layer container event
Since:
1.0

layerContainerChanged

public void layerContainerChanged(LayerContainerEvent evt)
Description copied from interface: ILayerContainerListener
The listener's callback method that gets invoked by the LayerContainer when the container changes.

Specified by:
layerContainerChanged in interface ILayerContainerListener

getPopup

public javax.swing.JPopupMenu getPopup()
Returns the currently or last used popup menu. Popup menus are looked up by the layer container via an ILayerContainerMenuProvider or by calling JComponent.getComponentPopupMenu().

Returns:
the currently or last used popup menu
Since:
1.0

isPopupShowing

public boolean isPopupShowing()
Determines whether a popup menu is currently in use.

Returns:
TRUE if a popup is used
Since:
1.0

addHighlightedObject

public void addHighlightedObject(TimelineObjectPath path)
Adds a single timeline object path to the set of highlighted objects.

Parameters:
path - a timeline object path that will be added to the set of highlighted objects
Since:
1.0
See Also:
addHighlightedObjects(Collection), removeHighlightedObjects(Collection), clearHighlightedObjects()

addHighlightedObjects

public void addHighlightedObjects(java.util.Collection<TimelineObjectPath> paths)
Adds a collection of timeline object paths where each timeline object referenced will be added to the set of highlighted objects.

Parameters:
paths - a collection of timeline object paths where each timeline object referenced will be added to the set of highlighted objects
Since:
1.0
See Also:
removeHighlightedObjects(Collection), clearHighlightedObjects()

removeHighlightedObjects

public void removeHighlightedObjects(java.util.Collection<TimelineObjectPath> paths)
Removes a collection of timeline object paths where each timeline object referenced will be removed from the set of highlighted objects

Parameters:
paths - a collection of timeline object paths where each timeline object referenced will be removed from the set of highlighted objects
Since:
1.0
See Also:
addHighlightedObjects(Collection), clearHighlightedObjects()

clearHighlightedObjects

public void clearHighlightedObjects()
Clears the set of highlighted objects.

Since:
1.0
See Also:
addHighlightedObjects(Collection), removeHighlightedObjects(Collection)

isHighlighted

public boolean isHighlighted(TimelineObjectPath path)
Determines if the timeline object specified by the given path is currently a member of the set of highlighted objects.

Parameters:
path - the path pointing to the timeline object to check for highlighting
Returns:
TRUE if the referenced timeline object is a member of the set of highlighted objects
Since:
1.0

setHighlighting

public void setHighlighting(boolean b)
Sets the highlight flag that will be passed to timeline object renderers to tell them whether those timeline objects contained in the set of highlighted objects are to be rendered highlighted or not.

Parameters:
b - if TRUE highlighting will be turned on
Since:
1.0
See Also:
isHighlighting(), addHighlightedObjects(Collection), removeHighlightedObjects(Collection), clearHighlightedObjects()

isHighlighting

public boolean isHighlighting()
Determines whether timeline objects that are contained in the set of highlighted objects shall render themselves highlighted or normal.

Returns:
TRUE if highlighting is turned on
Since:
1.0
See Also:
setHighlighting(boolean), addHighlightedObjects(Collection), removeHighlightedObjects(Collection), clearHighlightedObjects()

getHighlightingDelay

public long getHighlightingDelay()
Returns the delay in milliseconds used by the highlighting thread which makes the highlighted objects blink (default behaviour).

Returns:
the highlight thread delay (in milliseconds)
Since:
1.0

setHighlightingDelay

public void setHighlightingDelay(long delay)
Sets the delay in milliseconds used by the highlighting thread which makes the highlighted objects blink (default behaviour).

Parameters:
delay - the highlight thread delay (in milliseconds)
Since:
1.0

setTimelineObjectRenderer

public void setTimelineObjectRenderer(java.lang.Class objectType,
                                      ITimelineObjectRenderer renderer)
Maps the implementation of a timeline object renderer to a class definition.

Parameters:
objectType - the type of those timeline objects that will be rendered with the given renderer
renderer - an implementation that will be used to renderer instances of the given object type
Since:
1.0
See Also:
DefaultTimelineObjectRenderer, getTimelineObjectRenderer(Class)

setTimelineObjectEditor

public void setTimelineObjectEditor(java.lang.Class objectType,
                                    ITimelineObjectEditor editor)
Maps the implementation of a timeline object editor to a class definition.

Parameters:
objectType - the type of those timeline objects that will be rendered with the given renderer
editor - an implementation that will be used to edit instances of the given object type
Since:
1.0
See Also:
AbstractTimelineObjectEditor, getTimelineObjectEditor(Class)

getTimelineObjectRenderer

public ITimelineObjectRenderer getTimelineObjectRenderer(java.lang.Class cl)
Returns a timeline object renderer for an object. The lookup of the renderer is based on the object type of the given object.

Parameters:
cl - the object type in need of rendering
Returns:
a matching timeline object renderer implementation
Since:
1.0
See Also:
setTimelineObjectRenderer(Class, ITimelineObjectRenderer), DefaultTimelineObjectRenderer

getTimelineObjectEditor

public ITimelineObjectEditor getTimelineObjectEditor(java.lang.Class cl)
Returns a timeline object editor for an object. The lookup of the editor is based on the object type of the given object. This method will return the default timeline object editor if no other editor was explicitly assigned to the type or any supertype of the given object.

Parameters:
cl - the object type in need of editing
Returns:
a matching timeline object editor implementation
Since:
1.0
See Also:
setTimelineObjectEditor(Class, ITimelineObjectEditor), AbstractTimelineObjectEditor

setLayerIcon

public void setLayerIcon(ILayer layer,
                         javax.swing.Icon icon)
Sets an icon that will be used to represent the given layer in various user interface components, for example in the LayerPalette.

Parameters:
layer - the layer to which the icon will be mapped
icon - the icon that will be used to visualize the given layer
Since:
1.0
See Also:
getLayerIcon(ILayer)

getLayerIcon

public javax.swing.Icon getLayerIcon(ILayer layer)
Returns an icon representation for the given layer.

Parameters:
layer - the layer for which to return an icon
Returns:
an icon for the given layer
Since:
1.0
See Also:
setLayerIcon(ILayer, Icon)

getSelectionModel

public ITimelineObjectLayerSelectionModel getSelectionModel(ILayer layer)
Returns the selection model for the given layer.

Parameters:
layer - the layer for which to return a selection model
Returns:
the selection model for the given layer
Since:
1.0
See Also:
setSelectionModel(ILayer, ITimelineObjectLayerSelectionModel)

setSelectionModel

public void setSelectionModel(ILayer layer,
                              ITimelineObjectLayerSelectionModel model)
Sets a selection model implementation for the given layer.

Parameters:
layer - the layer for which to set a selection model
model - the selection model for the given layer
Since:
1.0
See Also:
getSelectionModel(ILayer)

getRendererMap

public java.util.Map<java.lang.Class,ITimelineObjectRenderer> getRendererMap()
Returns the map that is containing the mapping of timeline object classes to renderers.

Returns:
the renderer map used by the layer container to lookup renderers based on the type of a timeline object
Since:
1.0

setRendererMap

public void setRendererMap(java.util.Map<java.lang.Class,ITimelineObjectRenderer> map)
Sets an entire set of timeline object renderers at once. This is a convenient way to copy the renderers from one layer container to another.

Parameters:
map - the renderers map used by the layer container to lookup renderers based on the type of a timeline object
Since:
1.0

getBookmarkModel

public IBookmarkModel getBookmarkModel()
Returns the (optional) bookmark model. A bookmark control will be added to the Gantt chart if a bookmark model is specified.

Returns:
the (optional) bookmark model
Since:
1.0
See Also:
NavigationControlPanel

setBookmarkModel

public void setBookmarkModel(IBookmarkModel model)
Sets the (optional) bookmark model.

Parameters:
model - the bookmark model
Since:
1.0
See Also:
PagingControlPanel

getGridGranularity

public IGranularity getGridGranularity()
Returns the granularity used for a virtual grid that gets used during drag & drop operations to make timeline objects snap to specific time points rather than just the current drop location.

Specified by:
getGridGranularity in interface IGridComponent
Returns:
the grid granularity
Since:
1.0

setGridGranularity

public void setGridGranularity(IGranularity granularity)
Sets the granularity used for a virtual grid that gets used during drag & drop operations to make timeline objects snap to specific time points rather than just the current drop location.

Specified by:
setGridGranularity in interface IGridComponent
Parameters:
granularity - the grid granularity
Since:
1.0
See Also:
IGridComponent.setGridAutomatic(boolean)

setGridAutomatic

public void setGridAutomatic(boolean auto)
Description copied from interface: IGridComponent
Specifies whether the component is using an automatic grid. A grid is automatic if it is not based on the grid granularity but on some other granularity of various origin. The dateline, for example, displays a major and a minor time (granularity). The minor granularity can be used for calculating grid locations.

Specified by:
setGridAutomatic in interface IGridComponent
Parameters:
auto - if TRUE the grid gets calculated automatically and not based on the given grid granularity

isGridAutomatic

public boolean isGridAutomatic()
Description copied from interface: IGridComponent
Determines whether the component is using an automatic grid. A grid is automatic if it is not based on the grid granularity but on some other granularity of various origin. The dateline, for example, displays a major and a minor time (granularity). The minor granularity can be used for calculating grid locations.

Specified by:
isGridAutomatic in interface IGridComponent
Returns:
TRUE if the grid gets calculated automatically and not based on the given grid granularity

setGridControlVisible

public void setGridControlVisible(boolean b)
Specifies whether the grid control will be visible in the Gantt chart. Calling this method will cause an event to be fired to all grid component listeners currently attached to the layer container.

Parameters:
b - if TRUE the control will be shown
Since:
1.0
See Also:
IGridComponentListener.gridComponentChanged()

isGridControlVisible

public boolean isGridControlVisible()
Description copied from interface: IGridComponent
Determines whether the UI component used to control the grid is currently visible or not.

Specified by:
isGridControlVisible in interface IGridComponent
Returns:
TRUE if the grid control is visible

getGridComponentName

public java.lang.String getGridComponentName()
Description copied from interface: IGridComponent
Returns the name of the grid component. This is useful for displaying a grid control so that the controls used for the different grid components can be distinguished from each other.

Specified by:
getGridComponentName in interface IGridComponent
Returns:
the name of the grid component

getGridPolicy

public IGridPolicy getGridPolicy()
Description copied from interface: IGridComponent
Returns the grid policy used by the grid component. Each component can have its own grid policy, which is used to determine which granularities are supported by the component.

Specified by:
getGridPolicy in interface IGridComponent
Returns:
the component's grid policy

isPrimary

public boolean isPrimary()
Determines whether the layer container is the primary layer container. A layer container is considered primary if it is the top-most layer container right below the timeline.

Returns:
TRUE if the layer container is the primary one
Since:
1.0

setPrimary

public void setPrimary(boolean primary)
Specifies that the layer container is the primary layer container. A layer container is considered primary if it is the top-most layer container right below the timeline.

Parameters:
primary - if TRUE the layer container is the primary one
Since:
1.0

showEarliestObjects

public void showEarliestObjects()
Scrolls the Dateline in such a way that the earliest timeline objects (stored on the currently visible rows) become visible.

Since:
1.0

showLatestObjects

public void showLatestObjects()
Scrolls the Dateline in such a way that the latest timeline objects (stored on the currently visible rows) become visible.

Since:
1.0

showAllObjects

public void showAllObjects()
Scrolls and zooms the Dateline in such a way that allf timeline objects (stored on the currently visible rows) become visible.

Since:
1.0

selectAllTimelineObjects

public void selectAllTimelineObjects()
Selects all timeline objects on all layers, independent of whether the layer is currently visible or not.

Since:
1.0

clearTimelineObjectSelection

public void clearTimelineObjectSelection()
Clears all timeline object selections on all layers, independent of whether the layer is currently visible or not.

Since:
1.0

deleteSelectedTimelineObjects

public void deleteSelectedTimelineObjects()
Deletes all currently selected timeline objects. A compound command will be created composed of individual delete commands, one for each timeline object that gets deleted.

Since:
1.0

repaintRow

public void repaintRow(int row)
Repaints the given row only.

Parameters:
row - the row that will be repainted
Since:
1.0

addGridComponentListener

public void addGridComponentListener(IGridComponentListener l)
Description copied from interface: IGridComponent
Adds a listener to the grid component. The listener will be informed whenever the grid granularity used by the component gets changed.

Specified by:
addGridComponentListener in interface IGridComponent
Parameters:
l - the grid component listener

removeGridComponentListener

public void removeGridComponentListener(IGridComponentListener l)
Description copied from interface: IGridComponent
Removes a listener from the grid component.

Specified by:
removeGridComponentListener in interface IGridComponent
Parameters:
l - the grid component listener that gets removed

fireGridChanged

protected void fireGridChanged()
Informs all grid component listeners that the grid used by the eventline has changed.

Since:
1.0

setClippingExtra

public void setClippingExtra(int extra)
Specifies the number of pixels that will be added to the clipping rectangle during repaint operations of the layer container. These extra pixels are extremely important in order to render events correctly. Events do not have a duration, they are a time point. This means that their visual representation is larger than their actual width, which is always just one pixel.

During scrolling it can happen that the visual appearance of the event needs rendering even though the time point represented by the event is not within the visible rectangle, yet. The extra pixels added to the clipping rectangle will ensure that the event will be rendered never the less. The number of extra pixels should be equal to at least half the width of the largest event representation (e.g. half the diamond with used by the default timeline object renderer). The default setting of this property is 25.

Parameters:
extra - the number of extra pixels added to the clipping rectangle during repaint operations
Since:
1.0

getClippingExtra

public int getClippingExtra()
Returns the number of pixels that will be added to the clipping rectangle during repaint operations of the layer container. These extra pixels are extremely important in order to render events correctly. Events do not have a duration, they are a time point. This means that their visual representation is larger than their actual width, which is always just one pixel.

During scrolling it can happen that the visual appearance of the event needs rendering even though the time point represented by the event is not within the visible rectangle, yet. The extra pixels added to the clipping rectangle will ensure that the event will be rendered never the less. The number of extra pixels should be equal to at least half the width of the largest event representation (e.g. half the diamond with used by the default timeline object renderer). The default setting of this property is 25.

Returns:
the number of extra pixels added to the clipping rectangle during repaint operations
Since:
1.0

setRenderingDirection

public void setRenderingDirection(LayerContainer.RenderingDirection direction)
Provides a hint whether the timeline objects will be rendered right to left or left to right (default). Setting this attribute does not actually change the rendering but lets the framework know that the timeline object iterators returned by the Gantt chart model iterate one direction or another.

Parameters:
direction - a hint regarding the rendering direction
Since:
1.0
See Also:
IGanttChartModel.getTimelineObjectsIterator(Object, ILayer, ITimeSpan)

getRenderingDirection

public LayerContainer.RenderingDirection getRenderingDirection()
Returns a hint whether the timeline objects will be rendered right to left or left to right (default). Setting this attribute does not actually change the rendering but lets the framework know that the timeline object iterators returned by the Gantt chart model iterate one direction or another.

Returns:
a hint regarding the rendering direction
Since:
1.0
See Also:
IGanttChartModel.getTimelineObjectsIterator(Object, ILayer, ITimeSpan)

autoscroll

public void autoscroll(java.awt.Point cursorLocn)
Specified by:
autoscroll in interface java.awt.dnd.Autoscroll

getAutoscrollInsets

public java.awt.Insets getAutoscrollInsets()
Specified by:
getAutoscrollInsets in interface java.awt.dnd.Autoscroll

treeNodeKeyChanged

public void treeNodeKeyChanged(TreeTableModelEvent evt)
Description copied from interface: ITreeTableModelListener
Callback method that gets invoked if the user edited the key value of a tree table node.

Specified by:
treeNodeKeyChanged in interface ITreeTableModelListener
Parameters:
evt - the event fired by the tree table model
See Also:
ITreeTableModelListener.treeNodeValueChanged(TreeTableModelEvent)

treeNodeValueChanged

public void treeNodeValueChanged(TreeTableModelEvent evt)
Description copied from interface: ITreeTableModelListener
Callback method that gets invoked if the user edited a column value of a tree table node.

Specified by:
treeNodeValueChanged in interface ITreeTableModelListener
Parameters:
evt - the event fired by the tree table model
See Also:
ITreeTableModelListener.treeNodeKeyChanged(TreeTableModelEvent)

treeNodesChanged

public void treeNodesChanged(javax.swing.event.TreeModelEvent e)
Specified by:
treeNodesChanged in interface javax.swing.event.TreeModelListener

treeNodesInserted

public void treeNodesInserted(javax.swing.event.TreeModelEvent e)
Specified by:
treeNodesInserted in interface javax.swing.event.TreeModelListener

treeNodesRemoved

public void treeNodesRemoved(javax.swing.event.TreeModelEvent e)
Specified by:
treeNodesRemoved in interface javax.swing.event.TreeModelListener

treeStructureChanged

public void treeStructureChanged(javax.swing.event.TreeModelEvent e)
Specified by:
treeStructureChanged in interface javax.swing.event.TreeModelListener

isIgnoringTreeTableSelection

public boolean isIgnoringTreeTableSelection()
Determines whether selections made in the layer container (e.g. via the lasso) will affect the selections made in the tree table. If the layer container does not ignore the tree table then the table's selection will be cleared whenever the user performs a selection.

Returns:
TRUE if the lasso ignores the tree table selection
Since:
1.0

setIgnoringTreeTableSelection

public void setIgnoringTreeTableSelection(boolean ignore)
Specifies whether selections made in the layer container (e.g. via the lasso) will affect the selections made in the tree table. If the layer container does not ignore the tree table then the table's selection will be cleared whenever the user performs a selection.

Parameters:
ignore - if TRUE the lasso ignores the tree table selection
Since:
1.0