Progress Indication of Running Processes
Author: Ondrej Langr
$Id: index.html,v 1.4 2007/03/09 13:00:47 ondrej Exp $ (see full CVS history)
Table of Contents
- Problem Description
- Use Cases and Scenarios
- Open Issues & Notes
For running applications, the progress indiation is shown as first indefinite and then an empty bar. This does not reflect what is actually happening and may cause the user to think there is something he/she is still waiting for before he can try the application he just started.
User compiles and runs several applications, files or other processes. With many processes running in the background, the user wants to learn what processes are actually running and manipulate (show output, close, watch, etc.. ) some of these processes.
With a process/processes silently running in the IDE background ...
- the user wants to manipulate a process not directly shown in the status bar. He/she invokes detailed view over the running processes. In this view, he/she chooses the desired process, invokes a contextual menu and performs the desired task.
- user is willing to directly manipulate a running process. In this case the user does not invoke the list displaying all processes, but manipulates the process directly in the status bar.
- Processes where progress signalization is desired such as compiling, CVS checkout, indexing ... (the remaining time or percentage may not necessarily be known)
- Processes where progress signalization is not desired. Generally processes waiting for user's input such as running an application or debugger waiting at a breakpoint.
The pictures below can be summarized into following:
- Running applications and other processes waiting for users input do not have a progress bar.
- Any other processes which are not waiting for users input do have a progress bar (for description of progress bar types see the Progress Indication UI spec, but please notice that the visual appearance in this specification is out of date).
- If there is just one process ...
- If there are more then just one process, the information about number of processes is displayed and the close button should be disabled (see pictures). The user will be allowed (as currently - see the original Progress Indication Specification) to "watch" a particular process which means to select this process so that the information about the process is displayed in the progress bar area. We will call this process main process. Single process is always considered main process, the main process' name in the pop-up list is highlighted in bold font. For more then one process, there is by default no main process and summary information is displayed (e.g "2 processes"). Following situations can occur for more then one processes in progress:
- There is no main process
(default for more then one processes). In this case the progress bar in progress bar area summarizes information about all processes.
Three possibilities can occur:
- All processes do not have a progress bar. In this case "N processes <status information>" is displayed. If status information is not the same for all processes (running, ?waiting?) summary status information is "in progress".
- All processes do have a progress bar. In this case summary progress bar is displayed.
- Definite progress bars only -> definite summary progress bar showing the summary progress.
- Indefinite progress bars only -> indefinite summary progress bar.
- Combination of above -> indefinite progress bar.
- Some processes do and some don't have a progress bar. Indefinite progress bar should be displayed in progress bar area in this case.
- One process is selected as main.
Main process' name in pop-up list should be highlighted in bold.
- The main process does not have a progress bar. The number of processes (if more then 1) should be displayed in progress bar area, followed by main process' name and its status information: 3 processes [x] [^]
- The main process does have a progress bar. In this case the number of processes (if more then 1) followed by process' name together with a progress bar for this process is shown in the progress bar area (see Figure 3).
- In case there is a percentage or time information associated with the main process, this information should be displayed within the main progress bar as well as in the progress bar in the process pop-up list (see Figure 7).
There should always be a button () to visually signalize the presence of a pop-up list (see Figure 1a). The current context menu available from the list of processes through right-click on a particular process should be kept as it is (NB 6.0 Dev build 070221) but "show output", the only action expected to be really used, should be made possible to invoke directly from the process list (see e.g. Figure 6).
In case the name of a process is very long (see Figure 6):
- The process name in the process pop-up list should be truncated so that the name of the ant task is still visible (see figure 6a).
- The process name in the progress bar area should be full length unless the progress bar area size is not sufficient. In this case it should also be truncated in the same way.
In most cases, both progress bar information text and status line text fit on the same line without overlapping.
If there is a long text in status line and long text information associated to the running application (or extremely small window), status line area and progress bar area can eventually compete for available space:
Figure - Cornercase, competing for space ( in NetBeans 6.0Dev )
When this happens (it is not a common situation since progress associated information is not typically very long and neither is the status information), they both should be both given 50% of available space, but the textual information presented in progress bar area at the status line should be never truncated to less than 25 characters.
|"N processes running. Click for details."||opens the list of processes|
||"N processes running. Click for details."||opens the list of processes|
|none||stops the appropriate process|
|"N processes running. Click for details."||opens the list of processes|
Figure 1b. Single process without a progress bar - with pop-up list.
Figure 2. Single process with a progress bar. Please notice the button allowing to close the process directly.
Figure 4. More processes, all of them without a progress bar. No main process (default unless the user selects one process to "watch").
Figure 5. More processes where some or all do have a progress bar (this situation is similar to Figure 3).
Figure 6a. Extremely long process names - the list width is the same as for short process names and the name inside is truncated so that Ant task name is still visible. The process name in status bar area should be displayed in its entirety unless it would exceed the progress bar area in which case it should be truncated in the same way.
Figure 6b. Extremely long process names for running processes. The same applies as for Figure 6a.
Figure 7. If there is percentage or time information available for a process which is displayed in the main progress bar, this information should be shown in the progress bar in process-list and also as a tooltip over the main progress bar (see Tooltips and Functionality).
Figure 8. More running processes and one of them has been selected as main (bold font in pop-up list). Main process' name and progress bar are displayed in progress bar area. In case this process ends, no process is selected as main and only summary information is displayed (see figures 3, 4 and 5)
Element spacing is done mainly (but not exclusively) according to Guidelines about spacing and alignment of components. Where spacing is undefined, it should remain as it is in NetBeans 5.5
Can there be other processes / types of processes being shown in the progress bar? Pluggable processes, module-dependent processes? I didn't come across any.