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.

No comments: