1 / 16

Declarative UI for Eclipse <Subtitle? >

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

afram
Download Presentation

Declarative UI for Eclipse <Subtitle? >

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Declarative UI for Eclipse<Subtitle? > Bernd Kolb (SAP) Benjamin Pasero (IBM Research) Yves Yang (Soyatec)

  2. 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

  3. What is “Declarative?” • Describe what UI you want • Not how you want it constructed • In some specification language (often XML)

  4. 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

  5. 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

  6. Simple Expressions • Ensure clear structure • Logical nesting of widgets • Can be different than physical nesting • e.g. SWT TabFolder and TabItem

  7. 1st Class Tooling • Tooling operates on description, not widgets • Higher level description allows higher level authoring • Description Editor • Visual Designer • UI Modeler and Generator

  8. 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?

  9. Clearer Relationship to Data Model • Establish clear relationship to the data model • Declarative Data Binding • Declarative Action Handling • Declarative Validation • See prototype demo later

  10. 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

  11. 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?

  12. Integration with other solutions • Support for JFace • Data Binding • CSS Styling (e4) • EMF • Modelled Workbench (e4) • More ideas?

  13. Existing Technologies • Various interesting technologies • XUL (Mozilla) • JSF • MXML Flex • XSWT • Silverlight (XAML) • Do we really need this slide?

  14. Work ongoing at Eclipse • E4 • CSS Styles • Modelled Workbench • XWT • UFaceKit • Hallvard's work (???)

  15. Demo • Prototype • Done in ~3 days • EMF • SWT • DSL • … • http://code.google.com/p/eclipsecon2009dui/

  16. 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?

More Related