Hi,
Based on your answer, I think I haven't been able to make clear what I'm after exactly, as I'm not really interested in how things look for example.
What I'm after is providing tight integration with the programming environment of our application platform and at the same time hiding complexity.
For example the ability to assign Listeners to different objects in the workflow: when you add a new Listener to an object in the diagram, you can currently choose "Java class", Expression, DelegateExpression or "Alfresco Script". To the users/developers on our platform, none of these make much sense, as they write their business logic inside our Eclipse based IDE in JavaScript and the JavaScript scopes are setup with a whole bunch of specific "objects" to perform certain activities, like accessing data in SQL databases, printing something to the log files etc.
So, with "tight integration" I mean that I would like to hide the options "Java class", Expression, DelegateExpression or "Alfresco Script" and instead provide our own implementation, so that when users click the new button to add a Listener, they are presented with a dialog that is tailored towards them, with options that make sense within our environment.
Your suggestion to create a runtime class that implements JavaDelegate which would be under our full control is something that doesn't suit our environment: in our environment users/developers use JavaScript to define logic, to Listener implementations would be JavaScript functions. Going the Java class route you're suggesting would mean that for every listener that the users/developers create, there should be somehow a Java class generated that implements JavaDelegate and calls the JavaScript function, just to be able to design the workflow (without the Javaclass being on the classpath, you cannot select it in the designer). So I'd rather be able to provide my users/developers an interface in the designer where, if they choose to add a listener, they are presented with a UI in which they can select a JavaScript function that they have already defined in our environment and then in the background we'll take care somehow that it gets properly hooked up.
And the tight integration goes further: for example the "Form" tab on properties: our environment already provides mechanisms to create UI's, so instead of having the option to add form properties, tight integration with our platform would mean a completely different approach. I did read a bit about the abilities to work with external UI technologies, so things might be possible in that area. Haven't looked at it in detail yet.
Hope this clarifies things a bit more.
Looking at the code and the available docs, I guess what I'm after is not yet possible, also based on how the Alfresco integration seems to be hardcoded into the source, instead of through extensions. I hope I overlooked something, but if not, the question is: is the type of extending I'm talking about on the roadmap or something that could be considered for the roadmap?
P.