Re: Some comments on the latest projects build

Jan Becicka <[email protected]> Mon, 22 Sep 2003 14:42:41 +0200
Newsgroups gmane.comp.java.netbeans.modules.projects.devel
Message-ID <[email protected]>
Tim, thanks for your valuable feedback

Tim Boudreau wrote:

> Creating a new project:
> Set home directory
>  - Use a different dir name than $HOME/Projects - it's not terribly 
> unusual for a person to organize their own work in a directory called 
> Projects in their home dir - I know I've done that in the past.  So to 
> simply avoid such collisions, maybe something less likely, like 
> "nbprojects" or such.

Please file a bug.

> 
>  - When I created a new Basic Java App project, the home directory
> field was empty, and the chooser opened on
> Filesystems\This Computer\C:\downloaded\netbeans\bin.  Probably
> not the right place, and it would be good to provide a reasonable
> default (this may be a bug, it did provide a reasonable default
> the first time).

This is a bug. http://www.netbeans.org/issues/show_bug.cgi?id=35482

 > Add source directories, Add dialog:
> - 0 pixel margin on various labels in the the Add... dialog.  Needs a 
> bit of UI tuning to align the Create button over the Cancel button, 
> things like that.
> - What is "Places" and will it ever contain anything more than This 
> Computer?  Seems like two semi-artificial abstractions here and I'm not 
> sure either one helps.
> - Very poor performance expanding a folder with lots of subfolders. 
> Probably a result of DataSystems, definitely something that should be 
> looked at wrt FS Extension.
> - The New Directory field and label should probably be a button or 
> something, more like a file chooser.  Most of the time this will not be 
> the option used (particularly since the task is to add *existing* 
> sources at this point in the wizard).  Also it is not clear where the 
> directory will be created
> - The Add dialog forgets the last place I added sources from - I have to 
> drill through Places/This Computer/etc. again.  Two suggestions here:
>   1. Open on the parent of the last added dir if there is one
>   2. Provide a drop-down of previously used "recent folders" - this is
>   fantastically useful in other applications, we should do it to (for
>   file choosers as well, really)
> 
> I end up with paths in the wizard like:
> "This ComputerC:/space/nb_all/openide/src"
> Surely the "This Computer" part shouldn't be there, or at least it
> should have a trailing /.

"Places", "This Computer" and mixture of "/" and "\" is defintely a bug. Terms like "This Computer" and "Places" are not mentioned in UI spec AFAIK. Please file a bug.

> Add resources:
> Why the word "resource"?  It sounds like an implementation detail here - 
> at least for Java, are there any resources that are not class libraries?
> Either allow the project nature (if I understand the nomenclature here) 
> to provide the description here, or just call it libraries.

See http://projects.netbeans.org/uispecs/java/JavaProjectsUISpec.html#Resources :
"There are three main types of resources in the Java Project: Classpath resources that are made up of JAR archives, and filesystems; JavaDoc resources that typically provide support for Classpath resources; Supporting Sources that provide source files in support of JAR archives (used for debugging)."

> 
> Using the project...
> Too many nesting levels!
>  - Sources/Packages - does the Sources node really need to be here?
>  - Output/Compiled Classes - when is the output *not* compiled classes?
> Am I really ever going to have more than one output directory in a project?
> 
> Though not wildly scalable, you could do something like allowing the
> nodes for Output/Sources/etc to check if they only have one child, and 
> if so, provide the children of the one child, hiding the intervening 
> node.  This might allow you to make some improvement in a fairly generic
> way.

This part of UI is not implemented according to UI spec. See http://projects.netbeans.org/uispecs/java/JavaProjectsUISpec.html#Sources_and_Files.


> 
> 
> What does "opening" a project mean?  It seems to just expand a tree node
> in the Projects pane.   I happen to know that there can even multiple
> projects opened at the same time.

All projects that are visible in the Explorer are opened I hope.

> 
> 
> When I close a project (which one am I closing when I choose Close
> Project from the menu, anyway?), its node disappears from the list.
> Maybe I shouldn't be able to open a project that's already open - it
> would be more discoverable what this means that way.

You are closing current project.
I must write again: this part of UI is not implemented according to UI spec. See http://projects.netbeans.org/uispecs/infrastructure/ProjectsInfrastructureUISpec.html#Menubar_Menus.

> Creating a new class:
> I right click Test/Sources/Packages and choose new File/Folder, use the 
> Main template, and get to Target location.  Some issues here:
>  - Project combo is pointing to the "openide" project I created earlier,
> but I clicked on the Packages node for project Test.

Strange. It works for me.

>  - Project combo is very slow to open the first time

Please file a bug. Projects build is very slow as a whole. There are P1 performance issues in IZ. Please file another one.
BTW see http://www.netbeans.org/issues/show_bug.cgi?id=36011
http://www.netbeans.org/issues/show_bug.cgi?id=35481

>  - What is the "browse" button that is always disabled?

See section 5.1.4.1.1.2 in JavaProjectsUISpec.html. Browse button is disabled because this feature is probaly not yet implemented.

>  - What is the difference between Package Folder and Package?  Why
>    is the Package Folder drop-down enabled, but contains only one
>    item? (maybe just change the text "Package Folder" to something
>    more meaningful that distinguishes it from "Package").

A package folder is the project contents folder which has been identified as the class path element. Drop-down contains only one item, beacuse your project has only one package root.

>  - It is not clear that I need to tab out of the Package field to
>    trigger the "Folder does not exist - create?" dialog - it just
>    looks like I must have forgotten something because Next is disabled.
>    Then when I do tab out, I get the surprise of the dialog popping
>    up.  Better solution:  Display some error text at the bottom of
>    the wizard panel to describe what the situation is, and provide a
>    "create" button that is enabled if the folder doesn't exist.

Please file an enhancement request.

>  - If I create a package, then cancel the wizard, the package folders
>    are still there.

Hmm, I don't think, that this is incorrect.

> 
> Now I come to "Set Up Run Profile" - what is this?  I see a bunch
> of disabled fields and one checkbox saying "create a new run profile
> using TestMe class".  Issues:
>  - Text should be "using *the* TestMe class"
>  - What happens if I do nothing on this screen and click Finish? It
>    seems very mysterious, and I feel like I should create a new
>    run profile or my project won't run.
>  - What does Make profile public via VCS do?  It sounds like it will
>    publish something somewhere, which probably isn't really what it
>    will do.
>  - What is the scope of "Set as default run profile"?  The project?
>    Global?
> 
> 
> BTW, cancelling the add dialog a second time produces
> java.lang.IllegalArgumentException: Called DataObject.find on null
>     at org.openide.loaders.DataObject.find(DataObject.java:434)
>     at org.openide.loaders.DataFolder.findFolder(DataFolder.java:510)
>     at 
> org.netbeans.modules.java.ui.wizard.TargetChooserPanel$TCPanel.storeSettings(TargetChooserPanel.java:572) 
> 
>     at org.openide.WizardDescriptor.resetWizard(WizardDescriptor.java:821)
>     at org.openide.WizardDescriptor.access$800(WizardDescriptor.java:55)
>     at 
> org.openide.WizardDescriptor$Listener.actionPerformed(WizardDescriptor.java:1155) 

Running profiles are not implemented according to UI Specification.
http://projects.netbeans.org/uispecs/java/JavaProjectsUISpec.html#Running_Profiles

> Okay, I have my class.  Let's try to run it.  I didn't create a new
> "run profile" in the wizard.  I add System.out.println("Hello world");
> to my main() method and press F6...
>  - An output tab called "DefaultExecutor" appears
>  - The execution window briefly appears
>  - No output ever shows up in the output window - maybe it's not being
>    run?
> 
> Okay, so I look on Run|Edit Run Profiles.  I see there is something 
> called DefaultExecutor.  It points to a class examples.Main.  I change
> it to point to my test class.  Fine, it works.
> 
> What is Execution Platform?  There is a drop-down with one item -
> "default platform" - and no indication what this is or how (if?) I could
> create another one.

Platform repository is not implemented according to UI spec.
http://projects.netbeans.org/uispecs/java/JavaProjectsUISpec.html#Platform_Repository

> Platform tab - this tab is completely empty
> 
> 
> Expanding folders in the source tree in explorer is extremely slow.

Yes it is! As I mentioned above, performance of projects is really poor. Please file a bug if you have some measurements.

> Project view submenu of context menu for a project:
>  - Some of these views are non-orthagonal - they seem more like they
>    should be checkbox options.
>  - What I really want is packages directly under the project node,
>    without the intervening "Packages" node.  That would be more useful
>    than the current "Show Packages Only" view.
>  - Couldn't the project views be named based on what they do rather
>    than what they hide?  The current list makes it seem like we just
>    couldn't decide what to do.

As I mentioned before, this part is not implemented according UI spec.

Thanks again, Tim.
regards,

Honza