Cut selected elements
From TaskDepender
Line 1: | Line 1: | ||
− | ''This page describes the possibility to cut | + | ''This page describes the possibility to cut a certain number of selected elements to a type of internal clipboard.'' |
− | == | + | == Description == |
+ | |||
+ | A functionality that can be really convenient would be if it is possible to select a number of tasks and deliverables and to cut and paste these into another container task. This page describes how cutting a number of selected elements is implemented. | ||
== Design == | == Design == | ||
− | To be able to cut a number of selected elements, a kind of 'clipboard' must be created. This can be easily done by the <tt>ContainerId</tt> of the elements; if this field is set to the maximum integer number (<tt>MaxInt</tt>). This looks like as if the selected elements were moved to a 'virtual container' with this <tt>Id</tt>. | + | To be able to cut a number of selected elements to be able to [[Paste elements in the Administration|paste]] them in some other container, a kind of 'clipboard' must be created. This can be easily done by the <tt>ContainerId</tt> of the elements; if this field is set to the maximum integer number (<tt>MaxInt</tt>). This looks like as if the selected elements were moved to a 'virtual container' with this <tt>Id</tt>. |
However, before doing this, the old 'contents' of the clipboard must be deleted. Also, there are additional operations that need to be performed: | However, before doing this, the old 'contents' of the clipboard must be deleted. Also, there are additional operations that need to be performed: | ||
* Deselecting any selected [[Clone|clones]] because those can not be deleted (or cut) by the user. | * Deselecting any selected [[Clone|clones]] because those can not be deleted (or cut) by the user. | ||
* For all selected deliverables, delete links to non-selected tasks. | * For all selected deliverables, delete links to non-selected tasks. | ||
* For all selected tasks, delete links to non-selected deliverables. | * For all selected tasks, delete links to non-selected deliverables. | ||
− | |||
− | |||
== Implementation == | == Implementation == | ||
Line 18: | Line 18: | ||
void Admin::Cut(void) | void Admin::Cut(void) | ||
{ | { | ||
− | TaskC *selectedTask; | + | TaskC *selectedTask; |
DeliverableC *selectedDeliverable; | DeliverableC *selectedDeliverable; | ||
DeliverableC *deliverable; | DeliverableC *deliverable; | ||
− | TaskC *task; | + | TaskC *task; |
// First delete old clipboard. | // First delete old clipboard. | ||
DeleteElements(MaxInt); | DeleteElements(MaxInt); | ||
− | TaskC *containerTask = | + | TaskC *containerTask = TasksAdmin->FindTask(SelectedContainerTaskId); |
// For all selected deliverables, remove links to non-selected tasks. | // For all selected deliverables, remove links to non-selected tasks. | ||
Line 88: | Line 88: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ---- | |
− | + | * [[Paste elements in the Administration|Paste]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |