Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Making Modelling “Fun” With GWT Chris Ainsley
Slide 2
Slide 2 text
Speaker
Slide 3
Slide 3 text
Introduction Modelling Rion Myrion Agenda Example
Slide 4
Slide 4 text
Let‘s Begin
Slide 5
Slide 5 text
much wow !!!!!! such fun so profesunel i’m scared
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
Where does it go? The burden of choice Does it matter where it goes? I need to talk to expert
Slide 8
Slide 8 text
Easier to understand Productivity through structure The model will guide us Acts as tutorial of problem domain
Slide 9
Slide 9 text
Read Data Create well-structured in-memory Model Utilize Model Model Driven Development Over Simplification
Slide 10
Slide 10 text
Application Configuration Basic Scripting Functionality Asset Generation Uses Of A Well-Formed Model Development Tools
Slide 11
Slide 11 text
Approaches to Modelling Annotation Based
Slide 12
Slide 12 text
Annotation Based
Slide 13
Slide 13 text
Array / Lookup Table Based Annotation Based
Slide 14
Slide 14 text
Array / Lookup Table Based
Slide 15
Slide 15 text
Array / Lookup Table Based DSL Based Annotation Based Domain Specific Language
Slide 16
Slide 16 text
Write Parser and more Utilize DSL Toolkit Both non-trivial to get working with GWT on client side Or
Slide 17
Slide 17 text
Array / Lookup Table Based DSL Based Annotation Based Schema Based
Slide 18
Slide 18 text
XML Schema
Slide 19
Slide 19 text
XML Schema Non trivial to get working with GWT on client side
Slide 20
Slide 20 text
Rion
Slide 21
Slide 21 text
GWT Compatible Easy to Visually Scan Many Advanced Features Strongly Typed Syntax Highlighted Rion Attribute Object Collection
Slide 22
Slide 22 text
Id Value Id Values Id Multi Line Attribute Value Leading & trailing whitespace not significant Attribute Syntax
Slide 23
Slide 23 text
Object Syntax Id Type Id and type
Slide 24
Slide 24 text
Collection Syntax Collection Id Identified objects within collection Collection Id Anonymous objects within collection
Slide 25
Slide 25 text
Rion – Active Content $${…} blocks are active content.
Slide 26
Slide 26 text
Id Dictionary Lookup Key Id Value Backslashes interpreted literally in this syntax Regular expression syntax Dictionary Syntax
Slide 27
Slide 27 text
Rion – Conditional Blocks Environment filter Model elements to be excluded unless environment filter matches
Slide 28
Slide 28 text
Myrion
Slide 29
Slide 29 text
Rion Myrion XML XML Schema / JAXB Client-side GWT compatible
Slide 30
Slide 30 text
Schema Driven Development
Slide 31
Slide 31 text
Schema Driven Development
Slide 32
Slide 32 text
Schema Driven Development
Slide 33
Slide 33 text
Schema Driven Development
Slide 34
Slide 34 text
Schema Driven Development
Slide 35
Slide 35 text
Tight Integration With Rion Object Orientated Easy to learn Myrion Design Considerations Rapid Creation Portable
Slide 36
Slide 36 text
What is in the metaschema? Class / Interface hierarchy Class Members Validation rules Scoping / referential integrity More
Slide 37
Slide 37 text
Creating A Schema
Slide 38
Slide 38 text
Form Item A simple model Gui Form Multiple Choice Text Widget Dropdown Radio Buttons Textbox Text Area Date 1 .. n 1 .. n
Slide 39
Slide 39 text
Creating a schema Press Ctrl + Space
Slide 40
Slide 40 text
Creating a schema Package / Domain Defined classes Root class / Entry point Entry point class Expected items within class
Slide 41
Slide 41 text
model/Gui.java 0100 Modified Snippet from Gui.java
Slide 42
Slide 42 text
builder/GuiBuilder.java 0100 Modified Snippet from GuiBuilder.java
Slide 43
Slide 43 text
Define a skeleton ‘form’ class classes[]
Slide 44
Slide 44 text
classes[]/gui//content[]//forms Gui.java Define Forms At Root Level
Slide 45
Slide 45 text
Schema So Far
Slide 46
Slide 46 text
Valid document Invalid document
Slide 47
Slide 47 text
Creating a Regular Expression / GuiBuilder.jav a
Slide 48
Slide 48 text
Defining An Enumeration enumerations[] IconType.java
Slide 49
Slide 49 text
Add some attributes to “form”
Slide 50
Slide 50 text
classes[]/form/content[] Form.java
Slide 51
Slide 51 text
classes[]/form/content[] Form.java
Slide 52
Slide 52 text
Creating the “formitem” abstract class
Slide 53
Slide 53 text
classes[] FormItem.java
Slide 54
Slide 54 text
classes[] Create Text Widget Base Class
Slide 55
Slide 55 text
classes[] Adding Concrete Widgets
Slide 56
Slide 56 text
classes[]/form/content[] Adding Form Items To A Form
Slide 57
Slide 57 text
classes[] classes[] Multiple Choice Widgets
Slide 58
Slide 58 text
GWT Archetype + Code Generation
Slide 59
Slide 59 text
No content
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
Model Module Builder Module Client Module 3 GWT Modules Generated Engine Project Web Project
Slide 62
Slide 62 text
Engine Project Model Module Builder Module
Slide 63
Slide 63 text
Web Project View Rendering Code Goes Here Everything underneath src-gen should not be manually edited
Slide 64
Slide 64 text
J2CL archetypes should be trivial to produce
Slide 65
Slide 65 text
Writing Client Code
Slide 66
Slide 66 text
Rendering code goes here GuiView.java
Slide 67
Slide 67 text
Dispatchers Brittle By Design
Slide 68
Slide 68 text
Serializing The Model Autogenerated, no external library dependencies Next version uses java.lang.Appendable
Slide 69
Slide 69 text
Generated Documentation
Slide 70
Slide 70 text
No content
Slide 71
Slide 71 text
Summary Enables A New Class Of Applications Can be used client side or server side Leverages Strengths of GWT / J2CL So much more
Slide 72
Slide 72 text
Availability Available Q1 2017 Looking at Dual Licensing Options
Slide 73
Slide 73 text
Rion rionx.io Myrion myrion.io Contact
[email protected]
Feedback bit.ly/2fibiir Twitter @x202122 Questions