java-gnome 4.0.15 (16 Mar 2010)
This has mostly been a bug fix cycle with numerous internal quality improvements being made. A few developer visible API additions have been made, summarized below.
Unified radio handling
There are a number of controls in GTK that exhibit the “radio” behaviour of being in a group of which only one can be selected: RadioButton, RadioMenuItem, RadioToolButton and RadioAction. We originally had a class called RadioButtonGroup which was used when constructing RadioButtons to indicate which group they were a member of. In introducing overage of the other radio types, Guillaume Mazoyer implemented a generic grouping class called RadioGroup which is now used for all the radio types.
XDG utility functions
A number of utility functions (aka static methods) were added to Glib allowing
you to access the various user and systems directories as specified by the XDG
specification. These are
Better control of positioning when popping up context menus; you can specify
co-ordinates when calling Menu’s
The no-arg “convenience” packing methods we invented for HBox and VBox were
causing more trouble than they were worth because people we not understanding
the implications of the “default” packing values. So these are deprecated; the
packEnd() have been present for a long
time and are to be used in preference.
Serkan Kaba spent a bit of time working with the text version of the ComboBox
API. Apparently no one had needed
removeText() so he added that.
A number of improvements to the coverage of GDK’s event masks were merged.
This is work originally by Vreixo Formoso necessary to support the
Widget.MotionNotifyEvent signal, though it has use in other applications.
Widget now has
setEvents() to this end.
Finally, Guillaume needed to handle selections in IconViews. The API is
similiar to that in TreeView, but doesn’t use the same TreeSelection helper
class; the methods are directly on IconView. Boo for asymmetry. Anyway, we’ve
isSelected() on both TreeSelection and IconView so you can find out if
a given TreePath is currently selected.
Better initialization checking
Logic checking that the library has been properly initialized has been
refactored, making it harder to accidentally misuse java-gnome when getting
started [or when starting a new program after you've been using the library
for years and forgotten the basics
Last but not least, a number of bug fixes; one in Enchant was developer-visible;
Enchant.requestDictionary() now returns
null like it claimed to if you
request an unknown dictionary. Nice catch, Serkan.
All the source files have the full (ie traditional) GPL v2 header text now;
the files comprising the library as used at run-time have GPL headers text +
the Classpath Exception text. Needed to be done. Makes for a large diff this
release, but makes the
Ohloh‘s page for
java-gnome happy too
You can download java-gnome’s sources from
ftp.gnome.org_, or easily checkout a branch from_ ‘
$ bzr checkout bzr://research.operationaldynamics.com/bzr/java-gnome/mainline java-gnome
though if you’re going to do that you’re best off following the instructions in the