Event processing in Java: what happens when you click?

Size: px
Start display at page:

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

From this document you will learn the answers to the following questions:

  • How many times is a first event processed?

  • What type of code may never be written as part of the paint activity?

  • What is the repaint method called by the Java runtime system?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sharing Software. Chapter 14

Sharing Software. Chapter 14 Chapter 14 14 Sharing Software Sharing a tool, like a software application, works differently from sharing a document or presentation. When you share software during a meeting, a sharing window opens automatically

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

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

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

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

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

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

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

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

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

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

Create A Collage Of Warped Photos

Create A Collage Of Warped Photos Create A Collage Of Warped Photos In this Adobe Photoshop tutorial, we re going to learn how to create a collage of warped photos. Now, don t go letting your imagination run wild here. When I say warped,

More information

Acrobat 9: Forms. 56 Pages. Acrobat 9: Forms v2.0.0. Windows

Acrobat 9: Forms. 56 Pages. Acrobat 9: Forms v2.0.0. Windows Acrobat 9: Forms Windows Acrobat 9: Forms v2.0.0 2009 56 Pages About IT Training & Education The University Information Technology Services (UITS) IT Training & Education program at Indiana University

More information

How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For

How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For 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

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

Creating Drawings in Pro/ENGINEER

Creating Drawings in Pro/ENGINEER 6 Creating Drawings in Pro/ENGINEER This chapter shows you how to bring the cell phone models and the assembly you ve created into the Pro/ENGINEER Drawing mode to create a drawing. A mechanical drawing

More information

10. THERM DRAWING TIPS

10. THERM DRAWING TIPS 10. THERM DRAWING TIPS 10.1. Drawing Tips The THERM User's Manual describes in detail how to draw cross-sections in THERM. This section of the NFRC Simualation Training Manual presents some additional

More information

Introduction to SketchUp

Introduction to SketchUp Introduction to SketchUp 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 to use your mouse (and

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

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

Part 1 Foundations of object orientation

Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed

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

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

Publishing Geoprocessing Services Tutorial

Publishing Geoprocessing Services Tutorial Publishing Geoprocessing Services Tutorial Copyright 1995-2010 Esri All rights reserved. Table of Contents Tutorial: Publishing a geoprocessing service........................ 3 Copyright 1995-2010 ESRI,

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

The Settings tab: Check Uncheck Uncheck

The Settings tab: Check Uncheck Uncheck Hi! This tutorial shows you, the soon-to-be proud owner of a chatroom application, what the &^$*^*! you are supposed to do to make one. First no, don't do that. Stop it. Really, leave it alone. Good. First,

More information

BetInfo24 Betfair Trading Strategy

BetInfo24 Betfair Trading Strategy BetInfo24 Betfair Trading Strategy All rights reserved BetInfo24 has been identified as the author of this work. The right has been asserted in accordance with the copyright, designs and patents act 1988.

More information

Chapter 15 Using Forms in Writer

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

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

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

Tutorial E D I T C A D. Editing CAD Geodata. TNTmips. and TNTedit

Tutorial E D I T C A D. Editing CAD Geodata. TNTmips. and TNTedit E D I T C A D Tutorial Editing CAD Geodata in TNTmips and TNTedit Before Getting Started This booklet introduces techniques for creating, altering, and updating CAD geospatial objects in the powerful Editor

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

Preparing a Slide Show for Presentation

Preparing a Slide Show for Presentation In this chapter Find out why it s important to put finishing touches on a slide show Learn how to use the slide sorter Explore the use of slide transitions Learn how to change slide color schemes and backgrounds

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

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

CIC 3.0 Basic Client Training

CIC 3.0 Basic Client Training CIC 3.0 Basic Client Training Interaction Client Last Updated December 19, 2008 This document offers training for beginning CIC users. DVS, Inc. 60 Revere Dr., Suite 201 Northbrook, IL 60062 847.564.4387

More information

Tutorial: Get Running with Amos Graphics

Tutorial: Get Running with Amos Graphics Tutorial: Get Running with Amos Graphics Purpose Remember your first statistics class when you sweated through memorizing formulas and laboriously calculating answers with pencil and paper? The professor

More information

Creating Hyperlinks & Buttons InDesign CS6

Creating Hyperlinks & Buttons InDesign CS6 Creating Hyperlinks & Buttons Adobe DPS, InDesign CS6 1 Creating Hyperlinks & Buttons InDesign CS6 Hyperlinks panel overview You can create hyperlinks so that when you export to Adobe PDF or SWF in InDesign,

More information

Welcome, today we will be making this cute little fish come alive. Put the UltimaFish.bmp texture into your Morrowind/Data Files/Textures directory.

Welcome, today we will be making this cute little fish come alive. Put the UltimaFish.bmp texture into your Morrowind/Data Files/Textures directory. The Morrowind Animation Tutorial Written by DarkIllusion This tutorial remains property of DarkIllusion. Revision 0 5 July 2003 Welcome, today we will be making this cute little fish come alive. Put the

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

How to make more money in forex trading. 2003 W. R. Booker & Co. All rights reserved worldwide, forever and ever and ever.

How to make more money in forex trading. 2003 W. R. Booker & Co. All rights reserved worldwide, forever and ever and ever. The 10 Rules How to make more money in forex trading. 2003 W. R. Booker & Co. All rights reserved worldwide, forever and ever and ever. 2 10 Rules Page 2 Rule #1: Never lie to anyone. Never lie to yourself

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

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

The very basic basics of PowerPoint XP

The very basic basics of PowerPoint XP The very basic basics of PowerPoint XP TO START The above window automatically shows when you first start PowerPoint. At this point, there are several options to consider when you start: 1) Do you want

More information

When you and your students are saving your files, under the File menu of MovieMaker, save your file as a project rather than a movie:

When you and your students are saving your files, under the File menu of MovieMaker, save your file as a project rather than a movie: MOVIE MAKER Before you use Movie Maker: Windows Movie Maker is a program that is free with any machine operating Windows XP (which is, basically, the sort of machine that Year Up uses with its students).

More information

Working With Animation: Introduction to Flash

Working With Animation: Introduction to Flash Working With Animation: Introduction to Flash With Adobe Flash, you can create artwork and animations that add motion and visual interest to your Web pages. Flash movies can be interactive users can click

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

Profit Strategies for Small Businesses

Profit Strategies for Small Businesses Profit Strategies for Small Businesses Tackling the Challenges of Internet Marketing If you re a small business owner, your goal is profitability. And marketing is the key to big profits. But small business

More information

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.

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. MS Word, Part 3 & 4 Office 2007 Line Numbering Sometimes it can be helpful to have every line numbered. That way, if someone else is reviewing your document they can tell you exactly which lines they have

More information

Dobbin Day - User Guide

Dobbin Day - User Guide Dobbin Day - User Guide Introduction Dobbin Day is an in running performance form analysis tool. A runner s in-running performance is solely based on the price difference between its BSP (Betfair Starting

More information

Tutorial: Get Running with Amos Graphics

Tutorial: Get Running with Amos Graphics Tutorial: Get Running with Amos Graphics Purpose Remember your first statistics class when you sweated through memorizing formulas and laboriously calculating answers with pencil and paper? The professor

More information

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

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

More information

FEATURES AND FUNCTIONS

FEATURES AND FUNCTIONS SPREAD5 USER GUIDE FEATURES AND FUNCTIONS The Labelled Boxes A The # Number: It s the automatically generated bet number in the current cycle. B Total Outlay: If you don t stipulate your preferred Total

More information

Principles of Software Construction: Objects, Design and Concurrency. GUIs with Swing. toad 15-214. Spring 2013

Principles of Software Construction: Objects, Design and Concurrency. GUIs with Swing. toad 15-214. Spring 2013 Principles of Software Construction: Objects, Design and Concurrency GUIs with Swing 15-214 toad Spring 2013 Christian Kästner Charlie Garrod School of Computer Science 2012-13 C Garrod, C Kästner, J Aldrich,

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

Changing How the Mouse Works in Windows 7

Changing How the Mouse Works in Windows 7 Changing How the Mouse Works in Windows 7 Mada Assistive Technology Center Tel: 00 974 44594050 Fax: 00 974 44594051 Email: info@mada.org.qa Pen Introduction There are several ways to adjust the mouse

More information

Communicate: In Print

Communicate: In Print Communicate: In Print A simple guide Work areas Communicate: In Print has two different modes in which to edit your documents: Create and Adjust modes. These are easily interchangeable and the toolbars

More information

How to Use the Drawing Toolbar in Microsoft Word

How to Use the Drawing Toolbar in Microsoft Word How to Use the Drawing Toolbar in Microsoft Word The drawing toolbar allows you to quickly and easily label pictures (e.g., maps) in a MS Word file. You can add arrows, circle spots, or label with words.

More information

1.0-Scratch Interface 1.1. Valuable Information

1.0-Scratch Interface 1.1. Valuable Information 1.0-Scratch Interface 1.1 Valuable Information The Scratch Interface is divided to three: 1. Stage 2. Sprite/background properties 3. Scratch Action Blocks Building the game by designing the sprites and

More information

Catalog Creator by On-site Custom Software

Catalog Creator by On-site Custom Software Catalog Creator by On-site Custom Software Thank you for purchasing or evaluating this software. If you are only evaluating Catalog Creator, the Free Trial you downloaded is fully-functional and all the

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

Microsoft Word defaults to left justified (aligned) paragraphs. This means that new lines automatically line up with the left margin.

Microsoft Word defaults to left justified (aligned) paragraphs. This means that new lines automatically line up with the left margin. Microsoft Word Part 2 Office 2007 Microsoft Word 2007 Part 2 Alignment Microsoft Word defaults to left justified (aligned) paragraphs. This means that new lines automatically line up with the left margin.

More information

Adobe Dreamweaver CC 14 Tutorial

Adobe Dreamweaver CC 14 Tutorial Adobe Dreamweaver CC 14 Tutorial GETTING STARTED This tutorial focuses on the basic steps involved in creating an attractive, functional website. In using this tutorial you will learn to design a site

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

Synthesys Call Recycling

Synthesys Call Recycling Synthesys Call Recycling Synthesys CRM & Outbound Management 1 SYNTHESYS CALL RECYCLING Introduction... 3 THE RECYCLING DESIGNER...4 The Menu Bar... 5 THE TOOLBARS...6 The Standard Toolbar... 6 The Recycling

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

Your guide to Gmail. Gmail user guide

Your guide to Gmail. Gmail user guide Your guide to Gmail Gmail user guide Welcome to Gmail! This guide outlines some of the key settings and features of Gmail. Getting started How to access your Gmail account page 3 Settings and personalisation

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

Organizing image files in Lightroom part 2

Organizing image files in Lightroom part 2 Organizing image files in Lightroom part 2 Hopefully, after our last issue, you've spent some time working on your folder structure and now have your images organized to be easy to find. Whether you have

More information

Cricut Design Space Reference Guide & Glossary

Cricut Design Space Reference Guide & Glossary Cricut Design Space Reference Guide & Glossary Top Menu Bar Grid On/Off button Panel Menu Side Menu Bar 1 Cricut logo click the Cricut logo at any time to return to the Cricut Design Space landing page.

More information

Lync 2013 Quick Reference Lync Meetings. Join a Lync Meeting. Schedule a Lync Meeting. Do I need a PIN, work number or extension? Set meeting options

Lync 2013 Quick Reference Lync Meetings. Join a Lync Meeting. Schedule a Lync Meeting. Do I need a PIN, work number or extension? Set meeting options Join a Lync Meeting 1. In the meeting request, click Join Lync Meeting or click Join Online in the meeting reminder. 2. On the Join Meeting Audio window, select one of the options: Use Lync (full audio

More information