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.

Bug 32677 - Finish UI design of classpath customizers
Summary: Finish UI design of classpath customizers
Status: CLOSED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 3.x
Hardware: PC All
: P1 blocker (vote)
Assignee: Chris Ledantec
URL:
Keywords:
: 32663 (view as bug list)
Depends on:
Blocks: 32678
  Show dependency tree
 
Reported: 2003-04-07 12:30 UTC by Vitezslav Stejskal
Modified: 2007-09-26 09:14 UTC (History)
2 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitezslav Stejskal 2003-04-07 12:30:51 UTC
The java project supports several types of
classpath and it allows to define them for various
objects like project itself,  Compiled Classes
build target, execution profile, etc. The
classpath items are inherited between classpath
types as well as between the objects for which the
classpaths are defined. This model is complex, but
has several basic rules.

The classpath model is presented to the user
through classpath customizers shown for various
objects which have classpath bound to them. This
customizer should allow user to control the model
and should present her all the relevant
information about the model. Specifically this
means that:

- user should be able to distinguish which
classpath items are defined on the object and
which are inherited from elsewhere
- when user removes some item from the classpath
on some object and this item is inherited it is
marked as removed, the user should be able to
remove this mark again
- user typically does two things - 1. she defines
new resource in the project (e.g. library or
simple resource) and 2. she defines on which
classpath this resource should be used; the
customizer should distinguish these two actions
and allow either to create new resource definition
and say where it should be used or just use
already defined resource (see also issue #32662)
Comment 1 Chris Ledantec 2003-04-07 15:09:55 UTC
here is what i'm considering changing the spec to read. please note
that this is also in response to 32662. i think the main thing here is
to get the confirmation text right... i'm leaving it to the user to
understand the differences between the different classpaths.

The Classpath customizer tabs show up as a part of the compiled
classes Build Target customizer, and execution/debug profile. By
default the compiled classes Build Target classpath and
execution/debug profile classpath have the same contents as the
project classpath (in each respective tab). 


  _________________   _________________   ______________          
 /General Classpath\ /Runtime Classpath\ /Boot Classpath\          
|                   \-----------------------------------+
|                                                       |
| Current resources:                                    |
| +------------------------------------+                |
| | /path/to/Foobar.jar                |  [ Add...    ] |
| |------------------------------------|                |
| | /path/to/Math Lib [java]           |  [ Remove    ] |
| |------------------------------------|                |
| | /path/to/Crypto [java]             |                |
| |------------------------------------|  [ Move Up   ] |
| | /path/to/xmlParse.jar              |                |
| |------------------------------------|  [ Move Down ] |
| |                                    |                |
| +------------------------------------+                |
+-------------------------------------------------------+
Figure 39: Classpath Customizer Tabs


Each classpath tab may contain any of the supported types of Resources
for a Java project with the exception of JDK which can only be changed
via the Project Customizer or the Build Target Customizer.

Clicking Add... from any of the panels opens a dialog that lets the
user add resources already present in the project. The Resource list
lists all resources in the the project that are Java specific (i.e.
make sense for use on a classpath). 


+-------------------------------------------------------+
| Add Resource                                          |
+-------------------------------------------------------+
|                                                       |
| Resources:                                            |
| +------------------------------------+                |
| | /path/to/some.jar                  |  [ New...    ] |
| |------------------------------------|                |
| | /path/to/another Lib [boot]        |                |
| |------------------------------------|                |
| | /path/to/thislib [boot]            |                |
| |------------------------------------|                |
| | /path/to/fastCode.jar              |                |
| |------------------------------------|                |
| |                                    |                |
| +------------------------------------+                |
|                                                       |
|                                     [ Ok ] [ Cancel ] |
+-------------------------------------------------------+
Figure 40: Add Resource dialog	  
	  

Resources that are already used on another part of the classpath, like
the boot classpath, are marked in the list. When moving resources
between classpaths a warning dialog prompts the user


+---------------------------------------+
| Warning                               |
+---------------------------------------+
|                                       |
| You are about to move <resource> from |
| <classpath> to <new_classpath>. Are   |
| you sure about this change?           |
|                                       |
| [x] Ask in the future?                |
|                     [ Ok ] [ Cancel ] |
+---------------------------------------+
Figure 41: Confirmation for moving a
resource between classpaths.
	  

From the Add Resource dialog the user may click New... to open the New
Resource Wizard with the resource use preselected based on the tab the
wizard was opened from (General Classpath= Everywhere, Runtime
Classpath= Runtime, Boot Classpath = Boot Classpath). A resource added
in this way will be available for object it was created, i.e. if a
resource is added via the project node the entire project will see the
resource (all Build Target and Execution Profiles), if the resource is
added on a Build Target or Execution Profile only that object will
make use of the resource though it will be shown under the Resources
node in both cases
Comment 2 Svata Dedic 2003-04-07 15:28:56 UTC
Very nice except that the assumption that a resource is exclusively
owned by a classpath is wrong, hence the whole idea of "confirmation"
and "moving resources" seems based on the water.

Please design the UI according to the common working model; do not
change the functionality, that was outlined by Vita.
Comment 3 Chris Ledantec 2003-04-07 16:41:01 UTC
right-o about the confirmation dialog. i'll nix that part of the spec
along with the update to note where a resource is used. the only
resources availble in the add dialog will be resources not being used
by the b.t. or profile.

the remaining issue here is the same one Svata pointed out in 32663.

i'll leave this open while i talk with other groups building on top of
java project to see how common adding a resource to one b.t. or
profile is.
Comment 4 Chris Ledantec 2003-04-07 16:42:59 UTC
*** Issue 32663 has been marked as a duplicate of this issue. ***
Comment 5 Vitezslav Stejskal 2003-04-10 09:55:04 UTC
Don't forget to polish the uispec as promised on the mailing list ;-).
http://projects.netbeans.org/servlets/ReadMsg?msgId=497339&listName=dev
Comment 6 Chris Ledantec 2003-04-10 15:23:02 UTC
see version 1.24 of the spec.
Comment 7 Jan Becicka 2003-11-25 14:04:56 UTC
As described in
http://www.netbeans.org/servlets/ReadMsg?msgId=619519&listName=nbdiscuss the
current work on projects prototype has been stopped.

Marking issue as VERIFIED --->
Comment 8 Jan Becicka 2003-11-25 14:14:04 UTC
---> CLOSED
Comment 9 Quality Engineering 2007-09-20 10:55:00 UTC
Reorganization of java component