Re: question about the tasklist proposal and its possible use to improve our online help...
Tor Norbye <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.tasklist.devel |
|---|---|
| Message-ID | <[email protected]> |
Peter Eakle wrote:
> I'm new to this list (Jeri Lockhart just told me about it), so I
> apologize in advance if this has already been discussed.> For the past couple weeks a group of us have been discussing the
> possibility of improving the Netbeans on-line help so it can give more
> useful information about the selected type (for example, the current
> selection in the Netbeans Explorer). Each time the user changes the
> selection, we would like to see a list of clickable topics displayed in
> a small window refresh so the list of topics shown is always appropriate
> for the current selection. Each topic would either be educational (for
> example if an EJB is selected: "What is an EJB?"), or task based (i.e.
> info about how to work with the selected type within the IDE, for
> example: "Steps to create an EJB?"). The topics would be clickable, and
> if one is clicked by the user, that would display a page in our help
> system, or possibly in a web browser. The user would not have to go to
> the Help menu to see these topics -- the window with these topics could
> always be displayed (but the user can close it).
>
> The "tasklist" proposal, which I believe has been discussed here, sounds
It hasn't really been discussed here; it has been discussed on nbui
and I posted an e-mail to this alias last week (Friday perhaps) suggesting
that the tasklist can be a good solution to offering relevant functionality
to the user.
> similar in that it can, as I understand it, display a list of clickable
> topics which can change dynamically based on actions by the user (and
> outcomes of those actions). So I'm wondering if what you have discussed
> for the tasklist could also meet the needs of "tips about the current
> selection".
The tasklist is simply a list of tasks, and these are not limited to
be help topics. In fact, most of the suggestions I've made so far have
put actual actions as task; for example, if it discovers that it's likely
that the error you just encountered during a build is because you need
to import a particular class in your source file, it can add a task
which performs insertion for you.
> Here are some requirements that I believe the tasklist functionality
^^^^^^^^^^^^
I should probably point out here that the tasklist is not a funded
project - I'm doing it my spare time, and I don't have much of it.
Therefore, I'm focusing on features -I- want - but that doesn't mean
I'm not interested to hear what others want from it and ways to make
NetBeans more useful. (It also means that if this functionality is
really important to you, perhaps you should consider contributing to
the tasklist development effort since I simply can't do it all myself;
things have gotten REALLY busy at work the last couple of days.
Being an unfunded project we have to rely on open source participation
here.)
Specifically, the problem we're running into is that there are so
many things we could show in the task list:
- tasks the users have entered themselves, for example
"tomorrow: work on prototype"
- tasks scanned from the source code (e.g. when you open a file,
lines containing "TODO" or "FIXME" are added as tasks, and
clicking on these warps to the relevant source line)
- compiler errors encountered in the current file. These tasks
list the compiler error message, which is why this is useful
beyond the normal error annotation you see in the editor.
(MS Studio .NET does this too)
I've implemented 1 and 2 above and have prototyped 3.
In my e-mail on Friday I proposed some additional categories:
- "Suggestions" - a module which sits and looks at what you're
doing and throws out relevant suggested tasks - importing a class
is one. Another would be using some AI algorithms to see if
you're doing something repetitive and offer to teach you more
(the example I gave was typing System.out.println by hand repeatedly;
abbreviations can help with that).
- Your Help topics based on the selection. This is similar to the
above.
There may be other categories as well.
With only the first 3 categories implemented I noticed that a single
task window wouldn't do - as soon as I got compiler errors, my user
tasks would scroll out of view, etc. So I now have separate tabs,
one for each broad category.
I've made a proposal for how this is going to work. I posted it to
nbui the week before the July 4th shutdown. Since I received 0 comments
on nbui (1 on dev@tasklist) I'm going by my own proposed solutions
and have implemented some of them. If you'd like to review it and
provide additional feedback, that would be appreciated - you can
find it at tasklist.netbeans.org .
> would have to provide in order to satisfy the on-line help needs we have
> been discussing:
>
> 1. Selection of an object in the Netbeans Explorer or elsewhere is an
> event that triggers a topic refresh. The topics shown are associated
> with the type of the current selection (for example "Java File",
> "Servlet", "EJB").
>
> 2. When a topic is clicked by the user, it may display something from
> our help system, or a URL in a web browser.
>
> 3. The list of topics associated with each type can be maintained
> without modifying source code. This allows the people on a module
> development team who write on-line help topics to maintain the list of
> topics for each type implemented by the module.
>
> Do you think this can be done with the tasklist functionality?
Yes - although what you need is not ready yet. I've prototyped some
of it, but the APIs are not clean so I definitely want to refactor
some more before other modules can use it. (I've got tons of changes
in my working copy, but I can't check it in yet because there are
some new bugs I have to fix - thus what you find in CVS does not match
everything I've said here).
-- Tor