MiGLayout

Release History

Version Date Description
3.7.2 2009-12-22 Release 3.7.2
3.7.1 2009-08-03 Release 3.7.1
3.7 2009-03-01 Release 3.7
3.6.3 2009-01-16 Release 3.6.3
3.6.2 2008-12-16 Release 3.6.2
3.6.1 2008-12-15 Release 3.6.1
3.6 2008-09-03 Release 3.6
3.5.6 2008-08-22 Release 3.5.6
3.5.5 2008-06-16 Release 3.5.5
3.5.4 2008-06-07 Release 3.5.4
3.5.3 2008-06-01 Release 3.5.3

Release 3.7.2 - 2009-12-22

Type Changes By
fix "pos" pointing to "visual" or "container" didn't work in SWT and possibly Swing if the container was resized during layout. mikaelgrev
add Changed so that two or more consecutive spaces in an expression is the same as one. mikaelgrev
add Added some API to the API version (e.g. new CC().slit()) which made it more complete. Thanks tbee. mikaelgrev
fix DPI in SWT on Mac OS X in Java 6 was wrong. DPI was changed in Swing from 72 to 96 DPI in Java 6 by Apple. I have now forced it to be 72 when at least one SWT MigLayout is created. It is not possible to have correct DPI in both Swing and SWT on OS X with Java 6 and above. mikaelgrev
fix 'aligny baseline' for the Layout Constraint was accepted by the parser but failed for layout. Now the parser correctly throws an IllegalArgumentException. mikaelgrev
fix Baseline alignment broken, at least on Mac, since 3.7.1. mikaelgrev
fix There was a problem to serialize a layout for a container that wasn't a part of a component hierarchy. mikaelgrev
fix If "skip" during a "span" then an extra cell was skipped. mikaelgrev
fix Fixed a race condition regression introduced in 3.6.1. mikaelgrev
fix Made IDEUtil design time empty row/column gap override default to 0 instead of 15. This is so that design time is always the same as normal unless IDE vendors opt in to have special empty row size. See LayoutUtil.setDesignTimeEmptySize(int pixels). mikaelgrev

Release 3.7.1 - 2009-08-03

Type Changes By
fix Fixed a performance bug that made deeply nested MigLayout containers really slow in some circumstances. Now an invalid parent for a layout will only re-check the sizes for all children once. Please post a bug report with a runnable demo that shows this regression and I will try to make a version that doesn't suffer from this performance bug and which are without regressions. Thanks to Jermo from the forums which posted the bug report. Note that this might also be a performance problem in the SWT version, which is unpatched. mikaelgrev

Release 3.7 - 2009-03-01

Type Changes By
fix Turned off baseline alignment support for components that has BaselineResizeBehavior == OTHER. This means that for instance JLabel with HTML content will now be aligned vertically as CENTER rather than BASELINE. This is because the HTML implementation in Swing doesn't return a reasonable baseline value anyway. For instance, it quite often returns different values for the same arguments when called twice in sequence and every now and again returns a negative value indicating it doesn't support baseline alignment. mikaelgrev
fix Improved SWT text components having the Swt.WRAP property set. They should now get a more correct height that is dependant on the width. mikaelgrev
fix Component constraints "push", "pushx" and "pushy" was still affecting the layout even if the component was invisible in hidemode 2 and 3. Now that will happen only in hidemode 0 and 1. mikaelgrev
fix There was still a case when "skip" did not skip the correct number of cells. mikaelgrev
fix A cell spanning many columns did not transfer its minimum size in an optimal way. Now a column will get more pixels if its preferred size is larger than its minimum size. Before, the last column was increased to a size more than its preferred while another column could get somewhere between its minimum size and preferred size. Basically all columns will now be pushed to their preferred size before the last column will be increased. Still, if there is a "push" component/column it will be increased before any other column. Rows and columns are interchangeable in this context. mikaelgrev
fix If a component had a 'grow' constraint it would affect the column and/or row to take up more space if the whole layout was set to 'fill' the bounds. This was a legacy from the time when 'push' did not exist. 'push' now does that so it is not logical that 'grow' should do it as well. 'grow' now only affects the component so that it will take up as much space as it can without affecting the grid. It should be noted that everything now works as the documentation has stated the whole time. If your layouts change to not grow in some way due to this then look for 'grow' (or growx/growy) and add a similar 'push' next to it. mikaelgrev
fix If there were more than 512 rows or columns in the grid the preferred size was sometimes wrong (negative). mikaelgrev
fix Made the persistence delegate for UnitValue and BoundsSize not look for the BeanInfo classes, since they will never exist and it delays startup as an Applet. Thanks Anthony. mikaelgrev

Release 3.6.3 - 2009-01-16

Type Changes By
add Added Linux/Gnome platform defaults. This means that Gnome Human Interface Guidelines' gaps and sizes are now correct on Linux. joeluckelman
fix MigLayout in a Serialized component throws a NPE. mikaelgrev

Release 3.6.2 - 2008-12-16

Type Changes By
fix "skip" skipped cells before they where checked if there was a spanning component. This meant that "skip" did sometimes not skip a cell, instead it skipped the cell that would be skipped anyway since there was another component (spanning) there already. This is unlikely to affect many and if it does you are probably overusing the "skip" keyword anyway. :) mikaelgrev

Release 3.6.1 - 2008-12-15

Type Changes By
fix "skip" did not take automatic layout wrapping (wrap in the Layout Constraints) into account. So if you skipped the last cells on a row the component did not end up in the next row as expected but on the same row. "skip" now alwats skips the correct number of cells and move to new rows as needed. mikaelgrev
fix If "newline size" or "wrap size" was used with "span" the size was attached to the wrong row. Also, if there was a wrap on one line and a newline on the next the extra row was removed, which was also a bug. mikaelgrev
fix Fixed a strange shrinkage of some components due to calling Window.getPreferedSize() within the layout loop. This seem to be a workaround for a Swing bug rather than a big in MigLayout but it is hard to know. mikaelgrev

Release 3.6 - 2008-09-03

Type Changes By
fix The parser now throws an IllegalArgmentException if links to other components are in the min/pref/max width or height keywords. Prior to this the link was silently evaluated to 0. mikaelgrev
fix Made "sg" and "sizegroup" set the size group for both width and height. This might break old code but this way is more compliant with for instance "grow", which is also a short for both dimensions. It was not documented either way so I thought I would make it the most logical choice. If you have bugs because of this make sure you don't have "sg" or "sizegroup" without the trailing "x" or "y". mikaelgrev

Release 3.5.6 - 2008-08-22

Type Changes By
fix Fixed a bug that linked sizegroupx and sizegroupy in certain circumstances. mikaelgrev
fix Fixed a memory leak that pegged the layout instance in memory when debug mode was used. Thanks Dieter Krachtus. mikaelgrev

Release 3.5.5 - 2008-06-16

Type Changes By
fix Added a compensation for a probable Swing bug introduced in java 6.0. In Swing when calling component.getBaseline(width, height) on a component that has embedded HTML and at least one BR or P section, Swing always revalidates the layout. This leads to a new call to component.getBaseline(width, height) and the loop goes on forever. It is unclear how to get out of this loop, if there even exist a simple all-working solution. In the mean time you can set "aligny center" or "aligny top" to make it not call that method from this version. mikaelgrev
fix IDEUtil: Fixed a formatting error in IDEUtil where gaps was not recreated correctly. mikaelgrev
fix IDEUtil: Fixed a formatting error in IDEUtil where width/height was used together with maxWidth/maxHeight. mikaelgrev
fix If there was an active "split" in progress a docking component would be in that split instead of docked. mikaelgrev
add Converted MigLayout project to Maven 2 for build and deploy management. See the Maven part of the site for information on how to use MigLayout though Maven. anavarro

Release 3.5.4 - 2008-06-07

Type Changes By
add IDEUtil: Added option to get which cells in the layout grid the components end up in. Good for IDE Integrators.. mikaelgrev

Release 3.5.3 - 2008-06-01

Type Changes By
fix If aligny baseline was specified for a textfield component it might get x and w that were wrong. Thanks Konstantin Scheglov - Instantiations, SwingDesigner. mikaelgrev
fix TextFields in a baseline does not align the first layout if it has size 0, 0 before. Thanks Konstantin Scheglov - Instantiations, SwingDesigner mikaelgrev