Hi Philip,
  I just finished playing around with the Mig layout manager and I am quite impressed.  For rapid GUI development or in your case, for your software engineering classes, this seems to be the right choice.  From the layout manager point of view, I found the Mig package to be very similar to JGoodies since they both use string parameters to setup the column and row alignment.  Here are some of the good things I found with the Mig package:

1.  Although both packages use text strings for alignment and spacing, the Mig strings are much easier to read.  For example, the two code snippets below do the same thing, but the Mig layout is much easier to read.  The Mig layout breaks up the alignment information into the square brackets and spacing information is placed between the brackets.  When I was working on some sample code, I could look at the Mig layout string and visually picture the GUI without running it.  Constrast this to the JGoodies layout, which gives hard to read information.  HackyInstaller layout code is much more complicated than the example below.  It would have been great to have some of the implicit layout information in the layout string.
Mig Layout:

MigLayout lm = new MigLayout("wrap", "[grow]20[right]", "");

JGoodies:

FormLayout layout = new FormLayout("pref:grow , 20dlu, right:pref", "");

2.  Documentation was a bit better than JGoodies.  The whitepaper and the quickstart guide explain the features of the Mig package well.  I was able to read and use the whitepaper in 15 minutes unlike the JGoodies whitepaper, which took me a better part of a plane ride. 

3. Small package size.  Mig is 70k where JGoodies is 1100k.  If you only need a layout manager without all the extra fluff, Mig is nice.

4.  The debug mode in Mig helped me create my sample GUI much quicker.  The debug mode, which can be used by passing the "debug" string as the first parameter, sped up development considerably.  The debug mode places dotted lines around each component's area.  The helps figure out what is going wrong with your alignment code.  I actually went back to the JGoodies site and found out they also have a debug mode, but it seems to be a bit messier than the Mig debug mode.
MigLayout lm = new MigLayout("debug", "[grow]20[right]", "");


Some of the bad things:

1.  No universal component size.  If I remember correctly, JGoodies had a special unit of measurement called a dialog unit (dlu) that allowed you to set component sizes that would not change regardless of platform and resolution.  I did not see anything like that in the Mig package.

2.  No Javadocs.  The website gives you a link to the source and java docs, but you only get the source.  It would be nice if they provided you the javadoc API so I wouldn't have to invoke the javadoc tool on their source.

3. I could not figure out how to add seperators between different components like their example code.  Either their documentation needs to be updated or I'm slow cause I need sleep.


Overall I think Mig is a pretty good layout manager.  I would need to work with it for a bit longer to see all of the intricacies of the package, but I feel its really easy to use.  I was able to jump right into the code and duplicate the HackyInstaller main window in 30 minutes with no re-sizing problems. 

I think it boils down to whatever you need.  JGoodies is a full-featured interface design suite where Mig is only a layout manager.  JGoodies adds alot of extra functionality like form validation and extra "skins" for your applications, but adds complexity.  Pick your poison ;)

Hope that helps.

Cheers,
austen

On 10/31/06, Philip Johnson <[EMAIL PROTECTED]> wrote:
I just came across the following open source layout manager:
< http://www.miglayout.com/>

It looks like a competitor to our JGoodies layout manager.  I'm interested to hear what
the hackyInstaller crew (or anyone else) has to say about this one. (No, I'm not
interested in switching iin Hackystat, I'm asking because I'm trying to figure out what
layout manager to recommend in my software engineering classes.)

Cheers,
Philip



Reply via email to