Hi,
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" />
<xul:textbox />
TK-UI manage UI with DOM Document like WebBrowser DOM Document (with _javascript_).
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 :
<xmi:XMI xmi:version="2.0"
xmlns:xmi="
http://www.omg.org/XMI"
>
<Window>
<Textbox value="bla bla bla" />
</Window>
</xmi:XMI>
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.????
textbox.setValue("XXXXXX");
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 :
pro:
1. Provide a model (XSD, XMI..) to define structure of widget (Window, Textbox...)
2. Provide a lot of tools to manage EMF.
cons:
1. New API to learn for developer (like me) who doesn't know EMF (but perhaps EMF is very knowed?).
DOM (TK-UI) :
pro:
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.
2. DOM Document API is knowed by a lot of pepople who develop Web with _javascript_.
cons:
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.
Regards Angelo