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.
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)
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
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.
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.
*** Issue 32663 has been marked as a duplicate of this issue. ***
Don't forget to polish the uispec as promised on the mailing list ;-). http://projects.netbeans.org/servlets/ReadMsg?msgId=497339&listName=dev
see version 1.24 of the spec.
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 --->
---> CLOSED
Reorganization of java component