org.chorem.jtimer.ui.treetable
Class ProjectsAndTasksModel

java.lang.Object
  extended by org.jdesktop.swingx.treetable.AbstractTreeTableModel
      extended by org.chorem.jtimer.ui.treetable.ProjectsAndTasksModel
All Implemented Interfaces:
EventListener, TreeModel, DataEventListener, org.jdesktop.swingx.treetable.TreeTableModel

public class ProjectsAndTasksModel
extends org.jdesktop.swingx.treetable.AbstractTreeTableModel
implements DataEventListener

Cette classe gere l'affichage d'une liste de project dans l'arbre/table Cela permet au programme principal de manipuler la liste et d'oublier la gestion de l'arbre...

Version:
$Revision: 2630 $ Last update : $Date: 2008-06-13 11:05:57 +0200 (ven., 13 juin 2008) $ By : $Author: echatellier $
Author:
chatellier

Field Summary
protected  List<String> columnIdentifiers
          Tree column identifiers.
protected  TimerDataManager dataManager
          Data.
static int OPERATION_ADD
          Add node operation
static int OPERATION_DELETE
          Delete Node operation
static int OPERATION_MODIFY
          Modify node operation
protected  ProjectsAndTasksTable projectsAndTaskTable
          Tree managed by this model
protected  boolean showClosedTask
          Show closed task property.
 
Fields inherited from class org.jdesktop.swingx.treetable.AbstractTreeTableModel
modelSupport, root
 
Constructor Summary
ProjectsAndTasksModel(ProjectsAndTasksTable projectsAndTaskTable, TimerCore core, List<String> columnIdentifiers)
          Constructor.
 
Method Summary
 void addProject(TimerProject project)
          Add project event.
 void addTask(TimerTask task)
          Add task event.
 void dataLoaded(Collection<TimerProject> projects)
          All data loaded.
 void deleteProject(TimerProject project)
          Delete project.
 void deleteTask(TimerTask task)
          Delete task.
 Object getChild(Object parent, int index)
           
 int getChildCount(Object parent)
           
 int getColumnCount()
           
 String getColumnName(int column)
           
protected  List<TimerTask> getFiteredSubListFor(Object parent)
          Recupere la sous liste: data.getProjectsList() si parent = root getSubTasks() sinon
 int getIndexOfChild(Object parent, Object child)
           
protected  org.jdesktop.swingx.tree.TreeModelSupport getModelSupport()
          Accessor to tree model support.
 Object getValueAt(Object object, int column)
           
 boolean isCellEditable(Object object, int column)
           
 boolean isLeaf(Object node)
           
 void modifyProject(TimerProject project)
          Modify project.
 void modifyTask(TimerTask task)
          Modify task.
 void moveTask(TimerTask task)
          Post move task.
protected  void notifyTaskChanged(TimerTask task, int operation)
          Notification de changement de donnees.
 void postChangeClosedState(TimerTask task)
          Post change task state.
 void postMergeTasks(TimerTask destinationTask, List<TimerTask> otherTasks)
          Post merge task.
 void preChangeClosedState(TimerTask task)
          Pre change task state.
 void preDeleteProject(TimerProject project)
          Before delete project.
 void preDeleteTask(TimerTask task)
          Before delete task.
 void preMergeTasks(TimerTask destinationTask, List<TimerTask> otherTasks)
          Pre merge task.
 void preMoveTask(TimerTask task)
          Pre move task.
 void setAnnotation(TimerTask task, Date date, String annotation)
          Add annotation.
 void setShowClosed(boolean showClosedTask)
          Change closed task property.
 void setTaskTime(TimerTask task, Date date, Long time)
          Set task time.
 void startTask(TimerTask task)
          Start task.
 void stopTask(TimerTask task)
          Stop task.
protected  boolean updateChildren(TimerTask task, TreePath path, int operation)
          Recursively try to update node.
 
Methods inherited from class org.jdesktop.swingx.treetable.AbstractTreeTableModel
addTreeModelListener, getColumnClass, getHierarchicalColumn, getRoot, getTreeModelListeners, removeTreeModelListener, setValueAt, valueForPathChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OPERATION_ADD

public static final int OPERATION_ADD
Add node operation

See Also:
Constant Field Values

OPERATION_MODIFY

public static final int OPERATION_MODIFY
Modify node operation

See Also:
Constant Field Values

OPERATION_DELETE

public static final int OPERATION_DELETE
Delete Node operation

See Also:
Constant Field Values

projectsAndTaskTable

protected ProjectsAndTasksTable projectsAndTaskTable
Tree managed by this model


dataManager

protected TimerDataManager dataManager
Data.


columnIdentifiers

protected List<String> columnIdentifiers
Tree column identifiers.


showClosedTask

protected boolean showClosedTask
Show closed task property. Default to false.

Constructor Detail

ProjectsAndTasksModel

public ProjectsAndTasksModel(ProjectsAndTasksTable projectsAndTaskTable,
                             TimerCore core,
                             List<String> columnIdentifiers)
Constructor.

Parameters:
projectsAndTaskTable - table
core - timer core
columnIdentifiers - column identifiers
Method Detail

getModelSupport

protected org.jdesktop.swingx.tree.TreeModelSupport getModelSupport()
Accessor to tree model support.

Returns:
tree model support

getColumnCount

public int getColumnCount()
Specified by:
getColumnCount in interface org.jdesktop.swingx.treetable.TreeTableModel

getColumnName

public String getColumnName(int column)
Specified by:
getColumnName in interface org.jdesktop.swingx.treetable.TreeTableModel
Overrides:
getColumnName in class org.jdesktop.swingx.treetable.AbstractTreeTableModel

getValueAt

public Object getValueAt(Object object,
                         int column)
Specified by:
getValueAt in interface org.jdesktop.swingx.treetable.TreeTableModel

isCellEditable

public boolean isCellEditable(Object object,
                              int column)
Specified by:
isCellEditable in interface org.jdesktop.swingx.treetable.TreeTableModel
Overrides:
isCellEditable in class org.jdesktop.swingx.treetable.AbstractTreeTableModel

getChild

public Object getChild(Object parent,
                       int index)
Specified by:
getChild in interface TreeModel

getChildCount

public int getChildCount(Object parent)
Specified by:
getChildCount in interface TreeModel

getFiteredSubListFor

protected List<TimerTask> getFiteredSubListFor(Object parent)
Recupere la sous liste: data.getProjectsList() si parent = root getSubTasks() sinon

Parameters:
parent - parent to task sublist
Returns:
filtered list

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)
Specified by:
getIndexOfChild in interface TreeModel

isLeaf

public boolean isLeaf(Object node)
Specified by:
isLeaf in interface TreeModel
Overrides:
isLeaf in class org.jdesktop.swingx.treetable.AbstractTreeTableModel

notifyTaskChanged

protected void notifyTaskChanged(TimerTask task,
                                 int operation)
Notification de changement de donnees.

Parameters:
task - task to update
operation - operation

updateChildren

protected boolean updateChildren(TimerTask task,
                                 TreePath path,
                                 int operation)
Recursively try to update node.

Parameters:
task - the task to update
path - current path
operation - operation (add, modify, delete)
Returns:
true if children have been found and updated in current recursion

addProject

public void addProject(TimerProject project)
Description copied from interface: DataEventListener
Add project event.

Specified by:
addProject in interface DataEventListener
Parameters:
project - project to add

addTask

public void addTask(TimerTask task)
Description copied from interface: DataEventListener
Add task event.

Specified by:
addTask in interface DataEventListener
Parameters:
task - task to add

dataLoaded

public void dataLoaded(Collection<TimerProject> projects)
Description copied from interface: DataEventListener
All data loaded.

Specified by:
dataLoaded in interface DataEventListener
Parameters:
projects - projects collection

preDeleteProject

public void preDeleteProject(TimerProject project)
Description copied from interface: DataEventListener
Before delete project. TODO only usefull for UI (can't known on to delete if already deleted)

Specified by:
preDeleteProject in interface DataEventListener
Parameters:
project - deleted project

preDeleteTask

public void preDeleteTask(TimerTask task)
Description copied from interface: DataEventListener
Before delete task. TODO only usefull for UI (can't known on to delete if already deleted)

Specified by:
preDeleteTask in interface DataEventListener
Parameters:
task - deleted task

deleteProject

public void deleteProject(TimerProject project)
Description copied from interface: DataEventListener
Delete project.

Specified by:
deleteProject in interface DataEventListener
Parameters:
project - deleted project

deleteTask

public void deleteTask(TimerTask task)
Description copied from interface: DataEventListener
Delete task.

Specified by:
deleteTask in interface DataEventListener
Parameters:
task - deleted task

modifyProject

public void modifyProject(TimerProject project)
Description copied from interface: DataEventListener
Modify project.

Specified by:
modifyProject in interface DataEventListener
Parameters:
project - modified project

modifyTask

public void modifyTask(TimerTask task)
Description copied from interface: DataEventListener
Modify task.

Specified by:
modifyTask in interface DataEventListener
Parameters:
task - modified task

setAnnotation

public void setAnnotation(TimerTask task,
                          Date date,
                          String annotation)
Description copied from interface: DataEventListener
Add annotation.

Specified by:
setAnnotation in interface DataEventListener
Parameters:
task - task where annotation is changed
date - date
annotation - new annotation value

setTaskTime

public void setTaskTime(TimerTask task,
                        Date date,
                        Long time)
Description copied from interface: DataEventListener
Set task time.

Specified by:
setTaskTime in interface DataEventListener
Parameters:
task - task where time is changed
date - date
time - task time

postChangeClosedState

public void postChangeClosedState(TimerTask task)
Description copied from interface: DataEventListener
Post change task state.

Specified by:
postChangeClosedState in interface DataEventListener
Parameters:
task - task

preChangeClosedState

public void preChangeClosedState(TimerTask task)
Description copied from interface: DataEventListener
Pre change task state.

Specified by:
preChangeClosedState in interface DataEventListener
Parameters:
task - task

startTask

public void startTask(TimerTask task)
Description copied from interface: DataEventListener
Start task.

Specified by:
startTask in interface DataEventListener
Parameters:
task - started task

stopTask

public void stopTask(TimerTask task)
Description copied from interface: DataEventListener
Stop task.

Specified by:
stopTask in interface DataEventListener
Parameters:
task - stoped task

setShowClosed

public void setShowClosed(boolean showClosedTask)
Change closed task property.

Parameters:
showClosedTask - closed task property

moveTask

public void moveTask(TimerTask task)
Description copied from interface: DataEventListener
Post move task.

Specified by:
moveTask in interface DataEventListener
Parameters:
task - task

preMoveTask

public void preMoveTask(TimerTask task)
Description copied from interface: DataEventListener
Pre move task.

Specified by:
preMoveTask in interface DataEventListener
Parameters:
task - task

postMergeTasks

public void postMergeTasks(TimerTask destinationTask,
                           List<TimerTask> otherTasks)
Description copied from interface: DataEventListener
Post merge task.

Specified by:
postMergeTasks in interface DataEventListener
Parameters:
destinationTask - task where all other task will be merged
otherTasks - other tasks to merge

preMergeTasks

public void preMergeTasks(TimerTask destinationTask,
                          List<TimerTask> otherTasks)
Description copied from interface: DataEventListener
Pre merge task.

Specified by:
preMergeTasks in interface DataEventListener
Parameters:
destinationTask - task where all other task will be merged
otherTasks - other tasks to merge


Copyright © 2007-2012 CodeLutin. All Rights Reserved.