This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Apologies if this is a duplicate; I could have sworn I filed this before but a search of the open issues didn't turn it up. When I go to add a new task and click the New Task action, I enter the task and hit OK. Ooops - it gets added as a subtask of the current selection! I didn't even select that item - the first item is selected by the default when you bring up the tasklist. Right clicking to choose "New Task" has the same issue - the parent is obviously added. (In the old days, there was a checkbox to make the task being added a subtask of the parent in the New dialog. That might work as long as the default is false). Making a task a subtask of another is easier than the other way around - you can just drag it to its new parent. Making it a toplevel task seems harder since there's no visible "root" node. Even though the current behavior may be intentional, I'm marking this as a defect rather than an enhancement because this is a usability bug.
Cool down. You are not going crazy :-). You indeed filed a similar issue (it is already fixed): #91511: Tasks too easily get nested (http://tasklist.netbeans.org/issues/show_bug.cgi?id=91511) My advice to you: create a "super" task and add all your other tasks as subtasks to it. Another solution could be to introduce the action "Add Sibling Task". Would this solve your problem or do you have other suggestions?
need your comment, Tor
Sorry about the delay - JavaOne preparation stress! I don't think adding a "super task" which is the parent of everything else is a good solution for various reasons. In addition to taking up unnecessary horizontal space (indenting everything) and making strange HTML reports etc., it probably won't solve the root problem because as soon as I've clicked on any other tasks, creating a new task will (accidentally) create the new task as a child of the subtask; I'd have to remember to go and click on the "super" task each and every time. I believe that most newly added tasks are not subtasks of another task. Thus, I think the default for a new task should be to be "top level", regardless of whether another task is selected or not. It's pretty easy to make a task a subtask of something else - just drag it there. Bringing it back out is much harder. An additional thing we can do to make it easier to make subtasks, is to add a checkbox to the "New Task" panel, which lets you control whether the new task should be a subtask of another. Originally, we had a "Subtask Of" section here which had an embedded tasklist, allowing you to choose an arbitrary parent task. That was probably overkill (besides, the nested tasklist caused other problems). I think a workable solution would be to add a checkbox which says something like this: [ ] Add as subtask of selected task (<Selected task's description, trimmed to let's say 20 chars, here) If there is no selection when the panel is brought up, this checkbox is disabled. The default is for the option to be off. If turned on, it could persist its on-state either during the current IDE session (which is what I think would be best), or persist across IDE sessions (thought I don't think people will want this; I think this checkbox is used when you want to quickly add a task and a subtask with a group of subtasks, so you turn the toggle on and add your subtasks in rapid succession). When you come back another day, you are again adding tasks to the top level unless you specifically start adding subtasks. One possible sticking point: New Task will select the newly added task. This is normally what you want - e.g. New Task, followed by Delete should add the task you just added. You also want selection such taht the table can scroll to expose it etc. However, if you now try to add a new task, and the previously added child is still selected, the -child- will be the selected parent rather than what you probably intended. Perhaps the most straightforward way to add this is to actually have two checkboxes. If the task has no parent task (other than the invisible root), show a checkbox as described above. Otherwise, if the task is itself a subtask, offer a radio: (*) Top level task ( ) Subtask of [parent task] ( ) Subtask of [grandparent task] (For simplicity, we can use a radio group for the first scenario too). I think this might work, but it would be great to get some UI engineers to look at this. Come to think of it - TODO managers with subtasks are in lots of products (groupware and collaboration tools) that have had not only significant UI engineering investments, but also market soak time with user feedback. Perhaps we can take a look at what these guys are doing?
I'll answer to your post first: >>>>>>>>>>>>>>>>>>>> quote I don't think adding a "super task" which is the parent of everything else is a good solution for various reasons. In addition to taking up unnecessary horizontal space (indenting everything) and making strange HTML reports etc., it probably won't solve the root problem because as soon as I've clicked on any other tasks, creating a new task will (accidentally) create the new task as a child of the subtask; I'd have to remember to go and click on the "super" task each and every time. >>>>>>>>>>>>>>>>>>> end quote Adding an "artificial" root task will not take a lot of horizontal space (at least there is enough space in the default window configuration at the bottom of the main window). It does not look (in my opinion) "strange" in a html report. Just call it "all my tasks" or similar. It could also help for example by computing the time necessary to complete all your tasks. But you're right, it would obviously force you to scroll to it. I will try to solve this problem. >>>>>>>>>>>>>>>>>>>> quote I believe that most newly added tasks are not subtasks of another task. Thus, I think the default for a new task should be to be "top level", regardless of whether another task is selected or not. It's pretty easy to make a task a subtask of something else - just drag it there. Bringing it back out is much harder. >>>>>>>>>>>>>>>>>>> end quote I cannot agree with you that "most newly added tasks are not subtasks". All my task lists look like this one: http://tasklist.netbeans.org/updates/tasklist-usertasks.html. There is a deep hierarchy of tasks. It depends on how you use the software. It will be easier to drag tasks to the top level when "dropping between rows" is implemented (not in the near future). >>>>>>>>>>>>>>>>>>>> quote An additional thing we can do to make it easier to make subtasks, is to add a checkbox to the "New Task" panel, which lets you control whether the new task should be a subtask of another. Originally, we had a "Subtask Of" section here which had an embedded tasklist, allowing you to choose an arbitrary parent task. That was probably overkill (besides, the nested tasklist caused other problems). I think a workable solution would be to add a checkbox which says something like this: [ ] Add as subtask of selected task (<Selected task's description, trimmed to let's say 20 chars, here) If there is no selection when the panel is brought up, this checkbox is disabled. The default is for the option to be off. If turned on, it could persist its on-state either during the current IDE session (which is what I think would be best), or persist across IDE sessions (thought I don't think people will want this; I think this checkbox is used when you want to quickly add a task and a subtask with a group of subtasks, so you turn the toggle on and add your subtasks in rapid succession). When you come back another day, you are again adding tasks to the top level unless you specifically start adding subtasks. >>>>>>>>>>>>>>>>>>> end quote Currently there is a checkbox in the "New Task" dialog that allows you to add a task at the top level. And I am one of those people who most of the time add subtasks. If I would add such an option it would be also persisted across IDE sessions (see previous comment). >>>>>>>>>>>>>>>>>>>> quote One possible sticking point: New Task will select the newly added task. This is normally what you want - e.g. New Task, followed by Delete should add the task you just added. You also want selection such taht the table can scroll to expose it etc. However, if you now try to add a new task, and the previously added child is still selected, the -child- will be the selected parent rather than what you probably intended. Perhaps the most straightforward way to add this is to actually have two checkboxes. If the task has no parent task (other than the invisible root), show a checkbox as described above. Otherwise, if the task is itself a subtask, offer a radio: (*) Top level task ( ) Subtask of [parent task] ( ) Subtask of [grandparent task] (For simplicity, we can use a radio group for the first scenario too). I think this might work, but it would be great to get some UI engineers to look at this. >>>>>>>>>>>>>>>>>>> end quote It is not necessary. Just use the "Add Another" button in the "New Task" dialog instead of "OK"! This way you can add multiple tasks at once without leaving the dialog. >>>>>>>>>>>>>>>>>>>> quote Come to think of it - TODO managers with subtasks are in lots of products (groupware and collaboration tools) that have had not only significant UI engineering investments, but also market soak time with user feedback. Perhaps we can take a look at what these guys are doing? >>>>>>>>>>>>>>>>>>> end quote I will take a look on another products. But here is what I think would be a good solution for both types of usage: 3 radio buttons in the "New Task" dialog: (*) Top level task ( ) Subtask of .... ( ) Same level as ... (sibling) The option will *not* be stored each time when the dialog is closed but there will be a global option for "default creation level" for tasks in the options dialog. I will also change the name of the action from "Add Subtask..." to "Add Task...". The default will be the simpler "Same level as..." option. What do you think about it?
Created attachment 42353 [details] Project Management Software
I have created and attached to this issue a table of project management software for comparison. If you know about any other let me know.
Created attachment 42392 [details] version 2
not only mac
Following software support arbitrary nesting of tasks: xProcess http://www.ivis.com/public/products/xprocess/demo/xProcessDemo/xProcessDemo.cfm TimeSlot Tracker https://sourceforge.net/projects/timeslottracker/ TimeCult http://sourceforge.net/projects/timecult Time-Tracker http://sourceforge.net/project/screenshots.php?group_id=176004 inidonaTimeTracker http://www.inidona.net/ tasktimer http://sourceforge.net/project/screenshots.php?group_id=186172 Timmon http://sourceforge.net/projects/timmon projectfactory http://projectfactory.sourceforge.net/tour/tour.html Calgoo http://calgoo.com/ KArm http://pim.kde.org/components/karm.php VIP task manager http://www.taskmanagementsoft.com/ TrackItEZ http://trackitez.sourceforge.net/ faces-project http://sourceforge.net/projects/faces-project/
Hi Tim, thanks for producing the full table. Just to be clear, I didn't mean to imply that subtasks aren't useful - I did say that I thought adding a new task would be toplevel - but that's because I meant that I think of adding subtasks as something you do in series (e.g. "Add Another"). I definitely think supporting hierarchies is important - that's why I ended with "TODO managers with subtasks are in lots of products - let's look at what they're doing". In any case, I just had an idea. I don't know how I could have missed it, since it's so obvious :-) The way you do nesting in word processors etc. is to have indent/unindent arrows! When I do bulleted lists in StarOffice and elsewhere, there are left and right toolbar buttons. Clicking this will move the current task up or down one level. Something like that should make it really easy to get the desired effect. (Also, I wonder if it would be possible to support directly typing into the tasklist rather than going through a dialog. Eg. something where the last displayed task is a "dummy" task (not part of the tasklist) - it would have a gray italic label saying something like "click me to add a new task". A single click would put you in edit mode; you can tab among the columns. Enter would commit the task and add a new dummy insert task below it. A newly added task is at the same indentation/nesting level as its parent.
Hello Tor, I know that you organize your tasks as a flat list and I always keep it in mind and take care of it when implementing something. There are already "Indent" and "Unindent" actions that let you change nesting. Adding a task without showing a dialog is already on my list and I just added your excellent idea about virtual "Click here to add new task" entry to it. But it was always possible to add a task at the desired position using the dialog. So let's concentrate on this first. I have analyzed most of the programs from the attached spreadsheet and found only 2 solutions: - root node (as in User Tasks for NB 5.5) - 2 different actions for adding a task at top level and as a subtask I don't like the idea of having multiple actions/toolbar icons for adding a task at the top level or a subtask. In fact if there is no information about what is selected a task could only be added at the top level and if something is selected, a new task could be added at 6 different positions: - as the last subtask - as the first subtask - at the same level before the task - at the same level after the task - at the top level as the first task - at the top level as the last task to support all these options we would need 5 radio buttons in the dialog (and in the options dialog too so default behavior could be specified): (*) Append (*) Top level task ( ) Prepend ( ) Subtask of .... ( ) Same level as ... (sibling) I would like to hear your opinion on this. Do you like it? If yes I would implement it and close this issue.