Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [e4-dev] Toolkit model

Hallvard,

Just a question about :
The event itself is transient, while the affected property is not. E.g. a toggle button (and a checkbox) has a transient selectionEvent attribute and a persistent selection attribute, while a push button only has the transient selectionEvent attribute.

What is the relevance between a selectionEvent of a push button and the one of a checkbox ??? Do you really need a such event for checkbox since it is easy to use adapter on 'selection' property ... wich is not possible on push button? In SWING or in SWT, checkboxes, toggle & push buttons derive all from the same class (sometime abstract), even if they share a large part of common behavior, the major difference is, for a SWT push button, that the 'pressed' state is not present, then in theory the selection change occurs always twice: false->true and true->false with no way to intercept only one (in SWING it is possible, there is states like 'armed', 'pressed' ...).


Olivier


Hallvard Trætteberg a écrit :
Olivier,

Olivier Moïses wrote:

Nice to peak with you again after the last pizza (private joke ;-)  ).

:-) It was nice to speak and eat with you at ESE. Very inspiring!

Regarding wazaabi 2.0, I did not add new widgets recently because I strongly believe that a binding model is requiered before!

Binding is important, I agree. Modeling it needn't be that difficult, if all the objects, including domain and toolkit, are Ecore objects.

I may have mentioned my dialog modeling language diamodl, which is my line of research. Besides activation logic, it models dataflow to/from the model and UI components, i.e. databinding. There are three main concepts: variables for holding data, computations for transforming data, and widgets for referencing the toolkit objects. The model is translated to EClasses (which is combined with the domain model to a large Ecore model), and the runtime consists mainly of instances of these (and domain data), with references to the toolkit model objects and databinding for moving data inside the UI and to/from the toolkit. So, in practice databinding is modeled as a link between a structural feature of one Ecore instance to a structural feature of another.

How do you validate the move from SWT specific to generic one ? The policy I apply (but I am definitely not sure) is "each time a piece of behaviour appears in SWT and SWING, then move it into Abstract/Generic metamodel).

Yes, something similar.

- Package structure: Like wazaabi, I've split the model into widgest, layouts and styles packages. The disadvantage is that the generated package and factory classes will have the same names (although in different Java packages).
Couldn't you add an annotation for the generated classe name?

The classes are generated from genmodels, so (re)naming must be handled there. In practice, the name collision is not a problem, as specific Builder classes mainly use classes generated from one model.

- Events: Events are modelled as transient attributes that invalidate the reference/attribute corresponding to the input value. This means that event info. is available for the application. In my experience this is needed, e.g. to detect whether a change to a Text widget resulted from a keystroke or a programmatic change.
Why only transient attributes?? for instance, the selection of a checkbox could/should be persisted. Independently, the selection change will trigger an adapter.

The event itself is transient, while the affected property is not. E.g. a toggle button (and a checkbox) has a transient selectionEvent attribute and a persistent selection attribute, while a push button only has the transient selectionEvent attribute.

Hallvard
_______________________________________________
e4-dev mailing list
e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/e4-dev



Back to the top