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 23823 - Design Libraries UI and expose common concepts as API
Summary: Design Libraries UI and expose common concepts as API
Status: RESOLVED WONTFIX
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 3.x
Hardware: PC Linux
: P1 blocker (vote)
Assignee: Chris Ledantec
URL:
Keywords: UI
: 32661 (view as bug list)
Depends on:
Blocks: 23798
  Show dependency tree
 
Reported: 2002-05-22 09:30 UTC by Svata Dedic
Modified: 2007-09-26 09:14 UTC (History)
1 user (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 Svata Dedic 2002-05-22 09:30:07 UTC
The master library list UI should provide a basic
management task for the List, add/remove/edit
capabilities. Order does not seem necessary at all.
The library entity UI should support
add/remove/edit/reorder operations for resource
contained within. It could also support filtering
or alternative displays showing resources used by
a particular service.
It may be possible that the Library concept could
be used to sub-manage project outputs and/or
project resources, if their number grows high; the
design should either anticipate such usage or
separate deisgns for those other places will be
needed.
Comment 1 Svata Dedic 2002-05-22 10:19:17 UTC
Adjusting milestone for planning
Comment 2 Svata Dedic 2003-02-03 14:17:27 UTC
See Borland JBuilder for a working example of this concept.
Comment 3 Chris Ledantec 2003-02-03 15:14:10 UTC
i need a bit more context: this is a library resource. right now there
isn't any ui to do anything with a library other than add it to the
project. 

what are you requesting: 

different ui for adding a lib to a project? 

ui to create and somehow save a lib?

i see that this was assigned to Dirk first... what parts of this
belong in the infrastructure?
Comment 4 Svata Dedic 2003-02-03 15:21:48 UTC
See "Select Library dialog" ASCII art.

* if it is a list of all libraries known at that time, how the user
selects the ones which will be added to the project ? Multi select
holding CTRL ?

* what does "Remove" ? will it remove the library from the global list ?

That led me to conclusion that the UI spec describes a different
concept than the one which is commonly used in other IDEs or does not
describe the concept well.

The user has to have a place where to define custom libraries. Again,
*please* see JBuilder for how this stuff works. Seeing it in action is
worth thousands of words - the global list of available  was misnamed
as "Master Library List" at some point and its UI is unspecified in
NetBeans.

None of this belong to the infrastructure, we are talking about java
libraries, aren't we ?
Comment 5 Chris Ledantec 2003-02-03 16:00:14 UTC
took a look a Jbuilder... this looks more or less okay, i can imagine
how the ui would fit into the add library wizard

new lib wizard:

add... brings up a filechooser for known libraries. this filechooser
(or explorer) has a new... button for specifying a new lib.

edit... same dialog as new library

up and down for the libraries listed.

add library dialog (filechooser or explorer):

filechooser or explorer for selecting a library. q: what should the
default location be? buttons ok, cancel and new

new library dialog:

asks for name, path, source and docs (source and docs may be filled in
automatically if the pieces are found via the path -not sure how this
would work but it's what jbuilder does).

if it makes sense for other languages to have libraries of this
variety then some of this should end up in infrastructure. 
Comment 6 Svata Dedic 2003-02-04 07:59:07 UTC
Note that New... from the "Project Properties" JBuilder dialog is just
a shortcut - the (global) library list is available from Tools |
Configure Libraries. Even if the user creates a new library from the
Project Properties, the library is placed into the "main" library list
and only referenced by the project.

BTW I see a little terminology confusion: you seem to use the word
"library" for both the actual ".jar" file and the (abstract) library
definition (jar + source + doc + whatever else cobundle).

re. filechooser. If possible, I suggest directories added to project,
userdir, and possibly some favourities list.

re. other languages: yes, they might find something like libraries
useful, but:
- it makes sense to separate library lists for different languages
(libraries are typically in some language and cannot be bound to other
one)
- none of other modules expressed interest in this feature
- I suggest to take a "test drive" with java, possibly with
java-centric UI and promote/change the design later when others are
actually interested.
Comment 7 Chris Ledantec 2003-02-04 11:14:56 UTC
what else is in a library? it seems to me that the definition of a
library should be something more than just a resource. if it's just a
jar file or some binaries then there isn't any reason to call it a
library at all... all the same, i've posted a new version of the java
ui spec. checkout the the section Library Repository. i decided to
treat it like the platform repository since they seem very similar. go
over it and give me feedback here. i'll make changes today and a wider
announcement about the doc changes later this afternoon.
Comment 8 Chris Ledantec 2003-02-04 15:21:08 UTC
marking as fixed. further discussion can be held on dev@projects or in
person.
Comment 9 _ pkuzel 2003-04-07 11:29:57 UTC
Library chooser mentioned in UI spec is too tight to particular Select
Resource task.

For consistency there should be a component allowing to choose
library[ies] based on:
  - required content type
  - prefered library pool
    (C libs vs. Java libs vs. JRE libs).

This chooser is then invocable from Classpath customizer, JavaDoc
manager, Form editor component manager, Ant task classpath, EJB
selector, ...

I would hide this component behing an API such as:

class LibrariesUI {
  /** 
   * Popup modal dialog with library selector.
   * @return null on cancel 
   */
  LibraryResource[] selectResources(
    String[] pools,
    Class[] requiredResourceTypes,   
    Library[] preselected
  );
}

<minor>
Chris is not there some widely recognized domain synonym for library.
I'd call library a pool of component-refs not one component-ref itself.
</minor>
Comment 10 Chris Ledantec 2003-04-07 13:51:04 UTC
*** Issue 32661 has been marked as a duplicate of this issue. ***
Comment 11 _ pkuzel 2003-04-22 14:53:35 UTC
I have discussed it with Jano and I propose following more management
task centric library repositoty UI
<http://projects.netbeans.org/uispecs/java/libraries-manager.png>.

That's all. Add button opens a file chooser. Create button (if
enabled) creates new Untitled library in current context. Delete
button deletes selected library.

It's heavily inspired by JBuilder 8 PE. Chris could you review and
possibly link it for the UI specs.

Open issue: should we introduce rename/edit buttons and use readonly
text fields.
Comment 12 _ pkuzel 2003-04-22 14:58:59 UTC
BTW exposing 'UI API' is not required. We can easily live only with
implementation that properly integrates itself with project's
infrastrucure resources concept, keeping it without exposed API.
Comment 13 Svata Dedic 2003-04-22 15:36:36 UTC
What is the exact meaning of the three categories (module libs, user
libs, shared libs) ?
Comment 14 Jan Pokorsky 2003-11-27 13:50:32 UTC
The projects prototype has been canceled. For more details see
http://www.netbeans.org/servlets/ReadMsg?msgId=619519&listName=nbdiscuss
Comment 15 Quality Engineering 2007-09-20 10:48:20 UTC
Reorganization of java component