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 93370 - Add MiG Layout support
Summary: Add MiG Layout support
Status: NEW
Alias: None
Product: guibuilder
Classification: Unclassified
Component: Natural Layout (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker with 11 votes (vote)
Assignee: issues@guibuilder
URL: http://www.miglayout.com
Keywords:
: 158577 197543 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-01-28 11:08 UTC by mgrev
Modified: 2017-05-16 01:19 UTC (History)
2 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mgrev 2007-01-28 11:08:18 UTC
Matisse is the undisputed champion when it comes to visual layout of components.
The only problem is that one needs to stay in the visual environment to be able
to edit it since the code generated is very hard to edit. This is fine for some
use cases. However, for the use case where you want to use the visual layout
tool to do the initial layout and then switch to manual coding for some reason
the MiG Layout layout manager is more suitable. MiG Layout has basically all
features a layout manager can have and was created to be a next gen LM to
FormLayout. I suggest that support for MiG Layout is added to increase the
amount of use-cases that NB can handle. Also note that support for MiG Layout
can be added incrementally due it its design. It can start out not more advanced
than FlowLayout, with layout string constraint editing, to as advanced layout
support as for GroupLayout. MiG Layout is BSD licensed.
Comment 1 Tomas Pavek 2009-02-16 09:22:33 UTC
*** Issue 158577 has been marked as a duplicate of this issue. ***
Comment 2 mnachev 2009-02-16 09:34:44 UTC
I can try to design/develop this feature if somebody give me some directions from where to start and etc. Is there any
developer guide for layout support? 
Comment 3 Tomas Pavek 2009-02-16 16:37:43 UTC
Layout support is a fairly complex thing. In the past we tried to create a generic layout support layer, mainly for
per-component-constraint layout managers, but found out it is quite complicated and still limited. Mainly the layout
managers are too different to have a reasonable generic framework for them. Anyway, this system is still in and all the
original java layout managers are supported this way (FlowLayout, BorderLayout, GridBagLayout etc). You can see their
code for examples. There were some attempts to integrate some layout managers this way, see e.g.
https://developer.berlios.de/projects/nblayoutpack/

A new approach we took with the GroupLayout (aka "free design"). Here the layout design is completely separated from the
rest of GUI editor, is much more capable, OTOH much more code needs to be written. This new model is yet not well
prepared for multiple layout design systems - since there's only the "free design". It is hardcoded on several place, so
the work to include a layout system for another layout manager would be pretty non-trivial.

Now it depends what the Mig layout support should look like. If it is intended to be rather basic with simple
visualization and not much direct visual manipulation, then perhaps the old layout is more suitable. You get to limits
of this approach when trying to support ways of expressing layout other than those describing the layout as a set of
layout constraints objects attached to components. This relates mainly to generating code and persisting the layout in
metadata.

So the first think is probably to look at the code examples of existing layout supports, and also have some idea how the
Mig layout support could look like in a GUI builder tool. If still interested, send me a mail then and I'll give you
more detailed information.
Comment 4 eugene-71 2011-05-23 08:50:48 UTC
Please look at MIGLayout support in WindowBuilder Pro for Eclipse - http://code.google.com/javadevtools/wbpro/layoutmanagers/swing/miglayout.html

Netbeans (as the best IDE) *must* have such support too.
Comment 5 _ gtzabari 2011-05-23 12:13:56 UTC
For what it's worth, I've spent the past month using MigLayout for the first time and it's by far the easiest and most flexible layout manager I've ever used. It is especially surprising how easy it is to code by hand.

It has flaws (unexpected behavior that should be better documented) but they are quite minor, and quite favorable when compared with other layout managers.
Comment 6 Tomas Pavek 2012-09-11 09:38:57 UTC
*** Bug 197543 has been marked as a duplicate of this bug. ***
Comment 7 _ gtzabari 2012-10-01 22:02:09 UTC
Please don't adjust "version". It indicates the first version this issue was first reported against, and that remains 6.0.
Comment 8 asdoso 2014-10-01 08:41:23 UTC
Any news on this?
MiG Layout is still quite useful, and it's released under a permissive license, so what's preventing it from being supported in the visual editor?
Comment 9 aplatypus 2017-05-16 00:54:58 UTC
I was looking for a way to use MiGLayout with Netbeans as well.  I recently spent a day using first the GridLayout and GridBagLayout that come with Netbeans and the results are disappointing.  At least  GridBagLayout can actually be used for non-trivial examples.

So MY VOTE is for a MigLayout plugin.

There is an article here on using MiGLayout with Netbeans:

  * Registering MigLayout in NetBeans, geertjan
    http://blogs.oracle.com/geertjan/entry/registering_miglayout_in_netbeans_ide

There was a project on Kenai:
  * nbmiglayout

Of course that has been ditched now.


Something I don't quite follow with the MigLayout is that I can add other swing components to the pallet.  But layout are in a different place.  It is still code.  It seems the designer has split the world into two groups.

We should get behind this fellow Netbeans lovers!!
Comment 10 _ gtzabari 2017-05-16 01:19:05 UTC
aplatypus,

I share your enthusiasm, but please don't modify the "version" field. It denotes when this feature was first requested, not when is it expected to be fixed.