|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavax.swing.tree.DefaultTreeModel
eu.beesoft.gaia.swing.TreeTableModel
eu.beesoft.gantt.GanttModel
public abstract class GanttModel
Model for JGantt component. It supports data binding and object lazy
loading.
You need implement these methods:
createObject(TimelineObject, int, UndoStep) - to create your
domain objectsdeleteObject(TimelineObject, UndoStep) - to delete your domain
objectsmoveObject(TimelineObject, TimelineObject, int, UndoStep) - to
move your domain objects in the hierarchy
If you want to paint in the chart component some texts (if you use
LabelLayer), you need override these methods:
getLabel(TimelineObject) - to obtain "label" text painted behind
object's time linegetTooltipText(TimelineObject) - to get text displayed in
tooltip when mouse is over node
Data binding is implemented by Miner class. All you need to do is to
set property name to gantt column (via GanttColumn.setBinding(String)
). Then methods getValueAt() and setValueAt() can work fully automatically.
If your domain objects are not suitable for data binding, override methods
getValueAt() and setValueAt(). You can also subclass Miner class and set it
to GanttModel by method setMiner(Miner).
Lazy loading is one of the interesting features of this model. We employ here
the possibilities of ExplorableTreeNode, which is an ancestor of
GanttNode. When node is expanded and was not explored still, method
explore(GanttNode) is invoked. Override this method to loading
children of your domain object.
| Field Summary |
|---|
| Fields inherited from class javax.swing.tree.DefaultTreeModel |
|---|
asksAllowsChildren, listenerList, root |
| Constructor Summary | |
|---|---|
GanttModel()
Creates a new instance of GanttModel. |
|
| Method Summary | |
|---|---|
abstract TimelineObject |
createObject(TimelineObject parent,
int index,
UndoStep undo)
Creates a new domain object and adds it as child to parent
(you don't need to care about treetable nodes). |
abstract boolean |
deleteObject(TimelineObject object,
UndoStep undo)
Removes given object from its parent on domain objects level
(you don't need to care about treetable nodes). |
void |
explore(GanttNode node)
This method is called by GanttNode in lazy loading mode. |
JGantt |
getGantt()
Returns a JGantt instance for this model. |
GanttNode |
getGanttNode(TimelineObject userObject)
Returns GanttNode which uses given userObject as its
user object. |
java.lang.String |
getChartHeaderText(java.util.Date date,
TimeUnit timeUnit,
boolean isMajorHeader)
Returns text for drawing in chart header - name of month, week number, and so on. |
java.lang.String |
getLabel(TimelineObject object)
Returns label text for given object. |
Miner |
getMiner()
Returns the current instance of Miner used by this GanttModel. |
java.lang.String |
getTooltipText(TimelineObject object)
Returns tooltip text for given object. |
java.lang.Object |
getValueAt(TreeTableNode node,
int column)
Returns value from given node and for given
column. |
boolean |
isUpdateMode()
Returns true if model is in update mode. |
boolean |
isWeekend(java.util.Date date)
Returns true if given date is saturday or sunday. |
abstract boolean |
moveObject(TimelineObject object,
TimelineObject newContainer,
int newIndex,
UndoStep undo)
Moves given object on domain objects level (you don't need
to care about treetable nodes). |
void |
nodeChanged(javax.swing.tree.TreeNode node)
Listener method to receive informations about node representation in the tree. |
void |
setMiner(Miner miner)
Sets a new instance of Miner for use by this GanttModel. |
void |
setRoot(javax.swing.tree.TreeNode node)
Sets a new root node for this model. |
void |
setRootObject(TimelineObject object)
Sets a new root node with a given object as its user-object
for this model . |
void |
setUpdateMode(boolean updateMode)
Sets value for update mode. |
void |
setValueAt(TreeTableNode node,
int column,
java.lang.Object value)
Sets given value to the user object in the node
and column. |
| Methods inherited from class eu.beesoft.gaia.swing.TreeTableModel |
|---|
getColumnClass, getColumnCount, getColumnName, isCellEditable, isLeaf |
| Methods inherited from class javax.swing.tree.DefaultTreeModel |
|---|
addTreeModelListener, asksAllowsChildren, fireTreeNodesChanged, fireTreeNodesInserted, fireTreeNodesRemoved, fireTreeStructureChanged, getChild, getChildCount, getIndexOfChild, getListeners, getPathToRoot, getPathToRoot, getRoot, getTreeModelListeners, insertNodeInto, nodesChanged, nodeStructureChanged, nodesWereInserted, nodesWereRemoved, reload, reload, removeNodeFromParent, removeTreeModelListener, setAsksAllowsChildren, valueForPathChanged |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public GanttModel()
Miner instance.
| Method Detail |
|---|
public JGantt getGantt()
JGantt instance for this model.
public Miner getMiner()
Miner used by this GanttModel.
public void setMiner(Miner miner)
Miner for use by this GanttModel. The
Miner class is designated to obtain property value on method or field
level from any object. You can subclass Miner class to reach your
requirements.
miner - - instance of Miner to setpublic void setRoot(javax.swing.tree.TreeNode node)
GanttNode or null.
setRoot in class TreeTableModelnode - - root node for this modelpublic void setRootObject(TimelineObject object)
object as its user-object
for this model .
object - - user object for new root nodepublic void explore(GanttNode node)
GanttNode in lazy loading mode.
In this implementation does nothing. You must override it to give it some functionality.
In the typical implementation:
nodenode
node - - node to explore
public java.lang.Object getValueAt(TreeTableNode node,
int column)
node and for given
column.
If the JGantt is not fully initialized yet, it returns null. If
column = 0, returns node.
Otherwise this method uses reflection and data binding via Miner
class to get property value from node user object. If no binding set, it
returns null. See comment to method setMiner(Miner).
If you don't want to use reflection to get value from user object, override this method for your needs.
getValueAt in class TreeTableModelnode - - the node whose value is to be queriedcolumn - - the column whose value is to be queried
public void setValueAt(TreeTableNode node,
int column,
java.lang.Object value)
value to the user object in the node
and column.
Does nothing,if:
JGantt is not fully initialized yetsetMiner(Miner) for more...
Otherwise this method uses reflection and data binding via Miner
class to set value to the property of node's user object.
If you don't want to use reflection to set value to the user object, override this method for your needs.
setValueAt in class TreeTableModelnode - - the node whose value is to be queriedcolumn - - the column whose value is to be queriedvalue - - value to assign to cellpublic boolean isUpdateMode()
public void setUpdateMode(boolean updateMode)
updateMode - the updateMode to setpublic void nodeChanged(javax.swing.tree.TreeNode node)
ChartComponent.
nodeChanged in class javax.swing.tree.DefaultTreeModelnode - - the changed nodepublic GanttNode getGanttNode(TimelineObject userObject)
GanttNode which uses given userObject as its
user object.
userObject - - user object of wanted gantt nodepublic boolean isWeekend(java.util.Date date)
date is saturday or sunday.
date - - Date to examine
public abstract TimelineObject createObject(TimelineObject parent,
int index,
UndoStep undo)
parent
(you don't need to care about treetable nodes). Register all modified
objects to undo before any change.
parent - - the parent of the created objectindex - - index in the parent children list, where to insert created
objectundo - - register for undo / redo operations
public abstract boolean deleteObject(TimelineObject object,
UndoStep undo)
object from its parent on domain objects level
(you don't need to care about treetable nodes). Register object, its
parent and all modified objects to undo before any change.
object - - object to removeundo - - register for undo / redo operations
public abstract boolean moveObject(TimelineObject object,
TimelineObject newContainer,
int newIndex,
UndoStep undo)
object on domain objects level (you don't need
to care about treetable nodes). Register all modified objects to
undo before any change.
object - - object to movenewContainer - - new parent for object (may be the same as current)newIndex - - index in the new parent children list, where to move objectundo - - register for undo / redo operations
public java.lang.String getChartHeaderText(java.util.Date date,
TimeUnit timeUnit,
boolean isMajorHeader)
date - - date to process (date related to the header column)timeUnit - - TimeUnit constant used for headerisMajorHeader - - true if text is required for major header, false for minor
header
public java.lang.String getLabel(TimelineObject object)
object. This text uses
LabelLayer to paint additional info to timeline object.
Typically, for task is name of the assignee probably the best result.
object - - object to get label text about
public java.lang.String getTooltipText(TimelineObject object)
object.
object - - object to get tooltip text about
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||