Friday, February 29, 2008

WOLips 3.3 Stable!

Eclipse 3.3.2 is out, which has been holding us up releasing a stable WOLips for months.

We are pleased to finally announce the new stable build of WOLips based on Eclipse 3.3.2! WOLips 4118 (the previous stable build) was deployed June 26, so there are eight months (and 7000 lines of changelog entries) worth of coolness that have been going into the nightly builds just itching to get out.

Thanks to Ulrich and Anjo and our new committers from this year Daryl, Pierre, and Quinton for all the hard work.

And now for the disclaimer: The new build requires Eclipse 3.3 and is no longer compatible with Eclipse 3.2, so you will need to update your Eclipse as well as install the new WOLips. Eclipse 3.3.2 has not made it to the main download page on, yet, but you can download it from the direct download page.

The wiki installation tutorial has been updated for Leopard and Eclipse 3.3.2 here.

And the list of changes ...

Moved to Eclipse 3.3
Entity Modeler
* Converted to 3.3 Data Binding
* Substantial performance optimizations
* Standalone Entity Modeler
* Standalone Entity Modeler - Supports loading dependencies from IDEA projects
* Better focus management
* No more silent model loading failures
* Supports editing the entire model group together, not just a single model
* No more EO icons in non-EO perspectives
* Fixes for Vertical Inheritance Wizard
* Optionally hide non-class properties in Outline (on by default)
* Changing mandatory relationship flag changes allows-null and vice-versa
* More lenient qualifier parsing
* Reflexive many-to-many relationships in the Relationship Wizard
* Lots of visual cleanup
* Edit-in-place in Entity Modeler outline view
* MUCH better error dialog that supports jumping directly to the error
* MUCH faster plist parsing
* Renaming attributes and relationships updates dependent flattened properties
* Support for Project Wonder's partial entities
* Support for Project Wonder's JavaMemoryAdaptor database
* Backwards-compatible with EOModeler and CVS-stable plist format
* New option to not generate source for particular entities
* Gray out non-class attributes/relationships
* Remove jdbc2Info prior to SQL generation
WO Package Explorer
* The "sometimes I don't hear double-clicks" = Gone
* Display EOModels and Components as bundles
* JProfiler 5.0 Support
Component Editor
* Ignore cmd-opt-1 when you're already in Java
* OGNL expressions are colorized separately
* Only show API bindings if an API files exists and is non-empty
* Added API binding declarations for id, style, and class onto all the WO core components
* Allow accessing to protected variables in packageless classes
* WO hyperlinks in the HTML editor
* Clicking WO hyperlinks open Java and Component
* WOO / Display Group Editor
* Experimental HTML Preview
* WO tags are colorized separately
* Fix for stupid missing HTML Editor preferences labels
* Component Outline View (inspired by WOB and Xylescope)
* Experimental Bindings Inspector
* Overview ruler available in HTML editor
* LOTS and LOTS of fixes to the fuzzy template parser and model
* Lots of performance work (though we do a lot more now, so YMMV)
* Weird occasional won't-go-away errors should go away now
* Support for binding name and binding value hyperlinks
* Support for component name completion in binding values (like WOHyperlink pageName)
* Better error handling during SQL generation
* Many more preferences for component validation
* Validation and formatting fixes for Javascript
* Integrate WOO file encoding declarations with Eclipse resource encoding
* Support for // VALID on inline bindings (only with Wonder's inline binding parser)
* Preference for spaces-and-equals during reformat
* Language labels on multilanguage component tabs
* Experimental support for drag-and-drop of Components from WO Package Explorer into HTML editor
* HTML breadcrumb trail ala WOB
* Height of WOD portion of split pane saved across editors
* WOD split pane can be (almost) fully collapsed
* cmd-click on missing / broken bindings opens Add Key or Add Action dialogs (ala WOB)
* Experimental Bindings Browser
JDT and Building
* Removed the oldest classpath container
* Lots of fixes for making SSDD builds easier
* Preference for turning on/off exception-helper dialogs
* Added support for JavaEOGenerator
* Added Velocity EOGenerator
* Fixes for Windows
* Support for custom packages for _File files
* Support for easily Override-able templates
Wizards and Templates
* Improved every wizard
* Added D2W app and D2WS app wizards and templates
* Added support for custom project templates and override-able project templates
* Support for setting doctype and encoding in component wizard
* All projects now use the Wonder-style project layout (aka Fluffy Bunny Layout)
* Fixes for Windows in project templates
Workspace and Problems View
* Support for tagging components with logical organization
* Template Problems appear in their own category
* Lots of improvements to the component locator
* "Open Component" action (cmd-shift-x ... i know ... c was taken)
* Added Console to the default WOLips perspective
* New WOLips web service to support external tool integration
* WOLips.framework in project Wonder provides browser click-to-open support for components

Eclipse 3.3.2 is Out

It's not officially announced, but the new release version of Eclipse is now 3.3.2:

Sneaky Peek

And for the record, Eclipse REALLY doesn't want you to be able to do these things. Note that this is not ready for usage, it's just a peek at what will be coming in a future release.

Wednesday, February 27, 2008

Entity v1.0.3

The latest build of Entity is up at the mDimension build site: Entity Modeler 1.0.3.dmg

This brings Entity Modeler standalone back in parity with mainline WOLips nightly.

WO Browser

This is very experimental right now (read: if you mangle your component playing with it, I'm innocent), but the Bindings editor now has a binding browser ala WOB:

You can see a shot of my eclipse with everything going on (which just kind of looks cool) at

Drag-and-drop linking of bindings onto tags is on its way, too (complete with line drawing on top).

Tuesday, February 26, 2008

New Stuff

OK .. Yeah, I know I wasn't going to add things until after the classpath changes, but classpath management is no fun, so ...

Template Bread Crumb Trail
As you navigate around your template, the breadcrumb updates. Single-clicking selects the particular element, double-clicking opens the particular component (if it's a WO). There's also a slightly different styling for the sash -- a darker line, vs just a same-color-as-background bar, so it's more obvious where you need to grab to resize the sash.

When you shrink the WOD view down below its minimum size it will now blank out (rather than just be a garbage-looking compressed form. Additionally, the size of the WOD and HTML portion of the component editor is saved when you make changes, so if you only use inline bindings, you can resize the HTML view to its maximum and you don't have to mess with it ever again.

If you have have compressed your view but your wod is not empty, it will give you a hint letting you know, so you don't accidentally miss something:

Bindings Inspector (Not Finished)
The bindings inspector (ala WOB) is in the WO Perspective by default now (you can Reset Perspective to pick it up, along with Console, which is now added by default). Currently you can only edit the component name and type, but the rest should be coming soon. This refreshes as you navigate around the template as well. Name and type only commit when the text field loses focus at the moment -- I might that to a live update, though.

Add Key / Add Action
If you cmd-click on a missing binding value in a WOD or inline binding (restricted to keys, not key paths), it will open the Add Key or Add Action dialog. The determination of which to open right now depends on having a correct API file that defines the type as "Actions," or in the absence of a correct API file, any binding named "action" will open the Add Action dialog.
I don't have a WOB available, so I just had to guess at exactly what all the settings do, but the behavior should be reasonable. The list of types in Add Key come from your model (which I think is how WOB worked, though I suspect we should support more generalized type selection). You can type any class name in the type field and it will resolve it, so it doesn't HAVE to be an entity name. You also don't have to fully qualify the name -- if it can resolve the packageless name without ambiguity it will use it.

If you select Array of Mutable Array of ... and your project it set to a source level of 1.5+, it will use generics on the NSArray. Similarly for Add Action, if you are using 1.5+, it will use Wonder's ERXComponent shortcut "Whatever nextPage = pageWithName(Whatever.class);". I might add a Wonder-specific check, but you should add that shortcut from WOnder into your component classes, anyway, because it's really nice :)

Right now the type combo doesn't have any options in it -- that will be coming. So you have to just type the name. If you choose WOComponent or WOActionResults it will generate a method that just returns null rather than attempting to lookup a component.

You can also get to Add Key... and Add Action... via the Edit=>Refactor menu rather than cmd-clicking a missing binding value, btw.