You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@netbeans.apache.org by "jtulach (via GitHub)" <gi...@apache.org> on 2026/09/02 05:56:00 UTC

[PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

jtulach opened a new pull request, #9592:
URL: https://github.com/apache/netbeans/pull/9592

   The goal of this PR is to design an API that would allow projects to **nest children projects**. Such nesting shall help us solve a long time pending issue that Mark @struberg pointed out a decade ago. E.g. that for example rich Maven projects aren't represented hierarchically.
   
   The change is _only visual_. The projects are still open - e.g. goto type, symbol or file will continue to work as expected.
   
   ![Sample Maven Project Reorganization](https://cwiki.apache.org/confluence/download/attachments/446071397/image-2026-8-11_10-56-50.png?version=1&modificationDate=1786438611000&api=v2)
   
   The change to Maven project isn't part of this PR, but I'll test the API on Maven to see if it can deliver and really simplify organization of huge projects.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "mbien (via GitHub)" <gi...@apache.org>.
mbien commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5537159288

   > Rather I'd offer an [alternative actions](https://cwiki.apache.org/confluence/download/attachments/446071397/image-2026-8-18_8-39-37.png?version=1&modificationDate=1787035178000&api=v2) that would mimic what [Apache NetBeans VSCode Extension](https://cwiki.apache.org/confluence/spaces/NETBEANS/pages/158869492/Apache+NetBeans+Extension+for+Visual+Studio+Code) already does.
   
   Open Folder? I am a bit confused since NB can do that as long I remember. It got also recently added as a right click menu action so that you don't have to drag things around.
   
   <img width="815" height="427" alt="image" src="https://github.com/user-attachments/assets/1cb85015-df58-4622-b4ba-cc5a751e4d6a" />
   
   Being able to link those folders with project groups would be interesting though - since they are not persisted atm.
   
   Document groups would also need some love, they don't mix very well with project groups atm. There is probably a interesting UX to get when document groups + git stash/unstash + branch switch are combined in a smart way to make context switching easier.
   
   > for [Java Platform Extension](https://marketplace.visualstudio.com/items?itemName=Oracle.oracle-java) with a 6M of downloads. That makes it an important asset for its publisher...  It should be in the interest of the publisher as well as Apache NetBeans project to make sure both the extensions work well ...
   
   thats cool. I am sure we would be open to assign some maintenance tasks to publishers if there is interest. A lot needs to be done to bring the codebase in better shape - although we made some progress recently.
   
   In any case, PRs are not the right place to discuss larger changes.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "JaroslavTulach (via GitHub)" <gi...@apache.org>.
JaroslavTulach commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5536255861

   >  Unless the user hits open required projects -> open all projects
   
   When dealing with unknown source (like Apache Maven or OpenJDK is to me), the whole point is that one **must open all projects**. Otherwise _goto type, file & co._ work poorly. 
   
   ### Being for Experts
   
   NetBeans has a unique concept of handling projects. It is a completely different workflow than other IDEs are built around.  I like it because it is flexible. However it also complicates things - because it is flexible. Projects are stored in Git repositories these days. When opening such a project, it (almost all the time) makes sense to **open all the projects** in the Git repository. That's not a NetBeans philosophy. NetBeans allows one to cherry pick and open only some of the projects.
   
   ### Being Different
   
   Such a flexibility makes NetBeans an IDE for experts. However it also comes with a cost. Not only implementation wise (IDE has to be ready for set of projects being "half open"), but also from a UX perspective. Every "expert" has different set of subprojects open and then the behavior of the IDE is different.
   
   Other IDEs have a concept of _workspace_. When opening Apache Maven sources in a "workplace", then the IDEs just open all the nested projects in the Apache Maven Git repository.
   
   ### Simplify UI. Keep Flexibility.
   
   I believe the time has come to straighten NetBeans IDE position by adjusting to common UX while keeping the flexibility under neath. NetBeans already has support for [groups for projects](https://cwiki.apache.org/confluence/download/attachments/446071397/image-2026-8-18_8-37-16.png?version=1&modificationDate=1787035037000&api=v2). I'd like to use it to mimic the concept of "workspace". Ideally I'd like to rework the _File_ menu to offer [Open/Close Folder, Add to Workspace, Save Workspace as](https://cwiki.apache.org/confluence/download/attachments/446071397/image-2026-8-18_8-39-37.png?version=1&modificationDate=1787035178000&api=v2) just like VSCode offers. 
   
   ### TL;DR
   
   Of course, those who know what they are doing can still _Open Project..._ one by one and work only with a selected subset. However for clueless users working on an unfamiliar code base, I believe we have to lead the UX towards **open all the projects** at once.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "jtulach (via GitHub)" <gi...@apache.org>.
jtulach commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5615399110

   - #9602 solves the project nesting without an API changes
   - closing this PR for now


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "neilcsmith-net (via GitHub)" <gi...@apache.org>.
neilcsmith-net commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5538198541

   > > Maybe projects just open on-demand as needed?
   > 
   > Every "expert" has different set of subprojects open and then the behavior of the IDE is different. Such a _"magical flexibility"_ makes the UX poor.
   
   You could make the same arguments for ergonomics.  For both that comes down to better implementation.  The UX is only poor if the behaviour of the IDE _is_ different and UX transparency is lost.  That to me is the point where this could move from an option to try to a sane (but still switchable) "non-expert" default.
   
   Incidentally, linking up a relevant recent issue - #9572 
   
   And another issue that relates to transparency of behaviour, not just whether a project is _open_, but whether it _has ever been opened_ - #4274 
   
   > thats cool. I am sure we would be open to assign some maintenance tasks to publishers if there is interest. A lot needs to be done to bring the codebase in better shape - although we made some progress recently.
   > 
   > In any case, PRs are not the right place to discuss larger changes.
   
   Again, agreed!  And I'd much prefer a push to help on the rather more important things, like Maven 4 integration, if we're discussing ways to encourage such projects to stop expecting a free lunch. :wink:  The NetBeans VSCode plugin basically stopped development a year ago, but we seem to be ignoring that.  Whether 6m people downloaded the Oracle plugin is irrelevant.  We have hundreds of thousands of people using every release of NetBeans, and I think it's a mistake to assume synergy of approach is what keeps them doing so.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "neilcsmith-net (via GitHub)" <gi...@apache.org>.
neilcsmith-net commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5521824269

   > I like it as UI option and indeed many asked for something like that before. However, I believe that the tree will become deep quickly (esp in larger projects) which will make me want to have the flat structure again (+ project groups for context switching).
   ...
   > Unless the user hits `open required projects -> open all projects` - which can be overwhelming - it remains usually fairly easy to navigate.
   
   Agreed!  This looks like a great option, as long as it's optional and off by default (for now at least).  It reminds me a little of the package view tree options - sometimes useful, often unwieldy - flatter is often easier to use in practice.
   
   > The sub-project tree must also retain a way to distinguish between closed and opened project.
   
   My first thought was whether leaf or not.  However that might conflict with representing nested project hierarchies.  The second thought was, why?  With the UI like this, what does closed vs opened mean?  Maybe projects just open on-demand as needed?  Which is not that different to double-clicking on them now.
   
   The varargs changes in `Children` might be a problem.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "mbien (via GitHub)" <gi...@apache.org>.
mbien commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5522178702

   I don't want to derail this but something we could try is to add more sorting options to the project list. Topological sort would have the parent above the child. So you would have the root project on top displaying the sub module tree (see screenshot), and all other projects you open would show up below. Even manual re-ordering mode would help I think.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "jtulach (via GitHub)" <gi...@apache.org>.
jtulach closed pull request #9592: `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects
URL: https://github.com/apache/netbeans/pull/9592


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "mbien (via GitHub)" <gi...@apache.org>.
mbien commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5518721738

   I like it as UI option and indeed many asked for something like that before. However, I believe that the tree will become deep quickly (esp in larger projects) which will make me want to have the flat structure again (+ project groups for context switching).
   
   The sub-project tree must also retain a way to distinguish between closed and opened project. (which might be tricky to visualize, since "`Maven 4 API`" is a project and "`Maven 4 API :: Meta annotations`" is a project too - see screenshot where both are closed)
   
   The top level project looks like this right now for comparison:
   
   <img width="356" height="780" alt="image" src="https://github.com/user-attachments/assets/bcda7db0-1b95-4a28-be9a-7c4bac17441c" />
   
   Unless the user hits `open required projects -> open all projects` - which can be overwhelming - it remains usually fairly easy to navigate.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "mbien (via GitHub)" <gi...@apache.org>.
mbien commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5518928402

   although we could probably mitigate many horizontal-scroll issues of deep trees by tweaking the node indentation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "JaroslavTulach (via GitHub)" <gi...@apache.org>.
JaroslavTulach commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5536513311

   > Be careful! If you say that opening a project opens alls submodules ... These are > 500 submodules. The IDE currently struggles in the project open dialog, I don't want to know how it will feel when all 500 submodules are opened.
   
   NetBeans own codebase is another example where opening all projects takes the IDE to its limits. As such, I have **no intention to change the workflow** for expert users. Rather I'd offer an [alternative actions](https://cwiki.apache.org/confluence/download/attachments/446071397/image-2026-8-18_8-39-37.png?version=1&modificationDate=1787035178000&api=v2) that would mimic what [Apache NetBeans VSCode Extension](https://cwiki.apache.org/confluence/spaces/NETBEANS/pages/158869492/Apache+NetBeans+Extension+for+Visual+Studio+Code) already does. 
   
   I am a huge [believer in synergy](https://wiki.apidesign.org/wiki/Common_ground). The [Apache NetBeans VSCode Extension](https://cwiki.apache.org/confluence/spaces/NETBEANS/pages/158869492/Apache+NetBeans+Extension+for+Visual+Studio+Code) is a base for [Java Platform Extension](https://marketplace.visualstudio.com/items?itemName=Oracle.oracle-java) with a 6M of downloads. That makes it an important asset for its publisher.  It should be in the interest of the publisher as well as Apache NetBeans project to make sure both the extensions work well even on projects like [openhub-addons]( https://github.com/openhab/openhab-addons/tree/main/bundles).
   
   Hence, by aligning the UX, we shall _mutually straighten our forces_ to (possibly) improve the IDE's strength in handling those 500+ modules without much issues. Of course, this is just a speculation - it may not happen - however without the [common UX ground](https://wiki.apidesign.org/wiki/Common_ground) it certainly won't happen. We have to set the [environment up for synergy](https://wiki.apidesign.org/wiki/Intelligent_design) first, and then believe the synergy inevitably emerges. That's why I plan to offer those [workspace UX actions](https://cwiki.apache.org/confluence/download/attachments/446071397/image-2026-8-18_8-39-37.png?version=1&modificationDate=1787035178000&api=v2).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "matthiasblaesing (via GitHub)" <gi...@apache.org>.
matthiasblaesing commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5536301353

   > When dealing with unknown source (like Apache Maven or OpenJDK is to me), the whole point is that one must open all projects. Otherwise goto type, file & co. work poorly.
   
   Be careful! If you say that opening a project opens alls submodules I veto this unless you can explain how you intent to handle this: https://github.com/openhab/openhab-addons/tree/main/bundles. These are > 500 submodules. The IDE currently struggles in the project open dialog, I don't want to know how it will feel when all 500 submodules are opened.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Re: [PR] `LogicalViewProvider.WithNestedProjects` allows one to logically nest projects [netbeans]

Posted by "JaroslavTulach (via GitHub)" <gi...@apache.org>.
JaroslavTulach commented on PR #9592:
URL: https://github.com/apache/netbeans/pull/9592#issuecomment-5536062161

   > ... sorting options to the project list. Topological sort would have the parent above the child....
   
   Better sorting is a great idea! It doesn't require any API changes. It is not really achieving all, I'd like to, but it is a good non-disturbing start. I'll try it.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists