I did some work on the GNU Classpath GridBagLayout and it is now almost done (a large
part was already done by Michael Koch). Obviously, writing the GridBagLayout
code requires a good understanding of how it works. I never bothered to really understand
the GridBagLayout, but I did use it quite frequently, a couple of years ago. I remember
it was mostly a process of trial and error. After taking the time to figure out how
it works, I must say that I actually really like it. It has a somewhat bad reputation
in the Java community, but I think it's quite nice.
I can't leave it on that positive note, of course
I have to criticize it
as well. Sun has this really nasty habit of renaming virtual methods (adding
aliases). This is not a good idea, to put it mildly. In JDK 1.4 they introduced: getLayoutInfo,
adjustForGravity, getMinSize and arrangeGrid. These methods offer no new functionality,
they are "replacements" for GetLayoutInfo, AdjustForGravity, GetMinSize and ArrangeGrid.
So just because someone didn't abide by the method naming rules, some idiot now decides
to enormously complicate the class.
You might think, what's the big deal? The problem is that when you're overriding a
virtual method that has two names, you don't know which one you should override. Overriding
both usually doesn't work either because you usually want to call the super class
implementation one of which in turn usually calls the other version of the method,
thus resulting in infinite recursion.
Anyway, I made new snapshots. Source and binaries.
What's new?
-
More AWT support, still nowhere near usable. But see these screenshots for
some non-trivial stuff that is (partially) working.
-
Statically compiled classes are now annotated with a custom attribute for each interface
they implement. This enables the Class.getInterfaces() to work correctly for statically
compiled classes.
-
Fixed a bug in Method.getModifiers() for constructors in statically compiled classes,
that caused them to appear final.