Event processing in Java: what happens when you click?
|
|
- Joshua Egbert Butler
- 3 years ago
- Views:
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 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 informationSo 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 informationGUIs 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 informationInstructions 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 informationStress 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 informationIf 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 informationIntroduction 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 informationTriggers & 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 informationMouse 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 informationUsing 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 informationHow 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 informationAssignment # 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 informationWeek 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 informationStep 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 informationCanterbury 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 informationSmart 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 informationLESSON 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 informationIntroduction 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 informationTroubleshooting / 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 informationWorking 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 informationDreamweaver 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 informationCreating 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 informationSage 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 informationhttp://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 informationMiniDraw 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 informationBasic 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 informationQ. 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 informationCHAPTER 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 informationDESIGN 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 informationSharing 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 informationSANbox 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 informationANDROID 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 informationDrawing 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 informationPaper 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 informationSketchUp 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 informationSoftware 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 informationGUI 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 informationUsing 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 information3F6 - 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 informationIntroduction 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 informationCreate 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 informationAcrobat 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 informationHow 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 informationThis 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 informationCreating 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 information10. 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 informationIntroduction 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 informationWriter 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 informationServer & 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 informationPart 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 informationAdobe 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 informationHello. 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 informationPublishing 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 informationHello 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 informationThe 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 informationBetInfo24 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 informationChapter 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 informationAnimations 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 informationA 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 informationTutorial 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 informationA 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 informationPreparing 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 informationAvaya 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 informationTakeMySelfie 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 informationCIC 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 informationTutorial: 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 informationCreating 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 informationWelcome, 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 informationGetting 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 informationHow 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 informationREDUCING 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 informationSetting 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 informationThe 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 informationWhen 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 informationWorking 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 informationSoftware 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 informationProfit 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 informationparagraph(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 informationDobbin 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 informationTutorial: 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 informationIf 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 informationFEATURES 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 informationPrinciples 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 informationSiteBuilder 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 informationChanging 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 informationCommunicate: 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 informationHow 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 information1.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 informationCatalog 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 informationSelect 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 informationMicrosoft 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 informationAdobe 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 informationCitrix 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 informationSynthesys 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 informationFinding 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 informationYour 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 informationScreen 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 informationOrganizing 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 informationCricut 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 informationLync 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