The long awaited release of WireIt is finally here ! Awaited indeed, since a major bug was still present in version 0.3.0, preventing it to work on IE. It has been fixed for a long time on the repository but has discouraged many people using WireIt (hopefully not too much…).
What’s new in version 0.4.0 ?
- inputEx integration: inputEx is another of my YUI libraries, to create fields and forms. Through a new class called “FormContainer”, you can now build WireIt containers using the advanced forms options from inputEx. The value is saved at the layer level for you through Layer.getWiring
- WiringEditor: This is my favorite feature. While still largely incomplete, the Wiring Editor provide a full-blown interface to create visual languages. It takes care of most of the interface you might want to build a visual editor on top of WireIt. The language definitions are written in JSON, I hope this will greatly reduce the learning curve of WireIt. The transparent ajax communication with the database is handled through a SMD webservice using YUI-RPC. WireIt provides a simple php backend that stores the JSON wiring states in MySql (used for the demos on wireit’s website).
- new options:
- terminals position in containers: {top: , left: , right: , bottom: } instead of [x,y]
- Terminal.alwaysSrc : force this terminal to be the source element in every connected wires
- Container.preventSelfWiring : prevent connections between two terminals of this container
- Four Wire methods for handling mouse events. You can override them for a custom use :
- API Documentation with YUI Doc (much more precise on properties and events)
- Layer Map is now clickable and draggable. It will move the linked layer accordingly.
- IE Bug fix ! (finally)
- Moved to github for git repository and better wiki
Build visual languages applications !
It’s now pretty easy to build visual languages applications. (or at least, prototype them…).
You can follow some projects on http://github.com/neyric/wireit/network. I’m especially looking forward to LeifW XProc Visual Editor
Here is a little presentation that I published on WireIt’s homepage :
It sounds great ! Thanks for the new features !
Hey,
I think the WiringEditor is pretty darn cool. I’ve been looking through the source to understand how this works, and I’m confused by something – the WiringEditor.getValue() method and the Layer.getWiring() method seem to be intended to do similar things, although they return objects that are different in structure – indeed, getWiring() doesn’t seem to include the ‘value’ of the container at all, just its config. Why not combine these two functions into a standard that returns a JSON description of the entire wiring setup?
J.
Regarding your choice of using SMD to describe the backend, I feel that this is not quite appropriate in the way it is implemented in the example.
The SMD allows you to choose a HTTP verb for use with each method – as it is, the example chooses POST to do a load, a listing, a save and a delete, which seems a poor use of HTTP.
J.
Hi Jonathan,
Thanks for your cheering !
WiringEditor.getValue() and Layer.getWiring() are indeed very similar methods, but they are used at a different modelisation level.
In the WiringEditor, a language definition is created (list of module definitions). The value of the created graph is returned using this modules.
In the layer, there is no such definition. The getWiring value only returns the Container instances definition.
If you use the WiringEditor, WiringEditor.getValue() will return the entire wiring setup, and you usually don’t need to use Layer.getWiring()
Concerning your second question:
I think you’re confusing SMD with REST.
SMD supports multiple envelopes (including REST, but not only !)
As you can see in the SMD file:
http://javascript.neyric.com/wireit/backend/php/WiringEditor.smd ,
the WiringEditor examples uses JSON-RPC, where all remote method calls use POST request.
Sadly, YUI-rpc (the module that the WiringEditor uses) doesn’t support REST yet…
Pingback: WireIt 0.5.0 : neyric’s Javascript