Welcome Hallvard!  Thanks for your interest and the brain dump.

We're going to do a pass of looking at CSS technologies then will look at 
the various flavours of declarative.

> - It's not really clear what the role of EMF will be. 

Speaking quite generally while we clearly could apply it to a number of 
problems, we'll need to figure which would provide the most benefit.  The 
modelled UI was a pretty obvious candidate.  CSS may or may not be, I'm 
not sure if there's much to model in there if we adopt some existing 
framework in which case its a matter of writing the code to translate the 
CSS tree to SWT calls.  For declarative work it seems to make sense since 
you model the abstract declarative tree then EMF gives you the 
serialization to XML, etc.  I just don't want EMF to be the hammer for 
which everything starts looking like a nail. 

> One possibility is to use 
> it as the runtime representation of the UI, so that a serialization and 
> subsequent deserialization of it is enough to restore the relevant 
> state. This 
> will require a model that includes more information than a model of 
> the static 
> structure. E.g. things like activation state, selection etc must be 
included. 

We already have a mechanism for saving state between sessions.  OK an EMF 
one might be nicer but its competting against an existing working code 
base which people understand how to program to.  Tough sell and a tonne of 
work for ...?  I'd rather see it applied to problems we have no solution 
for at present.

> Ideally, this representation should be independent of the toolkit, 
> so that the 
> same model instance may be used by SWT- and AJAX-based UIs. This 
> also means that 
> there must be a mechanism for adapting the "logical" EMF model to a 
specific 
> toolkit. 

Well, this is a long discussion.  I'm skeptical at being able to come up 
with a single model which gives one highly configured SWT and AJAX widgets 
both. In my experience you always end up with something lowest common 
denominator. The current strategy is to take existing high value widgets 
(e.g. styled text) and convert them to Javascript and Flex, thus you have 
same API.  Generally the desktop and web UIs are going to be different 
anyway (different users, workflows, etc) so a common representation tends 
to be less beneficial than it'd seem at first glance.

> Perhaps this will be the role of XSWT/EXSWT, i.e. instead of mapping 
> directly from XML to GUI, (E)XSWT will map from (an) EMF (model) to 
> GUI and keep 
> them synchronized.

This suggests that every call to SWT would need to trigger (costly) 
synchronization code to keep the model up to date. I don't see that one 
flying.

Also I'm not sure of the goal here.  Why keep a model in sync with the 
real thing if I now have the real thing?  When would I make calls to the 
model rather than direct calls to SWT?  What's it buying me?  Either the 
model is an exact model of the widget, in which case once you have the 
widget why do you still need the model, or its an abstraction and no 
longer 1:1/onto, in which case its likely there is information loss in one 
direction so not reversable to the other (e.g. one SWT widget state 
resulting which could result from many possible combinations of model 
state).

> - Databinding will then be EMF to EMF, rather than EMF to SWT, with XSWT 

> handling EMF to SWT.

I'm getting a little lost.  Databinding is good for keeping my domain 
model (not necessarily an EMF model, maybe just some Java code) in sync 
with the UI. EMF to EMF implies I have models of models (?).

> - CSS could be used for deriving (defaulting) EMF values from other 
> EMF values, 
> as well as supporting the EMF to SWT mapping encoded by XSWT.

Ayyyeee, I'm getting lost in the hall of EMF mirrors!  :)   You're 
proposing databinding from EMF to EMF and CSS from EMF to EMF... I really 
am lost, what are we trying to do here?

I see two choices for CSS:

1) Its applied directly against the widgets.  This makes styling very 
literal, with the notion that you can only make intelligent styling 
decisions if you know the actual properties of the thing that draws on the 
glass.
2) Its applied against the UI model (the Eric/Tom/Ed model).  This makes 
styling more abstract, potentially reusable since you can swap the 
resulting widget type via factory change with the styling preserved.

I like (1) for its literallness.  You see the widget, know how each change 
will look on the glass.

What I like about (2) is it maybe gives us a place to capture workbench 
level notions things like editor vs. view stacks which are 
indistinguishable at the SWT level, and make styling decisions based on 
that app framework state.  So (2) styles against how we use the widgets, 
not the widget classes.

Best Regards,
Kevin
_______________________________________________
eclipse-incubator-e4-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev

Reply via email to