Freeform layout
GUIDE supports freeform layout with the JDK's
GridBagLayout
and JGoodies'
FormLayout.
GUIDE isolates the user from declaring rows and columns, instead inferring the correct layout from the
position of the components.
For proof that no-one should ever hand-code a GridBagLayout, visit MadBean's Totally Gridbag.
To help with natural alignment, GUIDE offers snap guides allowing components to snap to other components or their container's edges.
Roundtrip code editing
GUIDE generates properly formatted, easy to read Java code. GUIDE doesn't parse
the source - it compiles it and operates on real Java objects. This has several advantages:
- Code refactoring just works.
- There are no proprietry meta-data files locking you into GUIDE.
- Enables the importing of existing GUIs.
MVC separation
GUIDE facilitates proper separation of concerns by encouraging the use of one
of the Model-View-Controller patterns. Building your GUI this way makes it easy to write to proper
unit-tests for your models and controllers. GUIs are notoriously difficult
to test, but by putting all complex domain code in your controller you can make sure your testing coverage
covers the most important code.
IDE agnostic
GUIDE is a standalone application designed to work in conjunction with your IDE or text editor. This has
several advantages:
- No requirement for any particular IDE.
- Can be used by teams in mixed-IDE environment.
- Allows us to develop the best UI for the job.
Automatic component generation
GUIDE supports automatic component generation from model or controller properties. Drag a boolean field
property onto your design and GUIDE will generate code to create a JCheckBox, initialise it by consulting
the controller and set up the appropriate listener to set the appropriate flag in the controller when the
check-box is clicked. If the controller has PropertyChangeSupport a listener is also set up to pass state
changes from the controller in the view, thereby binding the values of the view and controller together.
Drag the whole bean onto the design, and GUIDE will create bound components for all bean properties.
Featuring:
- Automatics for most Java types.
- Create automatics for entire Java beans
- Creates two-way bindings for beans with PropertyChangeSupport
Advanced design preview
Design Preview allows you to:
- Test your design with no side-effects.
- Check how component events affect models and controllers.
- Check how model events affect components.
- Preview your design in other Look and Feels
- Check how your design responds to pack()
Create re-usable components
GUIDE allows you to create to designs that be reused as separate components. Any class that extends
java.awt.Component that has a no-arg constructor can simply be dragged out of the project browser and
dropped onto the design.
You can even drag third party components from Jar files onto your design, such as components from SwingX
Create custom palettes
Drag custom (or just customized) components onto your own project-specific palette. It takes only a few
minutes to create a custom palette in GUIDE. Your components render themselves so there's no
need to design icons for them.
Easy menu editing
GUIDE supports drag and drop menu editing:
- Menus work just like everything else.
- Easy moving of items between menus.
- Easily handles deeply nested menus.
- JMenuItems and JCheckBoxMenuItems can be automatically generated from actions and boolean properties