What's new in Jigloo 3.1
New features:

  • Support for org.eclipse.ui.part.ViewPart, as part of initial support for Eclipse RCP applications. To create a new ViewPart, hit Ctrl+N, then "GUI Forms->RCP->ViewPart". (See Fig 1)
  • JGoodies FormLayout supported (although no support for Builders yet).
  • Custom Layouts supported - add them just like adding a custom class, and they will appear in the list of settable layouts, as well as in the layout palette. (See Fig 2)
  • Unicode characters are converted to \uNNNN format (when setting text using the GUI property editor) in the generated code. (See Fig 3)
  • Objects only created if a visual component in a branch of the main GUI, or a property of a visual component (this should severely reduce the need for the "class creation" preference fields).
  • Two options for event handling - inline (an anonymous class is generated) or handler method (an anonymous class is created, and the event handler calls a newly-generated main-class method). (See Fig 4)
  • A list of "GUI initialization" methods (which Jigloo will parse automatically if they exist) can be specified in the Jigloo preferences page - for example, if a user initializes the GUI in a method called "createGUI", then they would add this to the list.
  • Text properties can be edited in the small edit area in the property editor, or by a pop-up dialog (for longer text). (See Fig 5)
  • Arrow keys can now be used to move GUI elements. eg, in GridBagLayout you change the gridx/gridy coordinates, in a null layout you change the x/y coordinates, and in a Flow layout you change the ordering of elements.
  • If SHIFT is held down while dragging the mouse, a red rectangle (selection marquee) allows you to multi-select components. (See Fig 6)
  • If SHIFT is held down while dragging the border of a component in a GridBag or JGoodies Form layout, then the preferredSize property will be changed instead of the gridx/y/width/height values.
  • Added "even space vertical/horizontal" and "make even widths/heights" options in "Align" menu. (See Fig 7)
  • Added SWT "FlowerShop" visual inheritance/JavaBean example (to contrast with the Swing FlowerShop example).
  • Swing mnemonics and accelerators now handled.
  • Property values can be typed into a combo-box now (eg, "alt B" can be typed in to an "accelerator" combo-box).
  • Small performance/useability improvements.
  • Use code for Border creation which only uses the minimum number of necessary parameters (eg, for TitledBorder, if only the "title" property is set then the BorderFactory.createTitledBorder(String title) method is created by Jigloo.
  • In-line components are recognized - eg, panel.add(new JLabel("inline"));
  • Works with Eclipse 3.1 (M1-5a)
  • Custom constructors can now be defined in a file called jigloo_constructors, as well as in the ".constructros" file, which is more convenient since the ".constructors" file is hidden in package explorer.

Bug Fixes:
  • Multiple-classes defined in same file are handled correctly now - only the class whose name is the same as the class file is now parsed and modified.
  • Don't include import for custom classes in same package
  • If items moved while multi-selected, layout constraints are managed correctly (eg, in GridBag layout, all elements *don't* end up in the same grid box!)
  • If main class was refactored/renamed then changes would not be recognized by Jigloo, leading to a number of possible problems. Now, Jigloo listens for resource-change events and re-loads FormEditor if a GUI class being edited is changed externally (eg, due to a refactoring of the main class name).
  • Custom layouts and constraints are now displayed correctly by Jigloo.
  • When creating a new class from Navigator (instead of PackageExplorer) class would be created in wrong package.
  • Parsed all "init-gui-like" methods, not just constructors and main (allows an init-gui method to be defined but need not be called from a constructor).
  • Handled jars added to project build path *not* as "external jars" but as project elements (ie, if a jar/zip was added to a project using the "Add jar" button in the project's build path tab then Jigloo will be able to access classes in it - previously Jigloo could only find classes in jars added using the "Add external jar" button.
  • Fixed JSplitPane appearance when dividerLocation is set
  • Fixed ownership problem when parsing setComponentForPopup in code (ie, JPopupMenu would not be linked to correct parent Component). This could also lead to a JPopupMenuItem's properties being blank in the property editor.
  • Fixed problem caused by setting an Absolute layout for the root element of a form.
  • Changes to Border and JSplitPane layout constraints in code are now picked up when the code is reparsed.
  • If a container had a layout set, and then the code is changed so that the container has no layout set, then the default layout will be displayed in the form editor.
  • The creation of classes *not* used as properties for visual components has now been eliminated. This has led to a speed improvement, and elimination of unwanted side-effects. ie, in older versions, the code was parsed and if the code : FileHandler fh = new FileHandler("log.txt") was parsed then a new FileHandler would have been created by Jigloo (unless this was forbidden by using the Jigloo "class creation" preferences page). In this version, a new FileHandler would not be created.
  • Memory-leak fixed
  • Other small bugs fixed

Fig 1

Fig 2

Fig 3

Fig 4

Fig 5

Fig 6

Fig 7