160 likes | 333 Views
Declarative UI for Eclipse <Subtitle? >. Bernd Kolb (SAP) Benjamin Pasero (IBM Research) Yves Yang (Soyatec). Agenda. Declarative UI for Eclipse Introduction to the topic Demo of our prototype XWT - Declarative UI Designed for Eclipse Discussion
E N D
Declarative UI for Eclipse<Subtitle? > Bernd Kolb (SAP) Benjamin Pasero (IBM Research) Yves Yang (Soyatec)
Agenda • Declarative UI for Eclipse • Introduction to the topic • Demo of our prototype • XWT - Declarative UI Designed for Eclipse • Discussion • Goal: Initiate the discussion in this area
What is “Declarative?” • Describe what UI you want • Not how you want it constructed • In some specification language (often XML)
Difficulties in UI development today • High technology pre-requisite as UI developer • Poor reusability – Boilerplate Code • Limited Dynamic UI • Difficult integration with developer tools • Visual Editor • Modeling Tools
Be Language and Widget Neutral • Generate code in target language • Or let an engine instantiate widgets directly • Generate to various target widget toolkits • e.g. SWT, Swing, QT, embedded,… • Depends on level of abstraction of the declarative system • If all you’ve done is modelled SWT widgets, then it’ll be difficult to generate Swing
Simple Expressions • Ensure clear structure • Logical nesting of widgets • Can be different than physical nesting • e.g. SWT TabFolder and TabItem
1st Class Tooling • Tooling operates on description, not widgets • Higher level description allows higher level authoring • Description Editor • Visual Designer • UI Modeler and Generator
Separation of UI and Business • Often different domains work on the same UI • A UI Designer with expertise in design • A Software Developer with expertise in the business logic • Often gap between domains • A software developer having a hard time implementing what the UI designer dreams of • Close the gap with a common language (DSL) • Do we need this slide at all?
Clearer Relationship to Data Model • Establish clear relationship to the data model • Declarative Data Binding • Declarative Action Handling • Declarative Validation • See prototype demo later
Higher Level Expression for UI • Support for Templates • Group widgets and state • e.g. Form field • Label • Input Field • Decoration (Validation) • Layout • Reusable UI Components
Higher Level Reasoning • Different levels of models • Matches exactly with SWT • Higher level abstraction of composites, elements • Semantic level description of UI requirements • Model to model transformations • Can generate from one model to another • Do we want this slide? What does it tell?
Integration with other solutions • Support for JFace • Data Binding • CSS Styling (e4) • EMF • Modelled Workbench (e4) • More ideas?
Existing Technologies • Various interesting technologies • XUL (Mozilla) • JSF • MXML Flex • XSWT • Silverlight (XAML) • Do we really need this slide?
Work ongoing at Eclipse • E4 • CSS Styles • Modelled Workbench • XWT • UFaceKit • Hallvard's work (???)
Demo • Prototype • Done in ~3 days • EMF • SWT • DSL • … • http://code.google.com/p/eclipsecon2009dui/
Discussion • Can there be 1 generic language to fit all target windowing systems? • What about Rich Client vs Web Client? • What do people expect from the UI in different contexts? • What about save/restore widget state from XML or DSL? What about Listeners? • Using DSL vs using XML?