eJGForms

eJGForms

A visual designer for the JGoodies ™ Forms Layout Manager.

Features

  • Eclipse plugin tightly integrating full Forms layout manager support.
  • Supports visual Design-Before-Build.
  • Supports visual Design-While-Build.
  • Supports persistent, reusable design models.

Development State

  1. Stable -- does not affect any other feature or function of Eclipse -- internal features are still alpha
  2. The generated source code is:
    • clear and concise following a standard, basic Forms coding pattern
    • singularly dependent on the Forms library (no other dependencies introduced)
  3. Understands and adapts to manually changed project source code as well as permitted by VE.
  4. Inherent design of Forms precludes use of VE properties pages.
  5. Inherent design of VE precludes use of simpler Forms constraints specifications in the generated code. Also precludes use of component factories and the more advanced panel builders otherwise supported by Forms.
  6. Use of Swing in constructing the Form Design Surface was an intentional bootstrap use of Forms.
  7. Uses "slots" to represent component constraints
    • components are added to "open" slots
    • a moved or deleted component will leave behind an open slot
    • components dropped on the VE component surface are nominally assigned to the first unused slot after the last used slot.
    • a component dropped on a specific open slot will be added to that slot.
    • if a slot is not available in the existing design, a new slot will be automatically created at the "end" of the Form layout.
  8. Open slots are not represented by VE source file code
    • open slots will be lost from the working design when the VE editor for the source file is closed.
  9. Use Save and Load to preserve Form designs including open and used slots, between VE editing sessions.
  10. The Customize Layout window does not need to be kept open. The window can be closed and re-opened at any time to revise the layout design.

Use

Installation & Requirements

  • Eclipse 3.2+
  • VE 1.2.1+
  • Eclipse VM: JDK 1.5+
  • Project VM: JDK 1.4+
  • JGoodies Forms 1.0.7+

Faq

  1. An empty row or column specified with a size "Pref" has a 0 preferred height or width
    • this is standard Forms layout manager behavior
    • a row or column with a 0 preferred size will be invisible on the VE component design surface.
  2. The default alignment for columns is "Fill"
    • this is standard Forms layout manager behavior
    • eJGForms will eventually reduce the column spec to remove explicit fill alignments unless the rewrite behavior preference is set to Verbose.
  3. The default alignment for rows is "Center"
    • this is standard Forms layout manager behavior
    • eJGForms will eventually reduce the row spec to remove explicit center alignments unless the rewrite behavior preference is set to Verbose.
  4. Bug: If a component on the VE component surface become unselectable, try hitting Apply.
    • seems to happen after a drag-move or drop of a new component
    • Please try to characterize and report
  5. Bug: manual edits to the source may not be picked up immediately by eJGForms
    • just cannot assure when they are picked up
    • Refresh the Customize Layout window before Apply to ensure the manual edits are incorporated into the design model
  6. Bug: Scrub and Refresh do not seem to work as intended.
  7. Each project using eJGForms must include the Forms library.
    • the eJGForms plugin does include a Forms.jar, but it is not exported for use by projects (it is reserved for internal use only)
    • add an independent copy directly or by a user library reference to an independent instance of the library
    • better to use an independent copy to ensure the project uses the latest version, documentation, etc.
    • the Forms.jar added to the project is the jar that will be used by VE to construct the VE design surface.
  8. Insert/Append/Delete of rows or columns does not update the column and row group specifications.
    • will fix
  9. Cannot define or edit column and row group specifications visually in eJGForms
    • manual edits made to the source will be preserved
    • will fix
  10. First open of the Customize Layout window is slow, though subsequent opens are significantly faster.
    • this is entirely due to the use of the SWT_AWT bridge
  11. All spinners in the Customize Layout window are read-only.
    • will fix
  12. Currently, eJGForms only understands "Pref" and "dlu"-based size specifications.
    • will fix
  13. In the preference settings,
    • only the standard column/row specification rewrite behavior is currently supported
    • the gap drop block setting is not supported
    • will fix
  14. Cannot drop a component on a specific slot with a 0 preferred height or width
    • unless the slot is the last slot in the design
    • for now, give the row/column a non-pref size before the drop
    • will fix
  15. Mac: eJGForms uses the SWT_AWT bridge, so make sure the Apple/SWT fix for the bridge is installed.

Subpages

Sections