where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures

Similar documents
CS 4300 Computer Graphics

Widget Toolkits CS MVC

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down

Input: Interaction Techniques

Widgets. Overview. Widget. Widgets Widget toolkits Lightweight vs. heavyweight widgets Swing Widget Demo

Input part 3: Interaction Techniques

Fall UI Design and Implementation 1

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

Human Computer Interaction Lecture 08 [ Implementation Support ] Implementation support

MOBILE COMPUTING 1/20/18. How many of you. CSE 40814/60814 Spring have implemented a command-line user interface?

Adobe LiveCycle ES and the data-capture experience

GUI s and Keyboards. Larry Rudolph March 13, Pervasive Computing MIT SMA 5508 Spring 2006 Larry Rudolph

CS 160: Lecture 10. Professor John Canny Spring 2004 Feb 25 2/25/2004 1

implementation support

Lecture 9: UI Software Architecture. Fall UI Design and Implementation 1

Human-Computer Interaction. Chapter 2. What is HCI?

stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October research topics in human-computer interaction

Human Computer Interface Design Chapter 7 User Interface Elements Design and Guidelines

Model-View Controller IAT351

Superficial the concepts

Review. Designing Interactive Systems II. Review. Base Window System. Apps UITK BWS GEL. 4-Layer Model Graphics and Event Library BWS GEL

GUI Implementation Support

Human-Computer Interaction IS4300

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1

CS211 Lecture: The User Interface

What is interaction? communication user system. communication between the user and the system

Organization of User Interface Software

Our Hall of Fame or Shame candidate for today is the command ribbon, which was introduced in Microsoft Office The ribbon is a radically

CREATING ACCESSIBLE DOCUMENTS IN MICROSOFT WORD (MACINTOSH)

Model-View-Controller

Lecture 11: Toolkits. Fall UI Design and Implementation 1

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 6 Operating Systems

Chapter 6. Task-Related Organization. Single Menus. Menu Selection, Form Fill-in and Dialog Boxes. Binary Menus Radio Buttons Button Choice

AS COMPUTERS AND THEIR USER INTERFACES have become easier to use,

Example Programs. COSC 3461 User Interfaces. GUI Program Organization. Outline. DemoHelloWorld.java DemoHelloWorld2.java DemoSwing.

Merits of QT for developing Imaging Applications UI

CPS122 Lecture: The User Interface

Software Tools. Scott Klemmer Autumn 2009

chapter 3 the interaction

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface?

User Interface Design. Model Hierarchy/Succession. User Interfaces aren t easy. Why User Interfaces are critical. Elements of good U/I design

Midterm Exam, October 24th, 2000 Tuesday, October 24th, Human-Computer Interaction IT 113, 2 credits First trimester, both modules 2000/2001

Human-Computer Interaction: An Overview. CS2190 Spring 2010

Model-View-Controller Architecture

Fall UI Design and Implementation 1

Chapter 8. Implementation Support

We will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety?

Chapter 14 Overview. Windowing systems

Lecture 11 Usability of Graphical User Interfaces

Widgets. Widgets Widget Toolkits. User Interface Widget

1. PDF forms can be filled out on the computer if converted to Interactive Forms

Output in Window Systems and Toolkits

What s New Essential Studio User Interface Edition, 2011 Volume 4

Seng310 Lecture 8. Prototyping

GUI Program Organization. Sequential vs. Event-driven Programming. Sequential Programming. Outline

M150 -B / Unit 12. By Wawi. A good user interface design enables the user to effectively interact with the system and perform his tasks.

BitRouter s XML State Machine Technology. For Configurable Graphical User Interfaces. Abstract

MENU SELECTION, FORM FILL-IN, AND DIALOG BOXES

CSE 403. UI Requirements & Design. Material in part from Marty Stepp and Valentine Razmov, past 403 classes.

CS 160: Lecture 12. Professor John Canny Fall /13/2004 1

Text box. Command button. 1. Click the tool for the control you choose to draw in this case, the text box.

Page 1. Human-computer interaction. Lecture 2: Design & Implementation. Building user interfaces. Users and limitations

Programming Graphical

Fiery X3eTY2 65_55C-KM Color Server. Utilities

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models

Automatic layout Constraints Model-based UI. Declarative programming. Procedural programming. Saying what you want. Saying how to achieve it

Today: CMPUT 301: Lecture 14 The Interaction

Graphical User Interface (GUI)

CS415 Human Computer Interaction

Extensible GUIs for Remote Application Control on Mobile Devices

VERINT EFM 8.0 Release Overview

Forms/Distribution Acrobat X Professional. Using the Forms Wizard

User Interface Design. Interface Design 4. User Interface Design. User Interface Design. User Interface Design. User Interface Design

PROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7

Chapter 5. Set Value Input Screen. Otasuke GP-EX! Chapter 5 Set Value Input Screen 5-0. Set Value Input Screen 5-1. Let s Enter Target Value 5-2

TOSHIBA GA Utilities

The First-Time Login Must Be On-Campus using Ethernet Cable

Graphical User Interface (GUI)

Laboratory 5: Collaborative Text Editing

Introduction to Windows

Interface. 2. Interface Adobe InDesign CS2 H O T

InDesign UX Design Patterns. by Justin Putney

Asset Arena InvestOne

CS 116x Winter 2015 Craig S. Kaplan. Module 03 Graphical User Interfaces. Topics

UNIVERSITY OF CALIFORNIA AT BERKELEY. Name:

This quiz is closed book, closed notes. You have 80 minutes to complete it. Your name:

Lecture 4: UI Software Architecture. Fall UI Design and Implementation 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Human-Computer Interaction IS4300

Google LayOut 2 Help. Contents

eswt Requirements and High-Level Architecture Abstract Document Information Change History

Model-view-controller View hierarchy Observer

2/18/2009. Introducing Interactive Systems Design and Evaluation: Usability and Users First. Outlines. What is an interactive system

How to...create a Video VBOX Gauge in Inkscape. So you want to create your own gauge? How about a transparent background for those text elements?

This page intentionally left blank

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01.

Chapter 1 What is the Home Control Assistant?

History of Ubicomp. Page 1. Agenda. Why study history? Paradigms. Shwetak Patel. Review history of Ubicomp

GUI Components: Part 1

Interaction Design. Task Analysis & Modelling

Transcription:

where are we? ICS 105: Project in HCI UI Toolkits and Programming Models lectures done with evaluation techniques a couple of lectures on toolkits and programming other topics: graphical design and screen layout current hot research issues case study projects first set of paper prototypes done, rest tomorrow reports due next Friday redesign and implementation ui toolkits what does the toolkit do? interactive application UI toolkit window system operating system hardware interaction with window system layout and component management offers a programming model unified approach to input and output reusable solutions we ll mainly be concerned with the last three model-view-controller model-view-controller MVC is a common structure for components separation of concerns separates input, output, internal logic originally developed for SmallTalk model is internal representation information the application is manipulating mailbox in a mail reader, document in a word processor, etc. concentrates internal logic and consistency management model view ctrl model view ctrl 1

model-view-controller multiple views view is the visual representation may have multiple views e.g. graphical and textual depictions notifications from model when it changes maintains consistency model view ctrl model-view-controller model-view-controller controller handles all interaction with the user receives input events, decides what they mean makes changes to view and to model e.g. edits vs scrolling model view advantages separation of concerns supports better software engineering easy to modify and maintain allows replication makes it easier to add new views and controls later variations many systems combine view and controller in direct manipulation, view is controller ctrl rendering models raster models three components to ui toolkits architecture (e.g. MVC) input (to come) output (focus for now) output primary distinction is the rendering model how images are described and constructed fundamental structure is the raster image array of color values array of pixel coordinates from (0,0) to size of screen typically top left to bottom right great for images, less good for structured graphics toolkit maintains minimal information about structure e.g. the lines and objects that gave rise to pixel image 2

stroked models stroked models fundamental structures are paths and strokes higher level than individual pixels resolution independence originated in printer Page Description Languages Press, InterPress, PostScript Display Postscript used in NeWS and NeXT PDF-based rendering model in Apple s MacOS X joins complex paths other advanced features other advanced features font support and antialiasing font support can be minimal in raster models need to get from letter+size to raster image originally, stored fonts simply as bitmaps these days, use programmatic font support (TrueType) antialiasing makes fonts easier to read other advanced features Java 2D alpha channel Java graphics originally based on AWT minimal clearly just enough to ship Java now supports two-level design JFC is the user interface component Java2D is the underlying graphics component much richer rendering model 3

Java2D demo widgets Macintosh (1984) first commercial GUI system two aspects user interface to the system itself Mac Toolbox made components available to others seven basic widgets buttons sliders (also implement scrollbars) pull-down menus checkboxes radio buttons text fields file open/save dialog other widgets (e.g. window decorations) not in toolbox widgets widgets second Mac release added more hierarchical (pull-right) menus in-place menus (drop-down selection boxes) lists (single and multiple selections) more recent additions (Macs and others) tabbed dialogs hierarchical lists (trees) combo boxes (combination menu, list, text) this set pretty much covers conventional UI not all that s there e.g. pie menus different models for different interfaces for PDAs? interfaces for interaction on TV? widget model event-based programming convenience for both users and developers users get familiar interaction styles established genres of user interface design eases transfer of skills from one application to another programmers get predefined units eases conformance to UI guidelines saves repetition of effort only part of the story, though widgets are components how do components fit together? how are behaviors defined? basic program structures non-interactive applications start, do something, stop simple interactive applications main loop await instructions, carry them out, repeat most interactive applications more complex lots of state many operations operations of many different sorts how many different operations can you carry out? 4

event-based programming event-based programming modal solutions restrict operations that can take place at any time places the burden on the user which mode are you in now? how do you get from mode to mode? easier to make errors barriers in the way of operations complexity grows effective design requires more sophisticated model event-based programming turn things around instead of user waiting on system, have system wait on user this is the event based approach declarative approach to programming user actions generate events e.g. mouse clicked, button pressed, scroll bar moved set up object structure describe structure of solution describe how objects will respond to events implicit main loop collects events, determines targets, sends events inner window (green) 5

inner window (green) display keypad inner window (green) display keypad button #0 button #1 button #2 button #3 inner window (green) display keypad button #0 button #1 button #2 button #3 0 + left-click! - left-click? left-click? deliver to button 0 + left-click! - 6

0 + right-click! - right-click? 0 + right-click! - right-click button not interested deliver to keypad keypad menu 0 + key - 6 keypress? 0 + key - 6 keypress? button not interested keypad not interested deliver to window global input handling ui and oop constraints event-based model meshes naturally with OOP objects and containment structures keep behavior close to data delegate event processing between objects event model is the conventional approach another common approach is to use constraints constraint-based programming declarative approach to programming constraint is a desired invariant a := b * 2 a <-> b * 2 complexity satisfaction engine ensures all constraints maintained single and multi-way constraints 7

constraints constraints constraints apply naturally to UI think of MVC view must track model controller must keep view in sync examples manage a scrollbar by expressing a constraint between the location of the scroll box and the current view port keep item centered in window as it resizes by expressing constraint about the size of padding on either side advantages of constraint approach? declarative programming style express what you want to happen once and for all event-based programming distributes activity hard to find the one place where things happen express natural regularities people understand causation naturally constraint-based designs can be very intuititive disadvantages? computationally expensive not yet mainstream (but we re working on it) next week more in-depth on Swing/JFC 8