I don't know if my title post is correct, but I would like start this topic to write something into Wiki.
I say EMF (or another thing) vs DOM because I would like purpose TK-UI
to manage Decalarative UI and set pro/cons for EMF and TK-UI.
TK-UI is Toolkit for User Interface where you can describe your UI with any XML markup (today XUL and XHTML start to be
implemented and I have intention to implement XForms) and you can mix XML markup into the same description.
<html:input type="text" id="myInput" />
Document document = ....
HTMLElementInput input = document.getElementById('myInput');
input.setValue("bla bla bla");
I have read into this forum that EMF please a lot of people to manage Declarative UI.
And here that I have understood
User describe UI with XMI into Window.xmi like this :
<Textbox value="bla bla bla" />
And it load it with ResourceSet :
URI fileURI = URI.createFileURI(new File("Window.xmi").getAbsolutePath());
Resource resource = resourceSet.getResource(fileURI, true);
Window /* EObject */ window = resource.????;
Textbox textbox = window.????
So here how I have understood the final UI API.
Is it correct?
So with EMF UI is managed with Ecore model (EObject...) and custom java method (setValue)
and with TK-UI UI is managed with DOM Document and custom java method (setValue).
Here pro/cons for EMF and DOM that I see : EMF
1. Provide a model (XSD, XMI..) to define structure of widget (Window, Textbox...)
2. Provide a lot of tools to manage EMF.
1. New API to learn for developer (like me) who doesn't know EMF (but perhaps EMF is very knowed?). DOM
1. Manage UI with DOM Document :
1.1 : use getElementById, XPath to retrieve widget
1.2 : use addEventListener to add click event
1.3 : use createElement, appendChild to add widget to the UI at runtime, use removeChild to remove widget.
1. (Today) : doesn't provide model (XSD, XMI...) to generate TK-UI Element (ex : HTMLInputElementImpl).
So EMF is attractive for the model but I think taht Eclipse E4 must think about developer who wants use API to manage Decalarative UI.
Do you prefer use EMF API or DOM API to manage UI?
With the 2 solutions (EMF, DOM), we must develop some code to bind (EMF java model (Textbox)/DOM Element)
with SWT Text widget. So we need develop something.
JFace Databinding seems good to manage that. It exists (EMF Jface Databinding project) and me I have developped
(DOM JFace Databinding).
I hope this topic will interest some people.