Change Log of JFormDesigner 3

See also: What's New in JFormDesigner 3

3.0.5

New Features

  • Updated JRE 6.0 in Windows setup to JRE 6.0 Update 2.
  • Updated JRE 5.0 in Windows setup to JRE 5.0 Update 12.
  • Updated JRE 1.4 in Windows setup to JRE 1.4.2_15.

Bugs fixed

  • Java code generator: Fixed missing import statement for javax.swing.JLayeredPane when generating explicit imports.
  • Java parser reported missing opening curly bracket for some field initialization code.
  • Linux: Fixed NullPointerException on drag-and-drop in Structure view.
  • Eclipse plug-in: Failed to open forms if something is wrong in the project's classpath.
  • Eclipse plug-in: Failed to open forms under some circumstances with following message: "Attempted to beginRule: R/, does not match outer scope rule".
  • IntelliJ IDEA plug-in: Fixed assertion when using Perforce VCS.
  • Minor bugs fixed.

3.0.4.1 (IntelliJ IDEA plug-in only)

Bugs fixed

  • IntelliJ IDEA plug-in: Fixed "old lvcs is disabled" errors when using IntelliJ IDEA 7.0 EAP build 6951 (or later).

3.0.4

New Features

  • Updated JRE 6.0 in Windows setup to JRE 6.0 Update 1.
  • Updated JRE 1.4 in Windows setup to JRE 1.4.2_14.

Bugs fixed

  • IntelliJ IDEA plug-in: Fixed NoSuchMethodError errors when using IntelliJ IDEA 7.0 EAP build 6913 (or later).
  • IntelliJ IDEA plug-in: Fixed exceptions when drag-and-drop components in Structure view in IntelliJ IDEA 7.0 M1 EAP (or later).
  • Eclipse plug-in: Fixed occasional activating Eclipse window when switching to another application (since 3.0.1).
  • Java code generator: Parser reported syntax error if component field annotation parameters contains '{' and '}' (Java 5).
  • Java code generator: Fixed missing "bundle" variable when localizing only TitledBorder or JGoodies factory components (since 3.0.1).
  • Java code generator: Insert event handler methods before Javadoc of initComponents() method.
  • Minor performance improvements for initializing "Choose Bean" dialog.

3.0.3

Bugs fixed

  • Deleting components failed if the component or one of its descending components has Code Generation properties set (since JFormDesigner 3.0.2).
  • GridBagLayout is now used as layout manager for button bars when creating new forms, except when using FormLayout or TableLayout for the content pane. This is to avoid the dependency on JGoodies FormLayout when using e.g. BorderLayout for the content pane.

3.0.2

New Features

  • Java code generator can now generate member variables and getter methods for JToolBar.Separator components.

Bugs fixed

  • IntelliJ IDEA plug-in: Check boxes not shown in popup menus if the menu item has another icon.
  • Feedback grids for GridLayout placed at wrong coordinates if component orientation is right-to-left and horizontal gap is greater than zero.
  • Could not edit TitledBorders imported from IntelliJ IDEA forms.
  • Java code generator: Fixed generation of invalid import statements for nested classes if generation of explicit imports is enabled in the Java Code Generator preferences.
  • Java code generator: Fixed code generation failure when using a spacer component in a JToolBar.

3.0.1

New Features

  • New Windows setup with bundled JRE 6.0.
  • Updated JRE 5.0 in Windows setup to JRE 5.0 Update 11.
  • Updated JRE 1.4 in Windows setup to JRE 1.4.2_13.
  • Mac OS X: Support for the Quaqua look and feel.

Bugs fixed

  • Saving forms failed if non-visual beans have event listeners.
  • Saving forms failed if color from Swing color palette is not available in current look and feel.
  • Properties view not updated when removing events.
  • Clicking JTabbedPane tabs in Design view did not activate tabs if tabLayoutPolicy is SCROLL.
  • Eclipse plug-in: Closing JFormDesigner dialogs did activate random window when running Eclipse on Java 6.
  • Eclipse plug-in: Fixed deadlock on opening multiple forms when running Eclipse on Java 6.
  • Eclipse plug-in on Linux: Size of JFormDesigner editors and views not updated on resize when running Eclipse on Java 6.
  • Hover selection not updated in Structure view on form changes.
  • Feedback grids for GridLayout placed at wrong coordinates if component orientation is right-to-left or if the container has different sized insets.
  • Shift+Click on column/row in header, when resize cursor is visible, did not select columns/rows between the last selected and the clicked column/row.
  • Externalize Strings dialog: Locale combo was not updated after selecting a resource bundle.
  • Client property values were auto-externalized in localized forms.
  • Java code generator: Avoid unnecessary "bundle" variables in nested classes.

3

New Features

Eclipse plug-in

  • Designer integrated as Eclipse editor for JFormDesigner .jfd files.
  • Eclipse "Outline" view displays structure of form.
  • Eclipse "Properties" view displays properties of selected components.
  • "JFormDesigner Error Log" view automatically opens on errors.
  • Wizard to create new forms. Select "JFormDesigner Form" in the "New" wizard.
  • Uses the source folders and classpath of the current Eclipse project.
  • Java code generator updates the .java file on every change in the designer if the .java file is open or when saving the form.
  • Fold generated code in Java editor.
  • Go to event handler method in Java editor.
  • Two-way synchronization of localized strings in designer and in properties file editors.
  • Integrated into refactoring: Copy, rename, move or delete .jfd files when coping, renaming, moving or deleting .java files.
  • Menu "Form" in the main menu bar if a .jfd file is active.
  • JFormDesigner preferences integrated into Eclipse preferences.
  • Copy needed libraries (JGoodies Forms, TableLayout, etc) to the project and add them to the classpath. Optionally include source code and Javadoc.
  • Convert IntelliJ IDEA and NetBeans forms to JFormDesigner forms.
  • Supports Eclipse 3.1, 3.2 or later (Mac OS X: Eclipse 3.2 and Java 6 DP 6 or later required; Linux: Java 5 or later required).

IntelliJ IDEA plug-in

  • Designer integrated as IntelliJ IDEA editor for JFormDesigner .jfd files.
  • IntelliJ IDEA "Structure" view displays structure of form.
  • "JFormDesigner Error Log" view automatically opens on errors.
  • Create new forms. Select "JFormDesigner Form" in the "New" popup menu.
  • Uses the source folders and classpath of the current IntelliJ IDEA module.
  • Java code generator updates the .java file on every change in the designer if the .java file is open or when saving the form.
  • Fold generated code in Java editor.
  • Go to event handler method in Java editor.
  • Two-way synchronization of localized strings in designer and in properties file editors.
  • JFormDesigner preferences integrated into IntelliJ IDEA settings.
  • Assign shortcut keys to JFormDesigner commands in "Keymap" settings.
  • Copy needed libraries (JGoodies Forms, TableLayout, etc) to the project and add them to the classpath. Optionally include source code and Javadoc.
  • Convert IntelliJ IDEA and NetBeans forms to JFormDesigner forms.
  • Supports IntelliJ IDEA 5.0, 5.1, 6.0 or later.

Localization

  • Updating properties files without loosing comments and order of keys.
  • Use of resource bundles in any folder (within source folders).
  • Change of resource bundle used in form.
  • Select existing keys. In the Properties view click the small globe in a String property value to open the "Choose Key" dialog.
  • Log missing resources to Error Log view.
  • "Delete Locale" command added.
  • New preference option "Copy localized messages when copying components".
  • New preference option "append new strings to the end of properties files".
  • Reload properties files on external changes.
  • Localization of mnemonics.
  • Externalize strings to any locale.

Design view

  • Column/row headers: Resizing of columns/rows to change (minimum) size.
  • New "Nest in Container" command in component context menu.
  • Added "Auto-close Test Forms" option to "Test Form" drop-down menu.
  • Test Form: Embed form into scroll pane if preferred size is larger than screen size.
  • null layout manager: move selected components with Ctrl+ArrowKey and change size with Shift+ArrowKey. New commands "Make Horizontal/Vertical Space Equal" added to popup menu. All alignment commands have now keyboard shortcuts.
  • Added "Use local variable" check box to Rename dialog.
  • Support adding PropertyChangeListener for a specific property.
  • Support for IntelliJ IDEA's layout manager GridLayoutManager.

Structure view

  • No longer expand and scroll to components, which are under the mouse location in the Design view.

Properties view

  • Support Java 5 enums in property values.
  • Easy creation of nested action classes (javax.swing.Action).
  • Enhanced TableModel editor: Specification of column widths, resizable flag, predefined values for combo box editor and support java.util.Date as column type.
  • New property "Variable Name" introduced to allow equal variable names in nested classes.
  • New properties "Location Policy" and "Size Policy" for java.awt.Window based classes (JDialog, JFrame, etc.) to control the initial location and size of the window. Default location policy is "Relative to owner" and default size policy is "Preferred size". Note: This is a minor incompatibility to previous versions, which did not set the location and size.
  • Property editor for javax.swing.border.Border, java.awt.Font and javax.swing.Icon now supports usage of javax.swing.UIManager values.
  • Property editors for javax.swing.ActionMap and javax.swing.InputMap (read-only).
  • Property editor for java.awt.Image added. Allows setting iconImage of java.awt.Frame.
  • Added property editors for char, java.lang.Character and java.lang.Boolean.
  • Support for JComponent's client properties: Define client properties in the Preferences dialog and use them in the Properties view.
  • Annotations for component variable (Java 5).

Palette

  • New tab "JARs" in "Choose Bean" and "Add Beans" dialogs allows selecting classes that are marked as JavaBeans in the JAR manifests. This makes it easier to add beans from 3rd party libraries (like MiG Calendar or JIDE) to the palette.
  • Hide unavailable components in history of "Choose Bean" dialog.
  • Exclude classes without public "null" constructor in "Choose Bean" dialog.
  • JRE components included in "Choose Bean" dialog.
  • Reduced height of palette buttons to show more components.
  • Added javax.swing.Action, horizontal Spacer and vertical Spacer to palette. Spacers are for use in IntelliJ IDEA GridLayout only.

Preferences

  • Preference pages "Source Folders" and "Classpath" removed and replaced with a default project.
  • Added page to define client properties for use in the Properties view.
  • Added page to specify BeanInfo and PropertyEditor search paths.
  • Localization: Template for new properties files.
  • Java Code Generator: Specification of source compatibility of generated code, member variable prefix, etc.
  • Added option to disable IntelliGap for JGoodies FormLayout.
  • Specification of i18n getBundle() and getString() code templates.

Java code generator

  • Renames existing event handler methods when changing the event handler name.
  • Renames existing component getter methods and update the return statement when renaming a component.
  • Renames existing nested classes when changing the "Nested Class Name" property.
  • Updates the extends clause of a class when morphing a bean, which is connected to a (nested) class.
  • Determine source compatibility of generated code from JRE. E.g. if JFormDesigner runs on Java 5, it generates Java 5 compatible source code. You can change the source compatibility level in the preferences.
  • Parametrization of component class names (e.g. MyComponent<String>).
  • Option to use 'this' to access component member variables.
  • Optionally generate explicit imports (see Preferences).
  • Specification of i18n getBundle() and getString() code template.
  • Determine line separators when updating existing .java files.
  • Support for non-local ButtonGroup variables.
  • Generation of PanelBuilder code for JGoodies FormLayout.
  • GridBagLayout: New option to use empty GridBagConstraints constructors (for Java <= 1.1).
  • Java parser now allows curly brackets outside of class (e.g. for annotations).

Runtime library

  • FormCreator: Added methods to get form model, locale, class loader.
  • FormCreator: Allow overriding of methods to get i18n resource bundles and strings.
  • FormComponentVisitor introduced to visit all components in a hierarchy.

Other

  • Stand-alone: Simple project manager.
  • Stand-alone: Import IntelliJ IDEA .form files. Either select "File > Import" from the main menu or drag .form files to the JFormDesigner window.
  • Stand-alone: Improved start-up speed when many forms are open.
  • Stand-alone: Reload form files and properties files on external changes.
  • Updated BeanInfos for Java 6.
  • Updated JRE 5.0 in Windows setup to JRE 5.0 Update 9.
  • Updated JRE 1.4 in Windows setup to JRE 1.4.2_12.
  • Updated JGoodies Looks to 2.0.4.
  • Updated JGoodies Forms to 1.0.7.

Bugs fixed

  • FormLayout: Small constant sized columns/rows (e.g. 1dlu) no longer stretch when smaller than 5 pixels.
  • Runtime library: Event handler methods not added to windows (JFrame, JDialog, etc) when specifying an owner.
  • Fixed exception when removing last column/row in GridBagLayout or TableLayout.
  • Swing palette colors did not use current look and feel.
  • "Reopen" submenu was not updated on Mac OS X.
  • Using JTabbedPane, JScrollPane, JSplitPane, etc. as superclass for new forms works now as expected.
  • Fixed generation of uncompilable code when using null layout manager in JFrame.
  • Fixed problem when saving SpinnerNumberModel on some VMs.
  • Using TitledBorder may cause errors on save when JFormDesigner runs on Java 6.
  • null layout did not compute minimal size.
  • Minor bugs fixed.