e4 s Toolkit Model a new view on GUI

Similar documents
Designing and Implementing Support for Web Browser-Based UIs by Using Ajax Technology

6 th Annual EclipseCon Introduction to BIRT Report Development. John Ward

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Working With Templates in Web Publisher. Contributed by Paul O Mahony Developer Program

Eclipse 4 RCP application Development COURSE OUTLINE

Actuate Business Intelligence and Reporting Tools (BIRT)

What s New in IBM Web Experience Factory IBM Corporation

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Whitepaper. Rich Internet Applications. Frameworks Evaluation. Document reference: TSL-SES-WP0001 Januar

Kentico CMS 5 Developer Training Syllabus

Web Development with the Eclipse Platform

How To Write An Ria Application

Quality assurance for mobile applications Case studies for GUI test automation. Alexandra Schladebeck

IBM Rational Web Developer for WebSphere Software Version 6.0

Designing portal site structure and page layout using IBM Rational Application Developer V7 Part of a series on portal and portlet development

Cloud Computing And Equal Access

ArcGIS 10.1 Web Apps and APIs. John Hasthorpe & Kai Hübner

IBM Script Portlet for WebSphere Portal Release 1.1

Eclipse for Smalltalkers

SAP BusinessObjects Design Studio Overview. Jie Deng, Product Management Analysis Clients November 2012

EMC Documentum Composer

Modernizing Simulation Input Generation and Post-Simulation Data Visualization with Eclipse ICE

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

JavaFX Session Agenda

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

SENSE/NET 6.0. Open Source ECMS for the.net platform. 1

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

SAP BusinessObjects Design Studio Deep Dive. Ian Mayor and David Stocker SAP Session 0112

E4 development: examples, methods and tools. Eclipse Con France 2014

Implementation of ULC Visual Editor for Eclipse

GUI and Web Programming

ArcGIS Viewer for Silverlight An Introduction

The Oracle Fusion Development Platform

Structured Content: the Key to Agile. Web Experience Management. Introduction

Business Insight Report Authoring Getting Started Guide

DreamFactory & Modus Create Case Study

<Insert Picture Here> Oracle Application Express 4.0

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Developing Cross-platform Mobile and Web Apps

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

SOFTWARE TESTING TRAINING COURSES CONTENTS

Migration and Developer Productivity Solutions Retargeting IT for Emerging Business Needs

Migration and Developer Productivity Solutions Cloud, Mobile and Web Development Workshop

Jos Warmer, Independent

Content Author's Reference and Cookbook

Beginner s Android Development Tutorial!

Take Your Rocket U2 Apps Mobile with Rocket LegaSuite. Greg Mummah, Product Manager Rocket Software

Eclipse-based Applications: Java on the Desktop Revisited

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Codeless Screen-Oriented Programming for Enterprise Mobile Applications

Embedded BI made easy

WebSphere Business Monitor

MicroStrategy Course Catalog

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 1

Coding for Desktop and Mobile with HTML5 and Java EE 7

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

Quick start. A project with SpagoBI 3.x

Building and Deploying Web Applications

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Why HTML5 Tests the Limits of Automated Testing Solutions

15 minutes is not much so I will try to give some crucial guidelines and basic knowledge.

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Firewall Builder Architecture Overview

A Modular Approach to Teaching Mobile APPS Development

Credits: Some of the slides are based on material adapted from

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Native, Hybrid or Mobile Web Application Development

Java-based web-apps with the Rich Ajax Platform (RAP)

EPiServer and XForms - The Next Generation of Web Forms

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Top 10 Oracle SQL Developer Tips and Tricks

DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES

Design. in NetBeans 6.0

Data Visualization in Ext Js 3.4

Introduction to XML Applications

ArcGIS Web Mapping. Sam Berg, esri

What s new in Access 2013

Software Development Kit

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

ANDROID INTRODUCTION TO ANDROID

What's New in BarTender 2016

Content Author's Reference and Cookbook

AN IDE FOR ANDROID MOBILE PHONES WITH

ORACLE APPLICATION EXPRESS 5.0

Sabre Red Apps. Developer Toolkit Overview. October 2014

Example. Represent this as XML

Your First Web Page. It all starts with an idea. Create an Azure Web App

Enterprise Mobile Application Development: Native or Hybrid?

HTML5. Turn this page to see Quick Guide of CTTC

Developing GUI Applications: Architectural Patterns Revisited

IBM Unica emessage Version 8 Release 6 February 13, User's Guide

Automating the Development of Information Systems with the MOSKitt Open Source Tool

design coding monitoring deployment Java Web Framework for the Efficient Development of Enterprise Web Applications

MEAP Edition Manning Early Access Program Hello! ios Development version 14

2. Click the download button for your operating system (Windows, Mac, or Linux).

Transcription:

1 e4 s Toolkit Model a new view on GUI Hallvard Trætteberg, Associate Professor Dept. of Computer and Information Sciences Norwegian Univ. of Science and Technology Hallvard Trætteberg, e4 s Toolkit Model Let me present myself: I m Hallvard Trætteberg, Associate Professor at the Norwegian University of Science and Technology. My research field is model-based user interface design, and it s this interest that has prompted me to contribute the Toolkit Model to e4. 1

2 Agenda Motivation Tookit Model model architecture (Javascript support) Eclipse editors and views toolkit model editor palette view script editing Concluding remarks In this part of the e4 webinar I will present the motivation for the Toolkit Model, explain what it is, a bit of how it works and how it is used for developing user interfaces. 2

3 Motivation Hand-coding GUIs is hard GUI frameworks can be complex conceptual gap between concrete GUI and the GUI code What works? GUI builders are very useful for part of the design task... but handles only look & feel, behavior must still be coded HTML+DOM+Javascript has caught on... but XML is not the best tree-structured data model around Model-based techniques are maturing and more wide-spread... but has not really been successfully applied to UIs (until now?) Can a combination of these be used for e4? Programming is considered hard by many, and UI programming is not the easiest of programming tasks either, since the frameworks for GUI programming can be complex. A complicating factor is the conceptual gap between what the user interface looks like and how it behaves, as experienced by the end-user, on one hand, and the code you must write to create that experience, on the other hand. There are some techniques and tools that has become popular, that can provide inspiration for improving the situation: - GUI builders are easy to use, since they are essentially WYSIWYG, when it comes to visual appearance. However, you usually have to generate and add code to implement the behavior you want. - The HTML+DOM+Javascript combination has been very successful on the web, partly due to how code for the behavior is interleaved with a declarative representation of the user interface structure. - Model-based techniques are becoming more wide-spread, but has not yet caught on for user interface development. The Toolkit model tries to build on these, and will hopefully gain most of the advantages. 3

4 TM model and architecture Ecore-based model of GUI elements hierarchy of widgets simple elements label, text field, buttons, list,... composites generic, group box, tab folder,... coming soon: table and tree widgets styling with CSS 2d graphics natural extension of modeled workbench UI EMF API & tools are used to manage TM instances Java code with static and reflective API generic editors and model-based techniques transform with ATL, store with Teneo, share with CDO... The Toolkit Model is an Ecore model of standard GUI elements, and thus provides a means for declarative representing the structure of a user interface. In this sense it is similar to HTML+DOM. You hopefully know that Ecore is EMF s modeling language that is becoming more and more wide-spread within the Eclipse community. In fact, it is the basis for the modeled workbench user interface that was presented at the previous webinar. In some sense, the Toolkit Model is for applications, what the modeled UI is for the workbench. Instances of the Toolkit Model are similar to the HTML DOM, but by being built on widely used modeltechnology, even easier to manage. The Toolkit Model support most standard widgets, like labels, text fields, buttons, lists, group boxes, tab folders etc. More complex ones like tables and trees are missing, but will soon be supported. 4

5 TM model and architecture The renderer (in the middle) builds the initial UI from the model and keeps them in sync the renderer is toolkit-specific, but the model is fairly portable model changes propagate to widgets App. TM model instance Toolkitspecific renderer Concret e toolkit widgets widget events propagate to model (and app.) The application only sees the (slightly abstract) model 5

6 Javascript support Wrappers for Ecore objects make them seem like native Javascript objects Extra behavior may be added annotations to Ecore operations separate files contributing methods to EClasses EObjects may have their own methods onchange<property> methods used for event handling Standard Ecore classes have already been extended create new objects from EClasses navigate in EObject hierarchies by index or name functional API for searching, mapping and filtering Some support for other EMF functionality Javascript has several advantages: it s more flexible since it s interpreted, integrates well with Java and supports extending a base API with new methods. The latter means that a Java objects, as seen by the Javascript code, may have additional functionality that makes scripts easier to read and write than their Java counterpart. This is useful for scripting both TM objects and your own EMF-based data-objects. 6

7 Typical workflow Create GUI sketch with appropriate tool e.g. wireframesketcher is no-nonsense and EMF-based Create TM instance drag n drop model fragments from palette edit properties and add layout and style objects Create sample data create Ecore model of domain data create example data for data model Script model populate with example data react to user events These steps are based on my own style of working. It s tempting to skip the first one, but TM s GUI builder support is currently not good enough to design the UI with it. It s usually easiest to create new TM instances by copying from existing ones. The palette view supports dragging from both the model tree and the preview. Not everybody will want to use Ecore for modeling application data, but in my experience it is a great time-saver. 7

8 Editors and views Tree-based editor with preview poor man s GUI builder can load EMF application data supports scripting GUI gradually becomes functional Palette view drag n drop model fragments Script editor edit Javascript for model element Script scrapbook try out snippets on live model Preview pane previews active editor content 8

9 Tree-based editor with preview Not just a poor-mans GUI builder. It supports scripting and loading application data. The editior essentially allows editing a running application. Both the tree view and preview reflects the current runtime state of the application. 9

10 Palette view drag n drop model fragments A read only view of a TM instance, with preview. Drag n drop of model fragments and GUI elements is supported. By placing it neatly underneath the editor, it may be used as a palette of model fragments. 10

11 Script editing edit and try There are two scripting-related views, that automatically track the currently active editor. The first allows editing the script of a widget, the other executing scripts in the context of the selected UI element. The editor is currently just a plain text field, but we would like to have a syntax-aware editor. 11

12 Relation to other e4 components No explicit relation to other e4 components A natural extension of the modeled workbench UI while the modeled UI defines the high-level structure of applications (editors and views), TM can be used to model the content same idea and architecture, they could (and should?) be merged Same motivation as XWT, but different choices TM has explicit model (schema), while XWT has not (relies on Java s reflection to map from XML to Java names) XWT is necessarily close to SWT, while TM can choose to differ Javascript support extends existing Java support to EMF could (should?) be aligned with scripting for the platform Although not part of the early e4 components, it fits nicely in as a natural extension of the modeled workbench UI. TM has the same goal as XWT, but is chosen a different representation (Ecore vs. XML) and is more independent of SWT. Scripting EMF and scripting the platform is different, but could/should be integrated. 12

13 Potential of Toolkit Model Platform independence by being more abstract, it can better supports many platforms Separation of structure, behavior and style Scripting a model provides flexibility much of the UIs behavior can be changed without rebuilding Model-based techniques generate UI from domain-specific models Toolkit Model as basis for thin client UI sessions are manageble with EMF technology store UI sessions with Teneo and share with CDO find and update with Query and Transactions Toolkit Model-based UIs are cloud ready 13