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
<http://tk-ui.sourceforge.net/>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
_______________________________________________
eclipse-incubator-e4-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev

Reply via email to