Event processing in Java: what happens when you click?

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Event processing in Java: what happens when you click?"

Transcription

1 Event processing in Java: what happens when you click? Alan Dix In the HCI book chapter 8 (fig 8.5, p. 298), notification-based user interface programming is described. Java uses this paradigm and you work by registering listeners which are called by the Java runtime system when users perform some action such as click on a button or select an item from a list. We are going to pick up this story after listeners have been attached to events and go through the series of things that happen. Underlying the way Java UIs work is the UI thread. This manages two complimentary paths of activity in the UI: (i) managing user interaction and dealing with user actions and (ii) updating the screen (painting). This model is common to many other GUI platforms including lower level Windows programming. Most of your code to do things will run in the UI thread as part of the response to user actions. However, if you use standard Swing components you may never explicitly write code that executes as part of the paint activity it is only when you need to produce a custom component and need to use direct graphics calls to draw lines, etc. that you may need to create a custom paint method. We ll go through the cycle of activities that typically occur when a user clicks the mouse. tracing the flow between these two paths of activity in the UI thread and your own code. Figure 1 shows an overview of this process and we ll go through each step in detail. Fig 1. the event-paint cycle

2 Stage 1 the user clicks When the user presses or releases a mouse button, moves the mouse or types on the keyboard an event is generated deep in the system. At the operating system level this is first channelled to the right application depending on what windows are visible, which application has control of the keyboard etc. Assuming this is your java application, this eventually ends up in the Java runtime environment, which does a similar job deciding which component the event should be directed to. It needs to take into account that components may be placed on top of one another (e.g. when a combo-box menu hides part of the panel beneath) or not be active (e.g. in tabbed panels). Stage 2 a listener is called Having found out which component is to receive the event, the Java runtime looks up the relevant registered Listener for the event. So, if you have added a MouseListener then this will be found if the event is a mouse press/release or if the mouse is dragged into or out of the component. If no listener is found for the event a default behaviour is performed sometimes to ignore it, sometimes to pass the event to the component containing the target (e.g. if the component has been added to a JPanel). If you have registered a listener object for the event, then the appropriate method is called. In the case of a mouse click for a MouseListener object, the mouseclicked() method is invoked and your code starts to execute. Stage 3 doing your own things Now your code gets to execute and this will typically mean updating some aspect of your internal state (or Model), setting variables, updating data structures etc. You may just be updating standard Swing components, perhaps setting putting a String into a JTextField however this effectively updates the state of these components. Note however, that your code inside the method is being run in the ui thread. This means that while it is executing no other user input can be processed (although events such as keypresses, mouse clicks etc. will be queued up to be dealt with later). This is quite a good thing if this were not the case and a second user action happened before the first was complete you would have the second event being processed while the first was half way through just imagine what would happen to your data structure Happily you are spared this problem, because there is a single ui thread all the events are serialised and the methods in your code to deal with them get executed one at a time in the right order. However, there is a counter problem: if you do lots of computation in your event handlers, the user interface will freeze until you are done (haven t you see applications just like that!). Normally this is not an issue if you are just updating the odd variable etc. However, if you do really large amounts of computation (e.g. run a simulation), or need to access external resources (read a file, access a database, grab a web resource), then there is a danger that the interface may hang. You can avoid a hung interface by having your own thread to perform complex calculations, wait for network things to happen, etc. but if you do this then you need to be careful about synchronising this with the UI thread but let s assume the actions to perform are simple!

3 Stage 4 calling repaint Normally the effect of the event is to change something that requires the screen to be updated. If not why not? If something has been done then the user needs to know about it! The possible exception would be where the event for some reason had no effect, perhaps clicking over an inactive button in which case does the button clearly show it is inactive? Assuming the screen does need to be updated, you may naturally feel you want your code to start writing to the screen: drawing lines, boxes, displaying text. However, in Java and many UI toolkits and environments you do not do this directly at this point. Instead, this is left to the paint activity. However, you do need to tell the runtime system that the screen requires updating and to do this you call the repaint() method on components that need to be redrawn. In the case where you are sub-classing a standard component (most likely JComponent or JPanel), this means you just run repaint() and the repaint method of this is called. Note that the repaint() method does not actually repaint the screen! In fact all it does is set an internal screen dirty flag that tells the UI thread that the screen needs to be updated. If you are using standard Swing components you may never call repaint() directly, but when, for example, you set the text in JTextField, internally the settext() method will call repaint(). Also if you use a Model-View-Controller model, you may again not call repaint() directly in your Listener, but it will update the Model, the Model will tell the View that it has changed and the View will call repaint()! Note that when you update several components, repaint() will be called several times. The system underneath keeps track of this and builds a list of all the parts of the screen that need to be repainted. Also, if you are calling repaint() and only a small part of your component has changed, you can give it a bounding rectangle to tell it that only a part of it needs to be repainted, that is specify a rectangle that includes all areas of the screen that need to be repainted. Stage 5 ui waiting Often repaint() is the last thing that happens in your listener, but need not be. However, when your listener has finished it returns. At this point the UI thread will catch up on any missed user events (if your listener did do lots of computation and took a long time!) calling the relevant listeners in order, but most often there are none and it simply waits for more user interaction. And if there are no user events to process Stage 6 the paint activity enters the action When the UI thread has no user events to process it is free to update the screen if necessary. It checks whether the dirty flag has been set and if it has, the screen needs updating. It needs to work out which portions of which components need to be repainted and then asks each component to draw itself on screen by calling its paint() method. If there are several overlapping components it will draw them backmost first, so that the foremost component gets drawn on top. Note that repainting may also occur when the events are internally generated, such as receiving a network message, or due to user actions that are not obviously to do

4 with the application, such as resizing a window, or exposing it by closing another window. Stage 7 component paint thyself Eventually your component gets to actually draw itself on screen. For standard Swing components this all happens in the Swing code, but if you want to do something special you can override the default paint method and write your own. In the case of a simple component you can override paint() directly, but if you are creating a custom component that may contain other components (e.g. if you want a standard button on you custom component), then instead you may override paintcomponent(). The default paint method calls this first to paint the background and then one by one calls the paint() method on its sub-components. Your paint method is passed a Graphics object. This is effectively a handle or way of accessing the portion of screen to paint to, although often is an off-screen buffer that is copied to the screen proper when you have finished. The Graphics object can be drawn onto with lines, geometric shapes, text and images (there be dragons!). The model while you are in paint() is of adding things one on top of another. If you draw some text and then draw a rectangle overlapping the text, the rectangle will cover the text (unless it is drawn in a translucent colour). However, note that if you draw a rectangle on screen when paint is called one time and do not draw it when it is called again, the original rectangle will disappear the model is that just before paint the relevant area of screen is wiped clean; you start with a blank canvas every time. This is why it important that you maintain a model of your internal state (whether this is a special class or just some variables), which you can refer to when painting the screen. In most toolkits including Java AWT/Swing, anything you draw is clipped to the region the paint thread wants redrawn. This means you do not have to worry about drawing things near the edge of the screen that might draw outside its borders, or when your window is partially obscured. However, when you have a very complex screen, you may want to use this fact and not bother to draw things that will fall outside the area being repainted. To do this you can look at the Graphics object and ask for its clipping region. However, you have to be careful to redraw everything that overlaps the region otherwise parts of things will disappear from screen. For even moderately complex screen layouts I usually find it easier to simply redraw everything. but do remember back-to-front drawing order. Stage 8 and so to rest The paint() method returns. If the Graphics object was actually pointing to a temporary off-screen buffer, this is copied to the screen and the paint activity waits for the screen to be again marked dirty by repaint(), and the UI thread waits all is peaceful in the world of the Java GUI until the next user interaction!

5 Unexpected events and the birthday surprise For simple single-user interfaces each user event gets processed and the screen updated before the next event arrives. People have a maximum rate at which they can type or click and the machine is fast! The exception is dragging and draggingrelated events such as slider movement, which can occur very rapidly, but even these are compressed a little by the runtime system. Instead of every single pixel movement it often clumps these together so you get a single movement event covering a substantial distance. However, if events can occur from outside (as in a chat program), or from things running independently inside (such as a thread doing lots of computation), you may get events occurring close to one another and not necessarily in the order you expect. The effects of this can sometimes be innocuous, but can also be disastrous. Imagine a network event occurs part way through your mouseclick handler. The network event is likely to be picked up by a different thread in your program that was listening to the network and may start some computation. Both are running concurrently and start to update the internal state at best things will go awry at worst your program may crash Similar things would happen if the network event happened part-way through your paint() method being executed. The paint would be unlikely to update the state, but may try to access state that is half-way through being modified by the network event handler again at best screen drawn with inconsistent data, at worst an Exception in the UI thread. When you test programs you often miss these unlikely events, but sooner or later they come back to haunt you! It may seem that given how little time the screen repainting, user event processing and other event handling takes, the likelihood of two things happening close enough to one another to interfere is very low. Unfortunately although the likelihood of any particular event hitting another is low, the likelihood that some event do so will is usually high. This is because of the birthday surprise property! As I demonstrated in the lecture this is a very impressive party trick. If there are around 30 people in a room you say I bet two of you have the same birthday. Each person thinks that with 30 people and 365 days in the year, it is pretty sparse so there are unlikely to be 2 people on the same day. In fact the opposite is true. Although for any particular person the likelihood of having the same birthday as any other person is low, and with 30 people only about a 1/12 chance that someone will have the same birthday as you, the birthdays have to be different for every possible pair of people and the number of pairs goes up with the square of the number of people. As we go through the people, person A says their birthday, then person B says theirs. There is only a 1/365 chance that this is the same as A. Then person C says their birthday and this time there is a 2/365 chance it is either the same as A or B. Person D has a 3/365 chance of having a clash. In order to have NO clashes each has to be different from ALL the rest. The exact probability of 30 people all having different birthdays (getting rid of the feb 29 birthdays before we start!) is: (1-1/365) * (1-2/365) * ( 1-3/365). * (1-29/365)

6 This is hard to calculate exactly (big numbers), but is approximately: exp( 30*29/2*365) = In general with N people exp( N*(N-1)/2*365) When N gets bigger than square root of 2*365 (that is about 27) this starts to get small with 30 people at least two times out of three you will win the bet Fig 2. birthday surprise number of pairs increases rapidly For events occurring the same surprise clashes occur. A short while ago I was reviewing some open-source ecommerce software. The software generated unique transaction ids to send to the credit card payment gateway. To do this it used the time in seconds (to be fair based on example code from the gateway provider!). The software was aimed at low volume sites, perhaps a few hundred transactions a day. they probably reasoned: 86 thousand seconds per day, say 500 transactions, no problem. But just like the birthdays the likelihood of clashes increase with the square of the number of transactions. In this case with more than 346 transactions a day there is a 50:50 chance of getting a clash any day this might mean a customer getting billed for the wrong thing, not charged at all, etc. I almost did the same once, but using milliseconds as id this time 86 million milliseconds a day. However, more then transactions and you are close to 50:50 for a hit! So, even if the number of events from different sources appears reasonably low, if you do not explicitly use some form of locking or semaphore to prevent simultaneous access to your internal state variables or model, sooner or later you will get problems. See also: Wolfram Research (2005). MathWorld Birthday Problem. (accessed 12/11/2005)

GUI Event-Driven Programming

GUI Event-Driven Programming GUI Event-Driven Programming CSE 331 Software Design & Implementation Slides contain content by Hal Perkins and Michael Hotan 1 Outline User events and callbacks Event objects Event listeners Registering

More information

So you want to create an Email a Friend action

So you want to create an Email a Friend action So you want to create an Email a Friend action This help file will take you through all the steps on how to create a simple and effective email a friend action. It doesn t cover the advanced features;

More information

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

GUIs with Swing. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2012 GUIs with Swing Principles of Software Construction: Objects, Design, and Concurrency Jonathan Aldrich and Charlie Garrod Fall 2012 Slides copyright 2012 by Jeffrey Eppinger, Jonathan Aldrich, William

More information

Stress Testing Technologies for Citrix MetaFrame. Michael G. Norman, CEO December 5, 2001

Stress Testing Technologies for Citrix MetaFrame. Michael G. Norman, CEO December 5, 2001 Stress Testing Technologies for Citrix MetaFrame Michael G. Norman, CEO December 5, 2001 Scapa Technologies Contents Executive Summary... 1 Introduction... 1 Approaches to Stress Testing...1 Windows Applications...1

More information

Swing and GUI Programming

Swing and GUI Programming Swing and GUI Programming Lecture 16 CGS 3416 Fall 2015 November 23, 2015 Graphics classes In the original version of Java, graphics components were in the AWT library (Abstract Windows Toolkit) Was okay

More information

Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint

Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint While it is, of course, possible to create a Research Day poster using a graphics editing programme such as Adobe

More information

INSTRUCTIONS: Covers vol 1: chaps 9, 10, 14; vol 2: 1, 3; and the Mah Jong project

INSTRUCTIONS: Covers vol 1: chaps 9, 10, 14; vol 2: 1, 3; and the Mah Jong project Sample Final CS 3230 INSTRUCTIONS: Covers vol 1: chaps 9, 10, 14; vol 2: 1, 3; and the Mah Jong project 1. Consider the following fragments of code and choose the most accurate description. (Note that

More information

How to Use New Relic Custom Dashboards & Why You d Want To

How to Use New Relic Custom Dashboards & Why You d Want To TUTORIAL How to Use New Relic Custom Dashboards & Why You d Want To by Alan Skorkin Contents Introduction 3 Why Use Custom Dashboards at All? 4 Creating an Overview Dashboard from Existing Charts 4 Creating

More information

If you know exactly how you want your business forms to look and don t mind detail

If you know exactly how you want your business forms to look and don t mind detail Advanced Form Customization APPENDIX E If you know exactly how you want your business forms to look and don t mind detail work, you can customize QuickBooks forms however you want. With QuickBooks Layout

More information

Introduction to Google SketchUp (Mac Version)

Introduction to Google SketchUp (Mac Version) Introduction to Google SketchUp (Mac Version) This guide is handy to read if you need some basic knowledge to get started using SketchUp. You will see how to download and install Sketchup, and learn how

More information

http://netbeans.org/kb/docs/java/gui-functionality.html?print=yes

http://netbeans.org/kb/docs/java/gui-functionality.html?print=yes Page 1 of 6 Introduction to GUI Building Contributed by Saleem Gul and Tomas Pavek, maintained by Ruth Kusterer and Irina Filippova This beginner tutorial teaches you how to create a simple graphical user

More information

Introduction to MS WINDOWS XP

Introduction to MS WINDOWS XP Introduction to MS WINDOWS XP Mouse Desktop Windows Applications File handling Introduction to MS Windows XP 2 Table of Contents What is Windows XP?... 3 Windows within Windows... 3 The Desktop... 3 The

More information

ANDROID GUEST GUIDE. Remote Support & Management PC Tablet - Smartphone. 1. An Introduction. Host module on your PC or device

ANDROID GUEST GUIDE. Remote Support & Management PC Tablet - Smartphone. 1. An Introduction. Host module on your PC or device ANDROID GUEST GUIDE Remote Support & Management PC Tablet - Smartphone Remote Desktop Guest module on your Android device Host module on your PC or device 1. An Introduction WiseMo develops software for

More information

Mouse Event Handling (cont.)

Mouse Event Handling (cont.) GUI Components: Part II Mouse Event Handling (cont.) Each mouse event-handling method receives a MouseEvent object that contains information about the mouse event that occurred, including the x- and y-coordinates

More information

Sage Accountants Business Cloud EasyEditor Quick Start Guide

Sage Accountants Business Cloud EasyEditor Quick Start Guide Sage Accountants Business Cloud EasyEditor Quick Start Guide VERSION 1.0 September 2013 Contents Introduction 3 Overview of the interface 4 Working with elements 6 Adding and moving elements 7 Resizing

More information

Smart Board Basics. December, 2009. Rebecca Clemente Department of Education

Smart Board Basics. December, 2009. Rebecca Clemente Department of Education Smart Board Basics December, 2009 Rebecca Clemente Department of Education Contents Obtaining the software... 3 What your students will need... 3 Writing in the Notebook... 4 Saving... 5 Change handwriting

More information

Scratch Making Multimedia Stories + Books

Scratch Making Multimedia Stories + Books Scratch Making Multimedia Stories + Books Scratch allows you to make a variety of stories and books by adding text to pages. You can also add the normal animated sprites, music and sounds to make multimedia

More information

Triggers & Actions 10

Triggers & Actions 10 Triggers & Actions 10 CHAPTER Introduction Triggers and actions are the building blocks that you can use to create interactivity and custom features. Once you understand how these building blocks work,

More information

Getting FileMaker Server 11 and IIS 7.x to Work with SSL. By Todd Duell

Getting FileMaker Server 11 and IIS 7.x to Work with SSL. By Todd Duell Getting FileMaker Server 11 and IIS 7.x to Work with SSL Enable FileMaker Server to communicate with IIS Server using an SSL certificate. By Todd Duell FileMaker Server 11 installs cleanly with IIS Server

More information

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

administrivia today assignment 4 exam next Wednesday interface guidelines MVC event-based programming any questions? 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

More information

DESIGN A WEB SITE USING PUBLISHER Before you begin, plan your Web site

DESIGN A WEB SITE USING PUBLISHER Before you begin, plan your Web site Page 1 of 22 DESIGN A WEB SITE USING PUBLISHER Before you begin, plan your Web site Before you create your Web site, ask yourself these questions: What do I want the site to do? Whom do I want to visit

More information

Week 2 Practical Objects and Turtles

Week 2 Practical Objects and Turtles Week 2 Practical Objects and Turtles Aims and Objectives Your aim in this practical is: to practise the creation and use of objects in Java By the end of this practical you should be able to: create objects

More information

Dreamweaver and Fireworks MX Integration Brian Hogan

Dreamweaver and Fireworks MX Integration Brian Hogan Dreamweaver and Fireworks MX Integration Brian Hogan This tutorial will take you through the necessary steps to create a template-based web site using Macromedia Dreamweaver and Macromedia Fireworks. The

More information

SANbox Manager Release Notes Version 1.03.28 50208-06 Rev A

SANbox Manager Release Notes Version 1.03.28 50208-06 Rev A SANbox Manager Release Notes Version 1.03.28 50208-06 Rev A This software is licensed by QLogic for use by its customers only. Copyright (c) 2001 QLogic Corporation All rights reserved Version 1.03.28

More information

MiniDraw Introducing a framework... and a few patterns

MiniDraw Introducing a framework... and a few patterns MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation

More information

On event-driven programming. Java GUI programming. On event-driven programming (cont.) AWT vs. Swing

On event-driven programming. Java GUI programming. On event-driven programming (cont.) AWT vs. Swing On event-driven programming Java GUI programming a user interface combines three functions: input, output, and data handling in batch-oriented processing the control of execution is within the program

More information

How-to Guide: MIT DLC Drupal Cloud Theme

How-to Guide: MIT DLC Drupal Cloud Theme How-to Guide: MIT DLC Drupal Cloud Theme This guide will show you how to take your initial Drupal Cloud site... and turn it into something more like this, using the MIT DLC Drupal Cloud theme. See this

More information

Assignment # 2: Design Patterns and GUIs

Assignment # 2: Design Patterns and GUIs CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs

More information

Setting up VPN and Remote Desktop for Home Use

Setting up VPN and Remote Desktop for Home Use Setting up VPN and Remote Desktop for Home Use Contents I. Prepare Your Work Computer... 1 II. Prepare Your Home Computer... 2 III. Run the VPN Client... 3 IV. Remote Connect to Your Work Computer... 4

More information

University of Bolton.

University of Bolton. Text University of Bolton. The screen shots used in this workbook are from copyrighted licensed works and the copyright for them is most likely owned by the publishers of the content. It is believed that

More information

Troubleshooting / FAQ

Troubleshooting / FAQ Troubleshooting / FAQ Routers / Firewalls I can't connect to my server from outside of my internal network. The server's IP is 10.0.1.23, but I can't use that IP from a friend's computer. How do I get

More information

Hello Purr. What You ll Learn

Hello Purr. What You ll Learn Chapter 1 Hello Purr This chapter gets you started building apps. It presents the key elements of App Inventor the Component Designer and the Blocks Editor and leads you through the basic steps of creating

More information

Q. The Phone Manager call banner disappears after being displayed for a couple of seconds...5 Q. The Phone Manager icon in the taskbar is blue and

Q. The Phone Manager call banner disappears after being displayed for a couple of seconds...5 Q. The Phone Manager icon in the taskbar is blue and Phone Manager FAQ s Q. The Phone Manager call banner disappears after being displayed for a couple of seconds...5 Q. The Phone Manager icon in the taskbar is blue and has a cross on it. 5 Q. Some options

More information

Human Computer Interface Design Chapter 9 User Interface Software and Tools

Human Computer Interface Design Chapter 9 User Interface Software and Tools Human Computer Interface Design Objective UI software and tools can improve the usability of UI and its code more economical to create and maintain. This lecture introduces a classification of UI and discusses

More information

Creating Icons with CorelDraw

Creating Icons with CorelDraw Creating Icons with CorelDraw Icons come in a variety of standard sizes, usually measured in pixels (short for picture element). All icons occupy a square space, although they may not appear square because

More information

PowerPoint 2003. Copyright 2009 Steve Copley.

PowerPoint 2003. Copyright 2009 Steve Copley. PowerPoint 2003 Copyright 2009 Steve Copley www.igcseict.info This work is licensed under the Creative Commons Attribution Non-Commercial 3.0 License To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/

More information

PowerPoint Contents 1.0 POWERPOINT INTRODUCTION POWERPOINT TERMS STARTING POWERPOINT POWERPOINT S OPENING WINDOW 4

PowerPoint Contents 1.0 POWERPOINT INTRODUCTION POWERPOINT TERMS STARTING POWERPOINT POWERPOINT S OPENING WINDOW 4 Contents PowerPoint 2003 1.0 POWERPOINT INTRODUCTION 2 2.0 POWERPOINT TERMS 2 3.0 STARTING POWERPOINT 3 4.0 POWERPOINT S OPENING WINDOW 4 5.0 CREATE A NEW PRESENTATION 5 6.0 EDITING SLIDES 7 7.0 USING

More information

Step 1: Setting up the Document/Poster

Step 1: Setting up the Document/Poster Step 1: Setting up the Document/Poster Upon starting a new document, you will arrive at this setup screen. Today we want a poster that is 4 feet (48 inches) wide and 3 feet tall. Under width, type 48 in

More information

Software Licensing Management North Carolina State University software.ncsu.edu

Software Licensing Management North Carolina State University software.ncsu.edu When Installing Erdas Imagine: A.) Install the Intergraph License Administration Tool because this provides you with the license for the product so that it can actually run on your machine B.) Secondly,

More information

Working with Applets. Chapter Introduction

Working with Applets. Chapter Introduction Chapter 7 Working with Applets 7.1 Introduction The main purpose of this class is to learn about 3D computer graphics. Java 2, our platform of development, provides the programmer with several tools to

More information

Citrix Server: Citrix Server work as a remote connection by users

Citrix Server: Citrix Server work as a remote connection by users PERFORMANCETESTING FOR CITRIXUSINGLOADRUNNER BESTPRACTICES Presented By Rupesh Garg & Saket Bihari Wipro Technologies. ABSTRACT HP s industry standard load testing product Load Runner has been customized

More information

Animations in DrRacket

Animations in DrRacket 90 Chapter 6 Animations in DrRacket 6.1 Preliminaries Up to this point we ve been working with static pictures. But it s much more fun and interesting to deal with pictures that change over time and interact

More information

3F6 - Software Engineering and Design. Handout 9 User Interface Design With Markup. Ed Rosten

3F6 - Software Engineering and Design. Handout 9 User Interface Design With Markup. Ed Rosten 3F6 - Software Engineering and Design Handout 9 User Interface Design With Markup Ed Rosten Contents 1. UI Design Process 2. User Types 3. Use Cases 4. User Models 5. Devices and Metaphors 6. Testing 7.

More information

The Job of a Window Manager. Event Driven Programming. Event Handling. Event Driven Programming

The Job of a Window Manager. Event Driven Programming. Event Handling. Event Driven Programming The Job of a Window Manager Event Driven Programming Event driven programming involves writing the handlers and arranging for the handler to be notified when particular events occur. Event Driven Programming

More information

Canterbury Maps Quick Start - Drawing and Printing Tools

Canterbury Maps Quick Start - Drawing and Printing Tools Canterbury Maps Canterbury Maps Quick Start - Drawing and Printing Tools Quick Start Guide Standard GIS Viewer 2 Canterbury Maps Quick Start - Drawing and Printing Tools Introduction This document will

More information

UI Interactive Objects: Widgets. Widgets. Different Types of Widgets. UI Design Elements

UI Interactive Objects: Widgets. Widgets. Different Types of Widgets. UI Design Elements UI Interactive Objects: Widgets UI Design Elements Widgets Interactive objects, basic building blocks Used for input and output of information Graphical objects for UI design Part of UI design is choosing

More information

Adobe Illustrator CS5 Part 1: Introduction to Illustrator

Adobe Illustrator CS5 Part 1: Introduction to Illustrator CALIFORNIA STATE UNIVERSITY, LOS ANGELES INFORMATION TECHNOLOGY SERVICES Adobe Illustrator CS5 Part 1: Introduction to Illustrator Summer 2011, Version 1.0 Table of Contents Introduction...2 Downloading

More information

Software Documentation Guidelines

Software Documentation Guidelines Software Documentation Guidelines In addition to a working program and its source code, you must also author the documents discussed below to gain full credit for the programming project. The fundamental

More information

Create a Job Requisition. Create a Job Requisition. Concept

Create a Job Requisition. Create a Job Requisition. Concept Create a Job Requisition Concept This document explains how a hiring manager can create and submit a requisition to create a job posting. Procedure Use this document to create a job requisition. 1. Click

More information

Sending SMS from FileMaker Pro

Sending SMS from FileMaker Pro Sending SMS from FileMaker Pro About This Tutorial In just a few short years SMS (Short Message Service), sometimes known as texting, has become one of the mainstays of modern communication. With trillions

More information

Using Avaya Flare Experience for Windows

Using Avaya Flare Experience for Windows Using Avaya Flare Experience for Windows Release 9.0 Issue 02.01 September 2013 Contents Chapter 1: About Flare Experience... 5 About Flare Experience... 5 Main window... 6 Button descriptions... 10 Chapter

More information

Drawing a histogram using Excel

Drawing a histogram using Excel Drawing a histogram using Excel STEP 1: Examine the data to decide how many class intervals you need and what the class boundaries should be. (In an assignment you may be told what class boundaries to

More information

Screen display options in Microsoft XP

Screen display options in Microsoft XP Screen display options in Microsoft XP This skill-sheet has been designed to give you a tour of the standard screen display options within Windows XP. Some of these guides will also apply for earlier versions

More information

Avaya Flare Experience for Windows Quick Reference

Avaya Flare Experience for Windows Quick Reference Avaya Flare Experience for Windows Quick Reference Making voice calls Making a voice call using the dialpad 1. Click the Call button under the center spotlight or press the CONTROL + D keys on your keyboard

More information

REALISTIC CAST SHADOW EFFECT

REALISTIC CAST SHADOW EFFECT REALISTIC CAST SHADOW EFFECT Photoshop s Drop Shadow layer style may be great for adding simple shadows to images or text, making them look as if they re floating slightly above their background, but when

More information

ABAP Debugging Tips and Tricks

ABAP Debugging Tips and Tricks Applies to: This article applies to all SAP ABAP based products; however the examples and screen shots are derived from ECC 6.0 system. For more information, visit the ABAP homepage. Summary This article

More information

Working with the New Visio Methodology

Working with the New Visio Methodology Working with the New Visio Methodology 1. Save the template with a new descriptive name (e.g. Verizon Data Center 1.vsd) 2. Place an equipment rack: From the stencil named CommScope Racks and Cabinets,

More information

Hardware is everything on your computer that can be directly touched. Software is the icons, programs, menus, and buttons on your computer.

Hardware is everything on your computer that can be directly touched. Software is the icons, programs, menus, and buttons on your computer. What s a Computer? Computers are devices that let you digitally do almost anything. They do calculations, functions, or operations quickly and efficiently. However, they don t run on their own! You use

More information

After going through this lesson you would be able to:

After going through this lesson you would be able to: 18 :: Data Entry Operations 2 Operating System 2.1 INTRODUCTION The operating system in these days uses a graphical user interface (GUI). Here you do not have to remember all the commands by heart. The

More information

CSCI 1100L: Topics in Computing Lab Lab 06: Microsoft Word Advanced Features

CSCI 1100L: Topics in Computing Lab Lab 06: Microsoft Word Advanced Features CSCI 1100L: Topics in Computing Lab Lab 06: Microsoft Word Advanced Features Purpose: We ll take a look at Microsoft Word this week. This lab will introduce you to several advanced features of Word. You

More information

Programming in Access VBA

Programming in Access VBA PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010

More information

Smart Board Basics. December, Rebecca Clemente Department of Education

Smart Board Basics. December, Rebecca Clemente Department of Education Smart Board Basics December, 2008 Rebecca Clemente Department of Education Contents Obtaining the software... 3 What your students will need... 3 Writing in the Notebook... 4 Saving... 5 Change handwriting

More information

TakeMySelfie ios App Documentation

TakeMySelfie ios App Documentation TakeMySelfie ios App Documentation What is TakeMySelfie ios App? TakeMySelfie App allows a user to take his own picture from front camera. User can apply various photo effects to the front camera. Programmers

More information

Select the name of the application and click on Force Quit.

Select the name of the application and click on Force Quit. Mac and Windows Differences 1. Mouse buttons. The Mac mouse has a single button whereas a Windows mouse has two buttons. To display a contextual menu in a Mac environment, control+click on an object, unless

More information

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System

More information

SketchUp Instructions

SketchUp Instructions SketchUp Instructions Every architect needs to know how to use SketchUp! SketchUp is free from Google just Google it and download to your computer. You can do just about anything with it, but it is especially

More information

Using Microsoft Word. Working With Objects

Using Microsoft Word. Working With Objects Using Microsoft Word Many Word documents will require elements that were created in programs other than Word, such as the picture to the right. Nontext elements in a document are referred to as Objects

More information

Basic tutorial for Dreamweaver CS5

Basic tutorial for Dreamweaver CS5 Basic tutorial for Dreamweaver CS5 Creating a New Website: When you first open up Dreamweaver, a welcome screen introduces the user to some basic options to start creating websites. If you re going to

More information

Finding and Opening Documents

Finding and Opening Documents In this chapter Learn how to get around in the Open File dialog box. See how to navigate through drives and folders and display the files in other folders. Learn how to search for a file when you can t

More information

Paper 10-27 Designing Web Applications: Lessons from SAS User Interface Analysts Todd Barlow, SAS Institute Inc., Cary, NC

Paper 10-27 Designing Web Applications: Lessons from SAS User Interface Analysts Todd Barlow, SAS Institute Inc., Cary, NC Paper 10-27 Designing Web Applications: Lessons from SAS User Interface Analysts Todd Barlow, SAS Institute Inc., Cary, NC ABSTRACT Web application user interfaces combine aspects of non-web GUI design

More information

LESSON 7: IMPORTING AND VECTORIZING A BITMAP IMAGE

LESSON 7: IMPORTING AND VECTORIZING A BITMAP IMAGE LESSON 7: IMPORTING AND VECTORIZING A BITMAP IMAGE In this lesson we ll learn how to import a bitmap logo, transform it into a vector and perform some editing on the vector to clean it up. The concepts

More information

Creating a Newsletter with Microsoft Word

Creating a Newsletter with Microsoft Word Creating a Newsletter with Microsoft Word Frank Schneemann In this assignment we are going to use Microsoft Word to create a newsletter that can be used in your classroom instruction. If you already know

More information

Introduction to Microsoft Publisher : Tools You May Need

Introduction to Microsoft Publisher : Tools You May Need Introduction to Microsoft Publisher : Tools You May Need 1. Why use Publisher instead of Word for creating fact sheets, brochures, posters, newsletters, etc.? While both Word and Publisher can create documents

More information

Computer Science 210: Data Structures

Computer Science 210: Data Structures Computer Science 210: Data Structures Summary Today GUIs in Java using Swing in-class: a Scribbler program READING: Java online Docs GUIs in Java use Swing toolkit for designing GUIs implemented on top

More information

A Parents' Guide to. 2014 ConnectSafely.org

A Parents' Guide to. 2014 ConnectSafely.org A Parents' Guide to 2014 ConnectSafely.org Top 5 Questions Parents Have About Instagram 1. Why do kids love Instagram? Because they love media, sharing it and socializing with it on their phones, and Instagram

More information

Intellect Platform - Tables and Templates Basic Document Management System - A101

Intellect Platform - Tables and Templates Basic Document Management System - A101 Intellect Platform - Tables and Templates Basic Document Management System - A101 Interneer, Inc. 4/12/2010 Created by Erika Keresztyen 2 Tables and Templates - A101 - Basic Document Management System

More information

Setting up VPN and Remote Desktop for Home Use

Setting up VPN and Remote Desktop for Home Use Setting up VPN and Remote Desktop for Home Use Contents I. Prepare Your Work Computer... 1 II. Prepare Your Home Computer... 2 III. Run the VPN Client... 3-4 IV. Remote Connect to Your Work Computer...

More information

A Parents Guide to. 2015 ConnectSafely.org saferinternet.org.uk

A Parents Guide to. 2015 ConnectSafely.org saferinternet.org.uk A Parents Guide to 2015 ConnectSafely.org saferinternet.org.uk At the UK Safer Internet Centre, one of our key objectives is to develop new educational and awareness-raising resources for parents in the

More information

Making Visio Diagrams Come Alive with Data

Making Visio Diagrams Come Alive with Data Making Visio Diagrams Come Alive with Data An Information Commons Workshop Making Visio Diagrams Come Alive with Data Page Workshop Why Add Data to A Diagram? Here are comparisons of a flow chart with

More information

This assignment explores the following topics related to GUI input:

This assignment explores the following topics related to GUI input: 6.831 User Interface Design & Implementation Fall 2004 PS3: Input Models This assignment explores the following topics related to GUI input: event handling; hit detection; dragging; feedback. In this problem

More information

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration Developer Web Age Solutions Inc. USA: 1-877-517-6540 Canada: 1-866-206-4644 Web: http://www.webagesolutions.com Chapter 6 - Introduction

More information

School of Informatics, University of Edinburgh

School of Informatics, University of Edinburgh CS1Bh Lecture Note 13 Event-driven programming The best practice in user-interface code development is the event-driven programming model in which code fragments can be associated with particular events

More information

GUI Components: Part 2

GUI Components: Part 2 GUI Components: Part 2 JComboBox and Using an Anonymous Inner Class for Event Handling A combo box (or drop-down list) enables the user to select one item from a list. Combo boxes are implemented with

More information

CHAPTER 1 HelloPurr. The chapter covers the following topics:

CHAPTER 1 HelloPurr. The chapter covers the following topics: CHAPTER 1 HelloPurr This chapter gets you started building apps. It presents the key elements of App Inventor, the Component Designer and the Blocks Editor, and leads you through the basic steps of creating

More information

Hello. What s inside? Ready to build a website?

Hello. What s inside? Ready to build a website? Beginner s guide Hello Ready to build a website? Our easy-to-use software allows to create and customise the style and layout of your site without you having to understand any coding or HTML. In this guide

More information

Microsoft PowerPoint 2013 Part 2: Notes, Links, & Graphics. Choosing a Design. Adding Content Exercise. Inserting Screen Shots.

Microsoft PowerPoint 2013 Part 2: Notes, Links, & Graphics. Choosing a Design. Adding Content Exercise. Inserting Screen Shots. Microsoft PowerPoint 2013 Part 2: Notes, Links, & Graphics Choosing a Design Open PowerPoint. Click on Blank Presentation. Click on the Design tab. Click on the design tab of your choice. Adding Content

More information

Writer Guide. Chapter 15 Using Forms in Writer

Writer Guide. Chapter 15 Using Forms in Writer Writer Guide Chapter 15 Using Forms in Writer Copyright This document is Copyright 2005 2008 by its contributors as listed in the section titled Authors. You may distribute it and/or modify it under the

More information

REDUCING YOUR MICROSOFT OUTLOOK MAILBOX SIZE

REDUCING YOUR MICROSOFT OUTLOOK MAILBOX SIZE There are several ways to eliminate having too much email on the Exchange mail server. To reduce your mailbox size it is recommended that you practice the following tasks: Delete items from your Mailbox:

More information

ios App for Mobile Website! Documentation!

ios App for Mobile Website! Documentation! ios App for Mobile Website Documentation What is IOS App for Mobile Website? IOS App for Mobile Website allows you to run any website inside it and if that website is responsive or mobile compatible, you

More information

(These instructions are only meant to get you started. They do not include advanced features.)

(These instructions are only meant to get you started. They do not include advanced features.) FrontPage XP/2003 HOW DO I GET STARTED CREATING A WEB PAGE? Previously, the process of creating a page on the World Wide Web was complicated. Hypertext Markup Language (HTML) is a relatively simple computer

More information

Desktop Sharing - Hosting

Desktop Sharing - Hosting Desktop Sharing - Hosting This topic applies to session moderators. It explains how to initiate one-to-many application or desktop sharing. The application sharing option of electa Live allows session

More information

HP LoadRunner. Software Version: 11.00. Ajax TruClient Tips & Tricks

HP LoadRunner. Software Version: 11.00. Ajax TruClient Tips & Tricks HP LoadRunner Software Version: 11.00 Ajax TruClient Tips & Tricks Document Release Date: October 2010 Software Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and

More information

1.00 Lecture 17. Swing

1.00 Lecture 17. Swing 1.00 Lecture 17 Introduction to Swing Reading for next time: Big Java: sections 12.1-12.6 Swing Package of user interface classes for windows, menus, scroll bars, buttons, etc. Independent of hardware

More information

Terminal Four (T4) Site Manager

Terminal Four (T4) Site Manager Terminal Four (T4) Site Manager Contents Terminal Four (T4) Site Manager... 1 Contents... 1 Login... 2 The Toolbar... 3 An example of a University of Exeter page... 5 Add a section... 6 Add content to

More information

Server & Workstation Installation of Client Profiles for Windows

Server & Workstation Installation of Client Profiles for Windows C ase Manag e m e n t by C l i e n t P rofiles Server & Workstation Installation of Client Profiles for Windows T E C H N O L O G Y F O R T H E B U S I N E S S O F L A W General Notes to Prepare for Installing

More information

Examples of GeoGebra Applet Construction

Examples of GeoGebra Applet Construction Examples of GeoGebra Applet Construction A Straight Line Graph In this example we will use GeoGebra to construct a java applet similar to the one displayed in Figure 1. This applet consists of two sliders

More information

Adobe Illustrator CS6. Illustrating Innovative Web Design

Adobe Illustrator CS6. Illustrating Innovative Web Design Overview In this seminar, you will learn how to create a basic graphic in Illustrator, export that image for web use, and apply it as the background for a section of a web page. You will use both Adobe

More information

NetMeeting - User Guide

NetMeeting - User Guide NetMeeting - User Guide 1. To Host a Meeting 1. On the Call menu, click Host Meeting. 2. In Meeting Name, type the meeting name or leave it set to Personal Conference. 3. In Password, type the meeting

More information

SiteBuilder 2.1 Manual

SiteBuilder 2.1 Manual SiteBuilder 2.1 Manual Copyright 2004 Yahoo! Inc. All rights reserved. Yahoo! SiteBuilder About This Guide With Yahoo! SiteBuilder, you can build a great web site without even knowing HTML. If you can

More information

Tutorial: Creating a form that emails the results to you.

Tutorial: Creating a form that emails the results to you. Tutorial: Creating a form that emails the results to you. 1. Create a new page in your web site Using the Wizard Interface. a) Choose I want to add a form that emails the results to me in the wizard. b)

More information