Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 44873 Details for
Bug 145884
creating command handlers to manipulate tasks list elements
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Commands to add, activate, mark complete tasks and subtasks
patch.txt (text/plain), 16.00 KB, created by
Izzet Safer
on 2006-06-19 17:43:29 EDT
(
hide
)
Description:
Commands to add, activate, mark complete tasks and subtasks
Filename:
MIME Type:
Creator:
Izzet Safer
Created:
2006-06-19 17:43:29 EDT
Size:
16.00 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylar.tasklist >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.mylar/org.eclipse.mylar.tasklist/plugin.xml,v >retrieving revision 1.114 >diff -u -r1.114 plugin.xml >--- plugin.xml 17 Jun 2006 02:29:40 -0000 1.114 >+++ plugin.xml 19 Jun 2006 21:42:42 -0000 >@@ -419,7 +419,120 @@ > id="org.eclipse.mylar.tasklist.hyperlinkLister.task" > type="task"/> > </extension>--> >+ >+ <extension point="org.eclipse.ui.handlers"> >+ <handler >+ commandId="org.eclipse.mylar.tasklist.commands.addNewLocalTask" >+ class="org.eclipse.mylar.internal.tasklist.ui.commands.NewLocalTaskHandler"> >+ </handler> >+ >+ <handler >+ commandId="org.eclipse.mylar.tasklist.commands.addNewLocalSubTask" >+ class="org.eclipse.mylar.internal.tasklist.ui.commands.NewLocalSubTaskHandler"> >+ </handler> >+ >+ <handler >+ commandId="org.eclipse.mylar.tasklist.commands.activateTask" >+ class="org.eclipse.mylar.internal.tasklist.ui.commands.ActivateTaskHandler"> >+ </handler> >+ >+ <handler >+ commandId="org.eclipse.mylar.tasklist.commands.completeTask" >+ class="org.eclipse.mylar.internal.tasklist.ui.commands.MarkTaskCompleteHandler"> >+ </handler> >+ >+ </extension> >+ >+ <extension point="org.eclipse.ui.commands"> >+ <command >+ description="Add new Mylar Task" >+ id="org.eclipse.mylar.tasklist.commands.addNewLocalTask" >+ name="Add new Mylar Task"> >+ <commandParameter >+ id="taskName" >+ name="Task Name" >+ optional="false"/> >+ <commandParameter >+ id="taskHandle" >+ name="Unique Task Handle" >+ optional="true"/> >+ <commandParameter >+ id="useExisting" >+ name="Boolean parameter to use the existing task if taskHandle exists" >+ optional="true"/> >+ <commandParameter >+ id="categoryName" >+ name="Category Name" >+ optional="true"/> >+ <commandParameter >+ id="activateTask" >+ name="Boolean parameter to activate the task" >+ optional="true"/> >+ <commandParameter >+ id="resetContext" >+ name="Boolean parameter to delete the context of the existing task" >+ optional="true"/> >+ </command> >+ >+ <command >+ description="Add new Mylar Subtask" >+ id="org.eclipse.mylar.tasklist.commands.addNewLocalSubTask" >+ name="Add new Mylar Subtask"> >+ <commandParameter >+ id="taskName" >+ name="Subtask Name" >+ optional="false"/> >+ <commandParameter >+ id="taskHandle" >+ name="Unique Task Handle" >+ optional="true"/> >+ <commandParameter >+ id="parentHandle" >+ name="Handle to parent task" >+ optional="false"/> >+ <commandParameter >+ id="useExisting" >+ name="Boolean parameter to use the existing subtask if taskHandle exists" >+ optional="true"/> >+ <commandParameter >+ id="activateTask" >+ name="Boolean parameter to activate the subtask" >+ optional="true"/> >+ <commandParameter >+ id="resetContext" >+ name="Boolean parameter to delete the context of the existing subtask" >+ optional="true"/> >+ </command> >+ >+ <command >+ description="Activate/Deactivate a Mylar task" >+ id="org.eclipse.mylar.tasklist.commands.activateTask" >+ name="Activate a Mylar task"> >+ <commandParameter >+ id="taskHandle" >+ name="Unique Task Handle" >+ optional="false"/> >+ <commandParameter >+ id="activate" >+ name="Boolean parameter to Activate/Deactivate" >+ optional="true"/> >+ </command> >+ >+ <command >+ description="Mark Complete/Incomplete a Mylar task" >+ id="org.eclipse.mylar.tasklist.commands.completeTask" >+ name="Complete a Mylar task"> >+ <commandParameter >+ id="taskHandle" >+ name="Unique Task Handle" >+ optional="false"/> >+ <commandParameter >+ id="complete" >+ name="Boolean parameter to set Complete/Incomplete" >+ optional="true"/> >+ </command> > >+ </extension> > > </plugin> > >@@ -433,4 +546,4 @@ > class="org.eclipse.mylar.tasklist.ui.actions.GoIntoAction" > icon="icons/etool16/go-into.gif" > enablesFor="1"/> >---> >+--> >\ No newline at end of file >Index: src/org/eclipse/mylar/internal/tasklist/ui/commands/ActivateTaskHandler.java >=================================================================== >RCS file: src/org/eclipse/mylar/internal/tasklist/ui/commands/ActivateTaskHandler.java >diff -N src/org/eclipse/mylar/internal/tasklist/ui/commands/ActivateTaskHandler.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylar/internal/tasklist/ui/commands/ActivateTaskHandler.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,44 @@ >+package org.eclipse.mylar.internal.tasklist.ui.commands; >+ >+ >+ >+import java.util.Map; >+ >+import org.eclipse.core.commands.AbstractHandler; >+import org.eclipse.core.commands.ExecutionEvent; >+import org.eclipse.core.commands.ExecutionException; >+import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; >+import org.eclipse.mylar.provisional.tasklist.ITask; >+import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin; >+ >+/** >+ * @author Izzet Safer >+ */ >+public class ActivateTaskHandler extends AbstractHandler { >+ >+ @Override >+ public Object execute(ExecutionEvent event) throws ExecutionException { >+ final Map parameters = event.getParameters(); >+ final Object taskHandle = parameters.get("taskHandle"); >+ final Object paramActivate = parameters.get("activate"); >+ boolean activate = (paramActivate == null) ? true : Boolean.parseBoolean(paramActivate.toString()); >+ >+ if (taskHandle == null) { >+ return null; >+ } else { >+ ITask task = MylarTaskListPlugin.getTaskListManager().getTaskList().getTask(taskHandle.toString()); >+ if (task != null) { >+ if (activate) { >+ MylarTaskListPlugin.getTaskListManager().activateTask(task); >+ } >+ else { >+ MylarTaskListPlugin.getTaskListManager().deactivateTask(task); >+ } >+ } >+ >+ TaskListView.getFromActivePerspective().getViewer().refresh(); >+ >+ return Boolean.valueOf(activate).toString(); >+ } >+ } >+} >Index: src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalSubTaskHandler.java >=================================================================== >RCS file: src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalSubTaskHandler.java >diff -N src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalSubTaskHandler.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalSubTaskHandler.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,87 @@ >+package org.eclipse.mylar.internal.tasklist.ui.commands; >+ >+import java.util.Calendar; >+import java.util.GregorianCalendar; >+import java.util.Map; >+ >+import org.eclipse.core.commands.AbstractHandler; >+import org.eclipse.core.commands.ExecutionEvent; >+import org.eclipse.core.commands.ExecutionException; >+import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; >+import org.eclipse.mylar.provisional.core.MylarPlugin; >+import org.eclipse.mylar.provisional.tasklist.ITask; >+import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin; >+import org.eclipse.mylar.provisional.tasklist.Task; >+import org.eclipse.mylar.provisional.tasklist.TaskList; >+ >+/** >+ * @author Izzet Safer >+ */ >+public class NewLocalSubTaskHandler extends AbstractHandler { >+ >+ @Override >+ public Object execute(ExecutionEvent event) throws ExecutionException { >+ final Map parameters = event.getParameters(); >+ final Object taskName = parameters.get("taskName"); >+ // assign a unique handle when null >+ final Object taskHandle = parameters.get("taskHandle"); >+ final Object parentHandle = parameters.get("parentHandle"); >+ // if taskHandle is not null and already exists, don't create a new task, use the existing >+ final Object useExisting = parameters.get("useExisting"); >+ final Object activateTask = parameters.get("activateTask"); >+ // delete the context associated with the task if an existing task is used >+ final Object resetContext = parameters.get("resetContext"); >+ >+ if (taskName == null || parentHandle == null) { >+ return null; >+ } else { >+ return createNewLocalSubTask(taskName.toString(), taskHandle, parentHandle.toString(), >+ useExisting == null ? true : Boolean.parseBoolean((String)useExisting), >+ activateTask == null ? true : Boolean.parseBoolean((String)activateTask), >+ resetContext == null ? false : Boolean.parseBoolean((String)resetContext)); >+ } >+ } >+ >+ private Object createNewLocalSubTask(String taskName, Object taskHandle, String parentHandle, >+ boolean useExisting, boolean activateTask, boolean resetContext) { >+ >+ TaskList tl = MylarTaskListPlugin.getTaskListManager().getTaskList(); >+ >+ ITask parentTask = tl.getTask(parentHandle); >+ if (parentTask == null) return null; >+ >+ ITask newTask = null; >+ >+ String sHandle; >+ if (taskHandle == null) { >+ sHandle = MylarTaskListPlugin.getTaskListManager().genUniqueTaskHandle(); >+ } >+ else { >+ sHandle = taskHandle.toString(); >+ if (useExisting) { >+ newTask = tl.getTask(sHandle); >+ } >+ else { >+ // if a task handle is given and use existing is false >+ // (a pretty non-usual combination) force the context to be deleted >+ resetContext = true; >+ } >+ } >+ >+ if (newTask == null) { >+ newTask = new Task(sHandle, taskName, true); >+ Calendar reminderCalendar = GregorianCalendar.getInstance(); >+ MylarTaskListPlugin.getTaskListManager().setScheduledToday(reminderCalendar); >+ MylarTaskListPlugin.getTaskListManager().setReminder(newTask, reminderCalendar.getTime()); >+ >+ parentTask.addSubTask(newTask); >+ } >+ >+ if (resetContext) MylarPlugin.getContextManager().deleteContext(sHandle); >+ if (activateTask) MylarTaskListPlugin.getTaskListManager().activateTask(newTask); >+ >+ TaskListView.getFromActivePerspective().getViewer().refresh(); >+ >+ return sHandle; >+ } >+} >Index: src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalTaskHandler.java >=================================================================== >RCS file: src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalTaskHandler.java >diff -N src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalTaskHandler.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylar/internal/tasklist/ui/commands/NewLocalTaskHandler.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,104 @@ >+package org.eclipse.mylar.internal.tasklist.ui.commands; >+ >+import java.util.Calendar; >+import java.util.GregorianCalendar; >+import java.util.Map; >+ >+import org.eclipse.core.commands.AbstractHandler; >+import org.eclipse.core.commands.ExecutionEvent; >+import org.eclipse.core.commands.ExecutionException; >+import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; >+import org.eclipse.mylar.provisional.core.MylarPlugin; >+import org.eclipse.mylar.provisional.tasklist.AbstractTaskContainer; >+import org.eclipse.mylar.provisional.tasklist.ITask; >+import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin; >+import org.eclipse.mylar.provisional.tasklist.Task; >+import org.eclipse.mylar.provisional.tasklist.TaskCategory; >+import org.eclipse.mylar.provisional.tasklist.TaskList; >+ >+/** >+ * @author Izzet Safer >+ */ >+public class NewLocalTaskHandler extends AbstractHandler { >+ >+ @Override >+ public Object execute(ExecutionEvent event) throws ExecutionException { >+ final Map parameters = event.getParameters(); >+ final Object taskName = parameters.get("taskName"); >+ // assign a unique handle when null >+ final Object taskHandle = parameters.get("taskHandle"); >+ // if taskHandle is not null and already exists, don't create a new task, use the existing >+ final Object useExisting = parameters.get("useExisting"); >+ // use root when null >+ final Object categoryName = parameters.get("categoryName"); >+ final Object activateTask = parameters.get("activateTask"); >+ // delete the context associated with the task if an existing task is used >+ final Object resetContext = parameters.get("resetContext"); >+ >+ if (taskName == null) { >+ return null; >+ } else { >+ return createNewLocalTask(taskName.toString(), taskHandle, >+ useExisting == null ? true : Boolean.parseBoolean((String)useExisting), >+ categoryName, >+ activateTask == null ? true : Boolean.parseBoolean((String)activateTask), >+ resetContext == null ? false : Boolean.parseBoolean((String)resetContext)); >+ } >+ } >+ >+ private Object createNewLocalTask(String taskName, Object taskHandle, boolean useExisting, >+ Object categoryName, boolean activateTask, boolean resetContext) { >+ >+ TaskList tl = MylarTaskListPlugin.getTaskListManager().getTaskList(); >+ ITask newTask = null; >+ >+ AbstractTaskContainer cat; >+ if (categoryName == null) { >+ cat = tl.getRootCategory(); >+ } >+ else { >+ cat = tl.getContainerForHandle(categoryName.toString()); >+ if (cat == null) { >+ cat = new TaskCategory(categoryName.toString(), tl); >+ } >+ tl.addCategory(cat); >+ } >+ >+ String sHandle; >+ if (taskHandle == null) { >+ sHandle = MylarTaskListPlugin.getTaskListManager().genUniqueTaskHandle(); >+ } >+ else { >+ sHandle = taskHandle.toString(); >+ if (useExisting) { >+ newTask = tl.getTask(sHandle); >+ } >+ else { >+ // if a task handle is given and use existing is false >+ // (a pretty non-usual combination) force the context to be deleted >+ resetContext = true; >+ } >+ } >+ >+ if (newTask == null) { >+ newTask = new Task(sHandle, taskName, true); >+ Calendar reminderCalendar = GregorianCalendar.getInstance(); >+ MylarTaskListPlugin.getTaskListManager().setScheduledToday(reminderCalendar); >+ MylarTaskListPlugin.getTaskListManager().setReminder(newTask, reminderCalendar.getTime()); >+ >+ tl.addTask(newTask, cat); >+ } >+ >+ if (resetContext) { >+ MylarPlugin.getContextManager().deleteContext(sHandle); >+ newTask.getChildren().clear(); >+ MylarTaskListPlugin.getTaskListManager().getTaskList().markComplete(newTask, false); >+ } >+ >+ if (activateTask) MylarTaskListPlugin.getTaskListManager().activateTask(newTask); >+ >+ TaskListView.getFromActivePerspective().getViewer().refresh(); >+ >+ return sHandle; >+ } >+} >Index: src/org/eclipse/mylar/internal/tasklist/ui/commands/MarkTaskCompleteHandler.java >=================================================================== >RCS file: src/org/eclipse/mylar/internal/tasklist/ui/commands/MarkTaskCompleteHandler.java >diff -N src/org/eclipse/mylar/internal/tasklist/ui/commands/MarkTaskCompleteHandler.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylar/internal/tasklist/ui/commands/MarkTaskCompleteHandler.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+package org.eclipse.mylar.internal.tasklist.ui.commands; >+ >+ >+ >+import java.util.Map; >+ >+import org.eclipse.core.commands.AbstractHandler; >+import org.eclipse.core.commands.ExecutionEvent; >+import org.eclipse.core.commands.ExecutionException; >+import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; >+import org.eclipse.mylar.provisional.tasklist.ITask; >+import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin; >+ >+/** >+ * @author Izzet Safer >+ */ >+public class MarkTaskCompleteHandler extends AbstractHandler { >+ >+ @Override >+ public Object execute(ExecutionEvent event) throws ExecutionException { >+ final Map parameters = event.getParameters(); >+ final Object taskHandle = parameters.get("taskHandle"); >+ final Object paramComplete = parameters.get("complete"); >+ boolean complete = (paramComplete == null) ? true : Boolean.parseBoolean(paramComplete.toString()); >+ >+ if (taskHandle == null) { >+ return null; >+ } else { >+ ITask task = MylarTaskListPlugin.getTaskListManager().getTaskList().getTask(taskHandle.toString()); >+ if (task != null) { >+ MylarTaskListPlugin.getTaskListManager().getTaskList().markComplete(task, complete); >+ } >+ >+ TaskListView.getFromActivePerspective().getViewer().refresh(); >+ >+ return Boolean.valueOf(complete).toString(); >+ } >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 145884
:
44854
|
44873
|
44963
|
47037