administrivia today assignment 4 exam next Wednesday interface guidelines MVC event-based programming any questions?

Similar documents
Macros in Word & Excel

Acrobat PDF Forms - Part 2

Implementação. Interfaces Pessoa Máquina 2010/ Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Using Microsoft Project 2000

Microsoft PowerPoint 2010 Handout

Introduction to Word 2007

TUTORIAL 4 Building a Navigation Bar with Fireworks

Microsoft Excel 2013: Charts June 2014

3. Locate the different selections of Styles from the Home Tab, Styles Group

Presentations and PowerPoint

GroupWise to MS Outlook 2007

Opening, Importing and Saving Images

Petrel TIPS&TRICKS from SCM

Getting Started: Creating a Simple App

Once you have obtained a username and password you must open one of the compatible web browsers and go to the following address to begin:

Smart Connection 9 Element Labels

Sample Table. Columns. Column 1 Column 2 Column 3 Row 1 Cell 1 Cell 2 Cell 3 Row 2 Cell 4 Cell 5 Cell 6 Row 3 Cell 7 Cell 8 Cell 9.

Microsoft Windows Overview Desktop Parts

Personal Geodatabase 101

Creating Hyperlinks & Buttons InDesign CS6

Sharing Presentations, Documents, and Whiteboards

Formulas, Functions and Charts

Comparisons and Contrasts Between imovie 2 and Movie Maker 2

Graphing in excel on the Mac

I ntroduction. Accessing Microsoft PowerPoint. Anatomy of a PowerPoint Window

Excel basics. Before you begin. What you'll learn. Requirements. Estimated time to complete:

Customizing forms and writing QuickBooks Letters

Task Force on Technology / EXCEL

Configuring a Macintosh Laptop to Use Multiple Displays

How to Develop Accessible Linux Applications

Introduction. POP and IMAP Servers. MAC1028 June 2007

Draw pie charts in Excel

Microsoft Office. Mail Merge in Microsoft Word

Acrobat X Pro Accessible Forms and Interactive Documents

MERLIN. The Quick Start Guide to professional project management ProjectWizards GmbH, Melle, Germany. All rights reserved.

Handout: Word 2010 Tips and Shortcuts

Intro to Excel spreadsheets

HOW TO ORGANIZE PICTURES

Digital Marketing EasyEditor Guide Dynamic

Creating a Poster in PowerPoint A. Set Up Your Poster

Pivot Tables & Pivot Charts

MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool

Mac OS X (Leopard) The Basics

We are going to investigate what happens when we draw the three angle bisectors of a triangle using Geometer s Sketchpad.

Microsoft Excel Basics

Getting Started with Excel Table of Contents

A LITTLE PROMISE FROM YOU

Using a USB Flash Drive to Back Up Your Data Files on a Mac Computer

Excel Pivot Tables. Blue Pecan Computer Training Ltd - Onsite Training Provider :: :: info@bluepecan.co.

Microsoft Excel 2010 Part 3: Advanced Excel

Excel Tutorial. Bio 150B Excel Tutorial 1

Excel Intermediate Session 2: Charts and Tables

Macintosh System OSX #1

Using Microsoft Access

In this example, Mrs. Smith is looking to create graphs that represent the ethnic diversity of the 24 students in her 4 th grade class.

Creating Posters in Excel (2007 & 2010)

Welcome to CD Burning with AudibleManager

Client Marketing: Sets

Using the HOCK flash cards in Anki on Windows, Mac, mobile and web

Entourage - an Introduction to

How to create and personalize a PDF portfolio

This activity will show you how to draw graphs of algebraic functions in Excel.

Microsoft PowerPoint Exercises 4

Creating tables of contents and figures in Word 2013

Event processing in Java: what happens when you click?

Installing Java 5.0 and Eclipse on Mac OS X

GUIs with Swing. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2012

Snap Server Manager Section 508 Report

These instructions were tested on OS X Earlier or later versions may have slight or major differences in how things work and appear.

Introduction To Microsoft Office PowerPoint Bob Booth July 2008 AP-PPT5

How to rotoscope in Adobe After Effects

Lead Management System

Search help. More on Office.com: images templates

GUI and Web Programming

Getting Started on the Computer With Mouseaerobics! Windows XP

Fireworks 3 Animation and Rollovers

A Quick Start Guide to Using PowerPoint For Image-based Presentations

ABOUT THIS DOCUMENT ABOUT CHARTS/COMMON TERMINOLOGY

Welcome to the First Step Webinar!

paragraph(s). The bottom mark is for all following lines in that paragraph. The rectangle below the marks moves both marks at the same time.

Using the SAS Enterprise Guide (Version 4.2)

Manual English KOI Desktop App 2.0.x

Everyday Excel Stuff Excel Day Planner Organizer Reference Guide

Linux provides two basic types of interface for you to use when working with your

einstruction CPS (Clicker) Instructions

Excel Using Pivot Tables

Stored Documents and the FileCabinet

Excel macros made easy

Using Lync Web App

WebEx Sharing Resources

Snap 9 Professional s Scanning Module

Test Generator. Creating Tests

What's New in QuarkXPress 10

What is Microsoft PowerPoint?

Microsoft Word Revising Word Documents Using Markup Tools

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

Summary of important mathematical operations and formulas (from first tutorial):

MS WORD 2007 (PC) Macros and Track Changes Please note the latest Macintosh version of MS Word does not have Macros.

SECTION I: PREFERENCES & DATA MANAGEMENT 4 SECTION II. SHORT TERM PLANNING 9

Transcription:

administrivia today interface guidelines MVC event-based programming assignment 4 any questions? exam next Wednesday review slides are posted Monday s class is optional review/intro to Java 1

guidelines each platform defines interface guidelines describe standard look&feel not a standard less stringent than that not an API defines how program should look not how to implement it 2

guidelines many guidelines exist Apple Human Interface Guidelines original widely used, comprehensive defines Mac look and feel constantly updated others have followed Java Look and Feel Design Guidelines OpenStep User Interface Guidelines User Interface Guidelines MS Windows KDE User Interface Guidelines Gnome User Interface Guidelines 3

Aqua HIG current Apple guideline for Aqua 394 pages contents: Part 1: Design Fundamentals The Design Process Characteristics of Great Software Human Interface Design Prioritizing Design Guidelines 4

Aqua HIG contents continued Part 2: The Macintosh Experience The Mac OS X Environment Using Mac OS X Technologies Address Book, Animation,... Speech, User Assistance Software Installation and Software Updates 5

Aqua HIG contents continued Part 3: Aqua Interface User Input Drag and Drop Text Icons Pointers Menus Windows Controls Layout Guidelines 6

private guidelines some companies define their own sometimes called style sheet defines look&feel of their products describe specialization of platform guidelines may violate platform l&f can give common feel across platforms important part of branding 7

Guideline vs. Principles Preece distinguishes guidelines from principles guidelines give specific advice designed to yield specific l&f default button should be colored light blue principles give general guidance must be applied to each decision appropriately layout should follow natural flow 8

just do it this marks the end of design consideration from here we worry about actually building the interface that has been designed 9

UI abstraction need abstraction of interface before designing code many existing models almost all have common ancestor Model-View-Controller developed in Smalltalk 80 early OO system 10

ancient history before gui, apps can be thought of as: input processing output mvc designed to move this into gui controller model view CIS4140-15 MVC 11

Model concept of MVC simple one or more underlying objects provide behaviors of application designed in any traditional manner not user interface code called Model 12

Business model sometimes referred to as business logic business objects business layer provides meaning/definition of data CIS4140-15 MVC 13

View some pieces exported to user each of these provides class to display themselves called View obviously UI code how information is displayed how status of program is displayed 14

Controller some pieces can be controlled by user usually subset of viewed pieces (hard to change what you can t see) each of these provides class to modify themselves called Controller also obviously UI code all user input 15

MVC traditional MVC picture is View Model Controller 16

MVC that really describes single class more realistic for application is Model Model Model View View View Controller Controller Controller 17

MVC example consider a tic-tac-toe board board itself is model remembers which positions have X or O checks to see if there is a winner display (view) shows the state of the board highlights a winning row/column/diagonal control senses click in square CIS4140-15 MVC 18

mvc example - model centric when user clicks on empty position Controller t controller notices click converts x,y click into square on board tells model about change Model model checks for legal move tells view that board has changed View view asks model for current state draws new board CIS4140-15 MVC 19

refining MVC MVC is over-simplistic like many abstractions first issue is view/controller split often want to directly manipulate display one class may serve both roles more often than not still serving two purposes useful to explicitly remember both 20

Controlling view part of control often controls view control what gets shown and how its shown sometimes MVC drawn as View Model Controller 21

mvc example - controller centric when user clicks on empty position Controller t controller notices click converts x,y click into square on board tells model about change Model View model checks for legal move controller tells view about change view asks model for current state draws new board CIS4140-15 MVC 22

PAC model slowly nexus shifting to controller PAC model takes this all the way Presentation-Abstraction-Controls developed by Coutaz Control is now central only connection from abstraction to presentation 23

PAC PAC breaks direct P-A connection Presentation Abstraction Controller 24

MVC communication choice as to meaning of arrows can be direct (calls) can be indirect (events) easiest to implement everything as direct calls need control/view class for each model class forces synchronous behavior 25

callbacks to share control classes use callbacks control class defines callbacks model register call backs to be called by control class under specified circumstances same button code for all controls each button has different callback functions registered by model 26

callbacks callbacks common in C/C++ in C model defines functions setsquare11() setsquare12(),... for each button, add appropriate callback registerbuttoncallback(buttonsq11,setsquare11)... exact details depends on library CIS4140-15 MVC 27

events events takes this one step further whenever interesting occurrence generate an event interested parties listen for events must register interest event announced to all interested parties 28

events events more common in more recent java, c#, many C++ libs, flex,... model listens for events on buttons buttonsq11.addlistener(this)... when a button is clicked actionperformed called on model with event saying which button was clicked CIS4140-15 MVC 29

event advantages events offer 2 notable differences can mostly be seen as advantages many event listeners can register gives more flexibility could have multiple views at once could have multiple pieces controlled still retains anonymous connections advantage of callbacks 30

asynchronous events are also asynchronous event raiser need not wait for listener to finish processing normally required in callback listener can combine multiple events important for performance if updates happen frequently works well across threads UI responsive while application works 31

UI events all modern GUI systems event-based windowing system generates events for mouse clicks for key strokes for window becoming exposed for menu selection etc. 32

using events system sends event to appropriate control for mouse clicks sent to whatever was clicked on if not handled there may propagate to parent 33

focus for keystrokes, event sent to control with focus platforms control focus differently focus window may be last clicked in focus window may be current mouse location window defines focus control within it often part of GUI API 34

programming GUIs programming GUI mostly 2 steps create controls in right place with right label, etc. listen for events register handlers on appropriate controls links up control to underlying application 35

event-based programming event-based programming is very different feel from traditional lots of little actions no overall flow of control for GUI event systems user dialog defines flow specific flow from user actions 36