Feb 20, 2006 - Technical implementation of the solution. ⢠Catch the semantically rich events from ProBXS. ⢠Fabien. ⢠Technical implementation of the solution.
Synchronization between display objects and representation templates in graphical language construction
François Helg Fabien Rohrer
Assistant : Frédéric Fondement
Plan • • • • • • •
Recall of the starting goals What goals do we have achieved Used technologies Technical implementation of the solution Example Demo Conclusion
2/20/2006
2
Overview •
François • • • •
Recall of the starting goals What goals do we have achieved. Used technologies Technical implementation of the solution • Catch the semantically rich events from ProBXS
•
Fabien •
Technical implementation of the solution • Interaction with SVG/DOM • Model and Interpreter
•
•
Both •
•
Example
Demo of ProBXS with rising synchronization
François •
Conclusion
2/20/2006
3
Plan • • • • • • •
Recall of the starting goals What goals do we have achieved Used technologies Technical implementation of the solution Example Demo Conclusion
2/20/2006
4
Starting goals • Implement both rising and descendent synchronization Graphical Representation
Model
Synchronization
2/20/2006
5
Plan • • • • • • •
Recall of the starting goals What goals do we have achieved Used technologies Technical implementation of the solution Example Demo Conclusion
2/20/2006
6
Achieved goals - Only the rising synchronization -
Graphical Representation
Model
« rising » Synchronization
2/20/2006
7
Achieved goals - Only the rising synchronization -
• It means that the model can keep synchronized when a change occurs in the graphical representation but not the other way round. • Reason: Time • To solve problems linked with Kermeta • To implement the rising synchronization
2/20/2006
8
Achieved goals - Why did we abandon Kermeta? -
• Some little annoying problems : • • • •
Bugs in Kermeta2Ecore transformation Problems with saving a model Error detection too imprecise Lack of documentation
• Main problem: • Standalone application not implemented yet • Unable to dynamically interpret the code
• Unusable! 2/20/2006
9
Plan • • • • • • •
Recall of the starting goals What goals do we have achieved Used technologies Technical implementation of the solution Example Demo Conclusion
2/20/2006
10
Used technologies - Our solution • •
XMI: format use to exchange model and metamodel JMI: Mapping from MOF to Java. It provides an interface to handle model.
•
MDR: • Can load a metamodel and save an instance (model) thanks to XMI. • Can handle model thanks to JMI
• « model-script » encryption and interpretation • Koala (Dynamic Java code interpretor) • Not Kermeta any more!
• Interaction with ProBXS • Java 1.5 • DOM for interaction with SVG templates 2/20/2006
11
Used Technologies - Dynamic Java: Koala -
• Fortunately we found a Koala! • • • •
Koala is a Java dynamic interpreter It can interpret a derivated-Java: DynamicJava Free and open source Ideal for instantiating a JMI metamodel
• So we can use it for interpret our queries! 2/20/2006
12
Plan • • • • • • •
Recall of the starting goals What goals do we have achieved Used technologies Technical implementation of the solution Example Demo Conclusion
2/20/2006
13
- Switch • Fabien will continue the presentation…
2/20/2006
14
Technical implementation - Generalities -
• The program has to « understand » a SVG template like: newState
2/20/2006
15
Technical implementation - Generalities -
• The rising synchronization can be subdivided into a chain of simpler tasks Event Call
Event
Recover Script Recover Environment
Listener
Recover Special Variables Interpret Handle output variables
2/20/2006
16
Technical implementation - Plan -
• The rising synchronization can be subdivided into a chain of simpler tasks • Listeners on sementically rich events in graphical representation (ProBXS) • Retrieve script, environment from DOM-tree and parameters of the events. • Set the environment in the right language • Interpret the script • Get back the environment from the interpreter 2/20/2006
17
Technical implementation - Listeners • Listeners on sementically rich events • CharacterDeletedEvent, CharacterInsertedEvent: Appear when a character is changed in a textbox • ComponentCreatedEvent: Appear when a new component is added into the scene • DirectionAdjustEvent: Appear when a component changes its direction • LocateEvent, PositionEvent, TranslateEvent: Appear when a component move on the scene • ContainedEvent: Appear when a component is slided into another component • StickEvent: Appear when a component is sticked to another one. 2/20/2006
18
Technical implementation - Plan -
• The rising synchronization can be subdivided into a chain of simpler tasks • Listeners on sementically rich events in graphical representation (ProBXS) • Retrieve script, environment from DOM-tree and parameters of the events. • Set the environment in the right language • Interpret the script • Get back the environment from the interpreter 2/20/2006
19
Technical implementation - Recover Information -
• Retrieve script, environment from DOMtree and parameters of the events. • SVG template Æ DOM tree • Link DOM – ProBXS => Component class (each component wrapps a dom element) • Recover the node corresponding to the event is easy because we have the wrapped element (DOM node) of the component which raises the event. 2/20/2006
20
Technical implementation - Recover Information -
• Important values in DOM tree : • onEvent=”{ Language | codeToInterpret }” • var_name = “value”
• Example : onEvent="{Koala | System.out.println(val);}" var_val="String(Hello world)"
Interpreter Name 2/20/2006
Code to interpret
Variable Name
Variable Value 21
Technical implementation - Plan -
• The rising synchronization can be subdivided into a chain of simpler tasks • Listeners on sementically rich events in graphical representation (ProBXS) • Retrieve script, environment from DOM-tree and parameters of the events. • Set the environment in the right language • Interpret the script • Get back the environment from the interpreter 2/20/2006
22
Technical implementation - Environment -
• Recover the environment • Recover the right interpreter • Recover the environment • Recover the special variables of the specific environment
2/20/2006
23
Technical implementation - Environment -
• Example : onChange="{Koala | self.setName(content);}" var_self="$s" Special variables of specific Event
Interpreter Name
Variable Name
Variable Value
Variables of the environment Interpreter
2/20/2006
Deserializer
24
Technical implementation - Special Variables -
• For each event: • Some specific variables • Ex: variable content for CharacterInsertedEvent
• Variable model to handle the model
• Æ Compete list in the report
2/20/2006
25
Technical implementation - Plan -
• The rising synchronization can be subdivided into a chain of simpler tasks • Listeners on sementically rich events in graphical representation (ProBXS) • Retrieve script, environment from DOM-tree and parameters of the events. • Set the environment in the right language • Interpret the script • Get back the environment from the interpreter 2/20/2006
26
Technical implementation - Interpretation -
• At this point we have all what we need: • The right interpreter • The right variables • The code to interpret
• So we can interpret!
2/20/2006
27
Technical implementation - Plan -
• The rising synchronization can be subdivided into a chain of simpler tasks • Listeners on sementically rich events in graphical representation (ProBXS) • Retrieve script, environment from DOM-tree and parameters of the events. • Set the environment in the right language • Interpret the script • Get back the environment from the interpreter 2/20/2006
28
Technical implementation - Output variables -
• The interpretation generates some output variables • We need to handle them!
2/20/2006
29
Technical implementation - Output variables -
• Example : onCreation="{Koala | s = model.getState().createState();}"
Deserialize
Serializer
var_self="$s" 2/20/2006
30
Technical implementation - Output variables -
• Example : onCreation="{Koala | s = model.getState().createState();}"
Serializer
Deserialize
var_self="Object(641278419378)" 2/20/2006
Reference of the corresponding template which can be recovered
31
Technical implementation - Output variables -
• Example : "{Koala | b = new Boolean(false);}" var_b="Boolean(true)"
Deserialize
2/20/2006
Serializer
32
Technical implementation - Output variables -
• Example : "{Koala | b = new Boolean(false);}" var_b="Boolean(false)"
Deserialize
2/20/2006
Serializer
33
Plan • • • • • • •
Recall of the starting goals What goals do we have achieved Used technologies Technical implementation of the solution Example Demo Conclusion
2/20/2006
34
Example - stick •
Point of view of the stuck object t (ex: Transition):
Nov 25, 2005 - Augmented SVG. ⢠SVG +⦠⢠Dynamical features (Project of Fabrice). ⢠Some OCL's queries for descendent synch. ⢠+ listener on the repository.
1. Project presentation #2. Provide behaviour to XML/SVG elements ... elements. Used to translate numeric information to graphical ones. Involved Components.
I can produce short pieces of writing which ask and give opinions. I can refer to past or future events, as well as everyday activities. There may be some mistakes ...
Sep 21, 2007 - Endurance requirement: 15 minutes of stationary flight and 30 minutes of .... second selection round was performed (based on these enhanced ...
12 avr. 2016 - objet l'exploitation des gisements de phosphate en Tunisie. Date de ... humaines HSEQ Entreprise citoyenne Economie d'energie Actualités.
... typically 190 Ã 35 and to observed internal scale: coherent streak segments â¼ 6 Ã 3. 13 ... viscous dissipation and energy transfer to cross-stream small scales ...
cryptographie - la science du codage de l'information. Tous les ... la base de la technologie Proof-of-Stake (POS), c'est pourquoi son extraction s'appelle ...
If you don't like something in this book, change it. It is your creative .... stories (his best excuse to escape the wife for an evening), .... 'You know full well who they.
Jan 31, 2005 - Title : Mr. Address : B.P. 15 rue Fontaine de l'Hôpital, 1 34431 Saint Jean de Vedas France .... All theses points are beneficial for shellfish producers. Future Actions ..... needed some time to know about the project. However a ...
Jan 31, 2005 - Title : Mr. Address : B.P. 15 rue Fontaine de l Hôpital, 1 34431 Saint Jean ..... unfortunately the analysis results, known second part of January due to ... The accumulation of delays all along the project for various reasons ...
the valve body together with the valve mechanics and the Teflon gasket in the vaporizer. ... Salts are dissolved in the sample or if the sample contains materials.
method consists, for the panelist, in arranging P products on a tablecloth (60 cm x 40 cm), .... tablecloth to the average one, through a graphical representation.
restaurants de services rapide. • Accès facile à l'autoroute 35 ... and fast-food restaurants. • Easy access to Highway 35 at the center of Iberville residential area.
Avenue Barclay 5. Avenue Glencoe. Boul Laird. Cha. Avenue Willowdale. Métro de la Savane. Chemin de la Côte-des-Neiges varje de Kent. Rue de la Savanie.
information contained herein, and same is submitted subject to errors, omissions, change of price, rental or other conditions, withdrawal without notice, and to ...
Located in the vibrant Petite-Patrie borough. â« Large street front space available. Cushman & Wakefield SRI | ULC. 999, boul. de Maisonneuve O.,. Bureau 1500.
The depiction in the included photograph of any person, entity, sign, logo or property, other than Cushman & Wakefield's (C&W) client and the property offered ...
... is made to the accuracy or completeness of the information contained herein, and same is submitted subject to errors, omissions, change of price, rental or.