DisplayDependencies - plugin detail

Display the module dependencies in a UML-like graph.

NetBeans Plugin - DisplayDependencies
Plugin owner: AngeloD
Website: https://sourceforge.net/projects/netbeansmoddep/
Added: 2013-05-18
License: GPL-V2.0
Category: NetBeans Rich Client Platform
Downloaded: 5,623 times
Rating:
 4.42, by 4 users

Plugin Log Show log

Versions available

Download plugin   Download size: 0.03 MB   Last Update: 2016-10-06

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin


What's new in this version

Recompiled for NetBeans 8.2

Verifications for NetBeans versions

8.2 verification PASSED See verification details
Download plugin   Download size: 0.03 MB   Last Update: 2015-11-13

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin


What's new in this version

Update for NetBeans 8.1

Verifications for NetBeans versions

8.1 verification PASSED See verification details
Download plugin   Download size: 0.03 MB   Last Update: 2015-08-10

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin


What's new in this version

Version 1.2
Added possibility to change routing algorithm.
Added help to general help

Version 1.1
Fixed bug not allowing to expand dependencies for nodes sharing a dependency node. Improved the UI to show only actions that are relevant for a node. Show error message for unsupported project types instead of throwing exception.

Verifications for NetBeans versions

8.0 verification PASSED See verification details
Download plugin   Download size: 0.03 MB   Last Update: 2013-11-01

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin


What's new in this version

Compiled against NetBeans 7.4.

Verifications for NetBeans versions

7.4 verification PASSED See verification details
Download plugin   Download size: 0.03 MB   Last Update: 2013-06-13

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin


What's new in this version

The generated graph can now be saved also in PlantUML format.
Fixed tooltips of the TopComponent windows.

Verifications for NetBeans versions

7.3 verification PASSED See verification details
Download plugin   Download size: 0.03 MB   Last Update: 2013-06-13

This plugin is also available on the NetBeans Plugin Portal Update Center. Use 'Tools > Plugins' action from the NetBeans IDE main menu for convenient installation of this plugin


What's new in this version

Version for NetBeans 7.2.1
The generated graph can now be saved also in PlantUML format.
Fixed tooltips of the TopComponent windows.

Verifications for NetBeans versions

7.2 verification PASSED See verification details


Introduction

In order to understand modules relations in an application based on the NetBeans Rich Client Platform, it is a lot easier to use a graph.
This plug-in generates a UML-like component diagram showing the dependencies of a module.


The generated graph can be saved as:

- png image

- a Gephi gexf file

- a PlantUML puml file.


This plug-in has been largely inspired by the work of Zoran Sevarac http://www.netbeans-serbia.org/patterns-for-modularity-what-modules-don-t-want-you-to-know


To generate the graph, select a module or a module suite, click on the toolbar button or select the Show Dependencies item in the Source menu.


The actions to save the generated graph are available through the window tab contextual menu.

The graph can be modified dragging the components with the mouse, double click on a connection to insert a point on the line.

[ You have to be logged in to be able to comment. ]

User Comments

  

greyed out, then messed up

First, it was always greyed out in NetBeans IDE 8.2.

Then when I uninstalled it, it uninstalled JUnit2.
Posted by mecase on Jun 06, 2017
  

Require

I think for this you need to readout the dependencies from requirejs and for example for angular too. Would be awesome
Posted by ChrisLE on Nov 13, 2016
  

Support to projects other than Java

@Chris, I will check if it is possible. The plugin is very simple and relies on the information available in the NetBeans project class so most of the work is done by the NetBeans platform itself...
Posted by AngeloD on May 25, 2015
  

Possible to have support for other projecttypes/frameworks?

It would be nice, if we can have a support for maybe angularjs and requirejs as an HTML5 project too. Netbeans 8.1 supports node.js so it would be nice, if we can have the support for those type too.


Regards

Chris
Posted by ChrisLE on May 23, 2015
  

New version loaded to address problems reported by users

Fixed bug not allowing to expand dependencies for nodes sharing a dependency node.
Improved the UI to show only actions that are relevant for a node.
Show error message for unsupported project types instead of throwing exception.
Posted by AngeloD on May 19, 2015
  

only one node can be expanded

@err thank you for the feedback, in general it is possible to expand more than one node.

I have realized, trying to reproduce your problem that there is a case when it is not possible, take the following example (the arrow show a dependency):

m1 > m2 > m5
                   ^
m1 > m3 > m4

Then in this case either you expand m2 or you expand m4.

I will check why it does not work and try to implement the hide dependencies.
Posted by AngeloD on May 18, 2015
  

only one subnode can be expanded

Maybe I'm doing something wrong... With NB-8.0.2 I selected a platform app (with 14 modules so far)

- When I press "show dependencies" most of the module are not visible (the window is too small). There are no scroll bars or alternate layout strategies to select.

Call the root layer-0, it's immediate children layer-1

- After expanding one of the layer-1, no other layer-1 can be expanded until you remove the children of the layer-1 first expanded. Looks like only one layer-1 at a time can be expanded.

- There is no "hide children" menu item. So after expanding a layer-1, it's children must be removed one by one before another layer-1 can be expanded.
Posted by err on May 17, 2015
  

Multiple levels of dependency

@goofdup yes, it is possible but not automatically, you have to right click on the (sub)node and expand the dependencies for it.

http://a.fsdn.com/con/app/proj/netbeansmoddep/screenshots/case4.png

I decided not to do this automatically because the graphs become unreadable.

Posted by AngeloD on Dec 01, 2014
  

Is it possible to show multiple levels of dependency?

I have a project where the top level module is dependent on some modules. Those modules are then dependent on other modules. Is it possible to display the whole chart?
Posted by goofdup on Dec 01, 2014
  

@Chris

Good point Chris! I will fix the problem as soon I have some time...
Thank you for the stack trace.
Posted by AngeloD on Jul 27, 2014
  

NullPointerException on not supported projecttypes.

All is fine, when I click on when I have selected a maven project, netbeans module, whatever. A Java projecttype :). When I have selected a HTML5 proejct, I thought cool, they can show me the dependencies too for my requireJS for example, then I got a NullPointerException. Maybe it would be better to deactivate the whole functionality on not supported projecttypes.

Here you can see the exception:

java.lang.NullPointerException
at eu.dagnano.showdependencies.ShowDependencies.collectProjects(ShowDependencies.java:127)
at eu.dagnano.showdependencies.ShowDependencies.perform(ShowDependencies.java:80)
at eu.dagnano.showdependencies.ShowDependencies.actionPerformed(ShowDependencies.java:62)
[catch] at org.openide.awt.InjectorExactlyOne.actionPerformed(InjectorExactlyOne.java:78)
at org.openide.awt.ContextAction$Performer.actionPerformed(ContextAction.java:226)
at org.openide.awt.ContextManager.actionPerformed(ContextManager.java:257)
at org.openide.awt.ContextAction.actionPerformed(ContextAction.java:109)
at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:93)
at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
at org.openide.awt.GeneralAction$BaseDelAction.actionPerformed(GeneralAction.java:234)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)


Regards

Chris
Posted by ChrisLE on Jul 27, 2014
  

@Marconi

The plugin is to visualize the dependencies of applications based on the NetBeans Rich Client Platform (https://netbeans.org/features/platform/).

From what you say, your application is a plain Swing project, which graph would you expect?
Posted by AngeloD on Oct 18, 2013
  

No it does not work...

...at least in my NB 7.3 Swing GUI project. It shows the plugin icon only when I navigate to the top level (=project) - good so. Then I click on the symbol, and it generates no hierarchy, but only a symbol with the project name ("top level symbol"). It is possibly my fault, but I do not see any other way to generate the graphic.
Posted by Marconi on Oct 18, 2013
  

Works well

Shows dependencies clearly
Posted by robertwalton on Jun 09, 2013
By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo