2nd Rotor Workshop 20031 Views – an XML-based independent GUI system Judith Bishop University of Pretoria, South Africa Nigel Horspool University of Victoria,

Slides:



Advertisements
Similar presentations
1 Graphical User Interface (GUI) Applications Abstract Windowing Toolkit (AWT) Events Handling Applets.
Advertisements

Ro-SC-tor Software Construction within Rotor Prof. Judith Bishop University of Pretoria South Africa Presented by Kathrin Berg.
pa 1 Porting BETA to ROTOR ROTOR Projects Presentation Day, June by Peter Andersen.
Information System Design Lab 5&6. User Interface Design.
2 nd Microsoft Rotor Workshop, Pisa, April 23-25, SCOOPLI for.NET: a library for concurrent object-oriented programming Volkan Arslan, Piotr Nienaltowski.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. The WSML Editor Plugin to the Web Services Modeling Toolkit Mick.
The Web Warrior Guide to Web Design Technologies
School of Information Technology University of Pretoria.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
JavaServer Faces. Objectives To implement dynamic web pages with JavaServer Faces (JSF) technology To learn the syntactical elements of JavaServer Faces.
CA 121 Intro to Programming Tariq Aziz and Kevin Jones GUI Programming in Visual Studio.NET Chapter 1 Tariq Aziz and Kevin Jones.
CSE3030Lecture 11 Know Your User The First Slogan.
Compunet Corporation Programming with Visual Basic.NET GUI Week # 11 Tariq Ibn Aziz.
Object-Oriented Analysis and Design
Microsoft Courses Introductory Programming with C# Judith Bishop University of Pretoria, South Africa Visiting TU-Berlin.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Tahir Nawaz Visual Programming C# Week 2. What is C#? C# (pronounced "C sharp") is an object- oriented language that is used to build applications for.
Java Swing - Lecture 1 An Introduction Milena Radenkovic slides originally by Chris Coleman.
UNIT-V The MVC architecture and Struts Framework.
Getting Started Example ICS2O curriculum
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
Lecture 7: Objects and Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271 
2012 National BDPA Technology Conference Creating Rich Data Visualizations using the Google API Yolanda M. Davis Senior Software Engineer AdvancED August.
Tutorial: Introduction to ASP.NET Internet Technologies and Web Application 4 th February 2010.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Java Beans.
ACM/JETT Workshop - August 4-5, ExceptionHandling and User Interfaces (Event Delegation, Inner classes) using Swing.
Microsoft August Views – an XML-based independent GUI system Judith Bishop University of Pretoria, South Africa Nigel Horspool University of Victoria,
Session 1 - Introduction and Data Access Layer
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Topic 3 The Stack ADT.
Windows Presentation Foundation. Goal The goal of Windows Presentation Foundation (WPF) is to provide these advances for Windows. Included in version.
C# Overview and Features. Content I.History of C# II.Architecture III.How to install IV.Features V.Code Sample VI.Microsoft.NET Platform VII.Why use C#
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Learning objectives By the end of this lecture you should be able to:  have a well-earned rest! Ch 24 Beyond the second semester.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
.NET Framework Danish Sami UG Lead.NetFoundry
1 Object-Oriented Software Engineering CS GUI building with NetBeans Contents User Interaction JButtons JTextFields JLabels JForms in NetBeans Practical.
1 Programming Fundamentals AITI-GP. 2 Introduction to Programming.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
1 First BlueJ Day, Houston, Texas, 1st March 2006 Writing BlueJ Extensions Ian Utting University of Kent.
Slides prepared by Rose Williams, Binghamton University ICS201 Lecture 13 : Swing I King Fahd University of Petroleum & Minerals College of Computer Science.
GUIs in Java Swing, Events CS2110, SW Development Methods Readings: MSD, Chapter 12 Lab Exercise.
Java GUI building approaches Aleksandar Kartelj Faculty of Mathematics, Belgrade 11 th Workshop “Software Engineering Education and.
X-WindowsP.K.K.Thambi The X Window System Module 5.
MS Visual Basic 6 Walter Milner. VB 6 0 Introduction –background to VB, A hello World program 1 Core language 1 –Projects, data types, variables, forms,
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
9-Nov-97Tri-Ada '971 TASH An Alternative to the Windows API TRI-Ada ‘97 Terry J. Westley
Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University
(1) Introduction to Java GUIs Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
CIS 375—Web App Dev II ASP.NET 1 Getting Started.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
.NET Mobile Application Development XML Web Services.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
T.R.I.D.E Simon Overell (seo01) Supervisor: Keith Clark.
Introducing the Microsoft® .NET Framework
Java FX: Scene Builder.
Object Orientated Programming using C#
Software Construction within Rotor
Introduction to .NET Framework Ch2 – Deitel’s Book
Module 1: Getting Started
EE 422C Java FX.
VISUAL BASIC.
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Presentation transcript:

2nd Rotor Workshop Views – an XML-based independent GUI system Judith Bishop University of Pretoria, South Africa Nigel Horspool University of Victoria, Canada

2nd Rotor Workshop Motivation  Forward looking –Move to platform independent GUI systems –Integration of XML into languages (cf XEN)  Technical –Rotor does not have a GUI capability –Interesting challenges in Reflection, RegEx etc  Educational –Dissatisfaction with method-oriented or drag and drop GUIs –Separation of concerns

2nd Rotor Workshop The reality of a single cross-language, cross-platform GUI interface programming model is in sight, based on an XML description language supported by fast native runtimes. [Russel Jones, DevX, Nov 2002] Supporting many GUIs isn't just a simple process of including one set of libraries or another; it's often a frustrating and error-prone exercise in writing GUI- specific code. [Russel Jones, DevX, Aug 2003] Where GUIs are going

2nd Rotor Workshop VS.NET Common Language Runtime System System.Data (ADO.NET) System.Xml System.Drawing System.Web (ASP.NET) System.WinForms SDK Tools Rotor CLI Implementation C# JScript Platform Abstraction System.WinForms

2nd Rotor Workshop GUI building today GUI Builder Add Listeners Handlers widget rendering in the OS Visual Studio C# Windows widget calls in a language Application

2nd Rotor Workshop A GUI using XML Application Handlers widget rendering in the OS Control Engine Add Listeners GUI XML Spec GUI XML Spec

2nd Rotor Workshop Example in Views Views.Form f = new <PictureBox Name=pic Image='Jacarandas.jpg' Height=175/> " ); string c; for (;;) { c = f.GetControl(); if (c==null) break; PictureBox pb = f["pic"]; switch (c) { case ”Show" : pb.Show(); break; } case ”Hide" : pb.Hide(); break; } No pixel positioning No generated code Separation of concerns XML C#

2nd Rotor Workshop The Views Notation form: controlGroup controlGroup: controlList | controlList controlList:{ control } textItemList: { text } control:controlGroup | | | textItemList | radioButtonList | | radioButtonList:{ }

2nd Rotor Workshop The Eight Handler methods Form(string spec,params) The constructor. void CloseGUI( ) Terminates the execution thread string GetControl( ) Waits for the user to perform an action string GetText(string name) Returns the value of the Text attribute int GetValue(string name) Returns the Value attribute from TrackBar, ProgressBar and CheckBox int GetValue(string name, int index) Returns the status of CheckBox at position index void PutText(string name, string s) Displays the string in a TextBox or ListBox control. void PutValue(string name, int v) Sets an integer value associated with a ProgressBar or CheckBox Essentially five kinds of methods: construct close getControl get put PLUS … direct access

2nd Rotor Workshop Views1 implementation  RegEx API would be nice for normalising XML –If REs fail to match, hard to create a use friendly error message –did not use the RE package.  XML API produces poor error messages when reading XML –implemented our own lexical analyzer for the XML specifications –preprocess the user’s XML then use the XML package,  Views inverts the interaction logic of controls –normally events cause invocation of handling routines asynchronously –our simple interface has the user invoke Views to wait for an event to happen... s = form.GetControl(); switch(s) {... case "Push Me":

2nd Rotor Workshop Views2 implementation  Views2 is a general-purpose tool for creating sophisticated graph structures whose nodes are arbitrary class instances and where the structure layout is defined by a simple XML notation  Correspondence can be made to work with reflection: Views2.Create( " " ) so we can introduce new tags without preprogramming Views for all controls  Views2 can handle asynchronous events c.f. show.Click += new EventHandler(ActionPerformed);

2nd Rotor Workshop Future Work  Completing Views2 and writing it up  Completing the TCL/Tk version and looking at alternative GUI tools  Completing a drag and drop stand-alone tool to emit Views XML  Further investigating the pedagogy  Thinking of asking MS to make Regex available in all operating systems –e.g. “ PDA.NET environment we've seen doesn'tinclude the regexp library, threading, reflection or a full version of collections.”  Long term – XML checking in the language

2nd Rotor Workshop References on  Horspool R N and Bishop J M, Views - and independent GUI development tool for Rotor, 1st Rotor Workshop, Cambridge July  Bishop J M and Horspool R N, Views - a Vendor Independent Extensible Windowing System, presented at IFIP WG2.4 meeting, Dagstuhl, Germany, November 2002  Bishop J M, Horspool R N and Worrall B G, Experience with integrating Java with C# and.NET, JavaGrande, Seattle, November 2002, and Concurrency and Computation - Practice and Experience, to be published, January 2004  Bishop J M, Tutorial at RISE, University of Linkoping, Sweden, December 2002  Bishop J M and Horspool R N, Views report to Microsoft, January 2003  Bishop J M and Horspool R N, C# - the modular language for the 2000s. Tutorial at JMLC, Klagenfurt, August 2003  Bishop J M and Horspool R N, C# Concisely, Addison Wesley, appear October  Bishop J M and Horspool, Towards principles of GUI programming using Views, paper submitted to SIGCSE 2004.