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 191616 - Do not route in Visual Designer when it is not needed
Summary: Do not route in Visual Designer when it is not needed
Status: RESOLVED FIXED
Alias: None
Product: javame
Classification: Unclassified
Component: Visual Designer (show other bugs)
Version: 6.x
Hardware: PC Windows XP x64
: P2 normal (vote)
Assignee: Adam Sotona
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-03 21:43 UTC by krisha
Modified: 2010-11-14 06:21 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description krisha 2010-11-03 21:43:14 UTC
I have a J2ME project with a lot of Forms and lists.

I'm using the visual Designer for it, not knowing that routing is a weakness when I started the project.

That the current routing is not very fast, this is mentioned in several other bugs.

But I think the routing algorithm should not be called, when nothing is changed. For example I scroll with the scrollbars in Visual Designer and for 3 scrolls around 200-350px it hangs in total for more than 30 seconds. This is very unuseable. It happens also when I just move the mouse above some connectors or components, so no need to redraw everything.

Some possible solutions:
1) Save layout including connectors (I think this is done already somewhere in netbeans (vmd?) but probably not handled in the right way)
2) Let the user deactivate routing - this should be very simple to implement and might be an alternative until a solution for 1 or a better routing algo is included
3) Let the user choose the routing (use direct lines e.g.)

It took me some time to figure out that routing is the problem. Maybe it is possible to autoprofile routing always and notice the user if it takes too long?
Comment 1 Adam Sotona 2010-11-10 19:28:11 UTC
Re-implementation of VMD routiong is a very complex task.
Currently I can only recommend you to split your design into multiple VMD files.
Comment 2 krisha 2010-11-10 21:20:41 UTC
Yes, thank you for the answer.

Splitting after everything is done is not very comfortable - i think you have to recreate your UI project nearly from scratch, 'cause a copy and paste for GUI elements is missing (I also opened another bug report for that).

Letting the user choose which Router to use shouldn't be so complex to do. For Netbeans 6.9.1 I created a new org.netbeans.modules.vmd.flow.jar which uses the free router: http://www.cwision.de/projects/NetbeansFreeRouter/

Btw. the autoprofiling is already done - I saw the slowness detected.

To improve speed it could be also nice to use more than 1 core - most processors are shipped with 2 or 4 cores. So if routing would be split to 2 or 4 core-threads it should be also faster. Unfortunately I did not find any information how to run java (especially Netbeans) on more than 1 core - maybe not supported ?!
Comment 3 Martin Ryzl 2010-11-11 08:31:32 UTC
Thank your investigating the issue. Would you be willing to contribute your changes? If so, could you attach your changes to this issue, please?

If you are considering future improvements to the netbeans code, I'd suggest to open the module in netbeans and use Install/Reload in Development IDE action.
Comment 4 Adam Sotona 2010-11-11 18:12:56 UTC
I've added Tools / Options / Miscelaneous / Java ME / Use Direct Routing in Visual Mobile Designer checkbox.

Please open a request for new SPI to be able to register an alternate Router (if necessary) and then we can change the option to a drop-down list.

Fixed in http://hg.netbeans.org/jet-main/rev/983c1342a916
Comment 5 Quality Engineering 2010-11-14 06:21:45 UTC
Integrated into 'main-golden', will be available in build *201011140001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/983c1342a916
User: asotona@netbeans.org
Log: fixed issue #191616 Do not route in Visual Designer when it is not needed