Event-driven Programming

Download Report

Transcript Event-driven Programming

Event-driven
Programming
Robin Burke
IT 130
Fall 2004
Outline



The event-driven model
Web applications
Form HTML





forms
buttons
text boxes
accessing form content
Handlers


onClick
onChange
Imperative programming

Program


User



defines a series of operations
invokes program
waits for result
"Batch" processing
Event-driven programming




Modern applications are event-driven
Different kind of programming from sequential (batch) execution
 programmer does not control when code is executed
 user controls that
Programmer provides capabilities
 the user invokes them
 may be multiple ways to do the same thing
Basic idea = "event handlers"
 small bits of code that the application calls
 when certain events occur
Event-driven programming
cont'd



Imperative program
 load payroll data
 do payroll computation
 output checks
Event-oriented program
 establish payroll application interface
 associate loading routine with "load" menu item
 associate payroll computation with "compute" menu option
 associate check printing operation with "print" menu options
User is in charge of the sequence
Basic idea

Events are generated



user actions (clicking, moving mouse)
browser actions (loading, closing)
To use an event, the programmer



writes JavaScript code
associates it with the appropriate document element
associates it with the appropriate event
Pieces we need

New HTML elements


forms
interface widgets


New HTML attributes


buttons, text boxes, etc.
event generation
New JavaScript capabilities

associate code with events
Web application

Application


"A complete, self-contained program that
performs a specific function directly for the user"
Web application

an application delivered over the WWW
Web applications

Core of web development



Not in our scope



90% of the web's "pages" are generated from user input
only 10% are static pages
IT 230 teaches how to build those kinds of applications
we will not use forms as input to applications
But



web applications need input
input comes from HTML forms
we can use form element to explore event handling
Example applications


Course online
Any search engine
What all these share...


The need to get user input from a web page
Format of input


Interaction idea


name-value pair
web form
How to get from user?

depends on the data
Form elements

Form element


identify a part of the page where the user can
input data
Input element



specific data items
name and value attributes
user can change the value attribute
Input elements



name and value attributes
user can change the value attribute
how depends on the type



text field
selection list
radio button, etc
Example
Input elements

Treated like other page elements



can be organized into paragraph, tables, etc.
Form layout is almost always table-based
All use the same base element


INPUT
what kind of input controlled by the type attribute
Input elements
Textarea

for multi-line input

<textarea name="message" rows=4 cols=40
wrap="virtual"></textarea>
Select / Option

for menus and lists
<select size="3">
<option>BS
<option>BS
<option>BA
<option>BS
...
</select>
CGA-DES</option>
CGA-DEV</option>
DC</option>
DC</option>
Input elements we will use

type="button"



rendered as a "raised" rectangle
user can click
type="text"



rendered as an "indented" box
can display text
user can enter text
Examples

Button


<input type="button" value="Click Here for Lucky Number" />
Text box

<input type="text" name="fahrBox" size="10" value "" />

more typical (with label)

Enter a temperature in degrees Fahrenheit: <input
type="text" name="fahrBox" size="10" value "" />
Events

Any HTML element can generate events


many different types
Commonly-used

button  click event


when the user clicks on the button
text  change event

when the user changes the value
Linking element and event

event handler attribute



Example


when the event occurs on that element
the JavaScript statement will execute
onClick="Convert();"
In Element

<input type="button" value="Convert to Celsius"
onClick="Convert();" />
Example

lucky.html
Programming

rollem.html
Interacting with form values

Form data




Change the value of a form element


name / value pairs
processed by the server
can also be manipulated by JavaScript
changes what the user sees
Linked to events

we can create simple browser-based applications
Syntax


Refer to subparts using dot (.) syntax
Format


Getting a value


document.FORM_NAME.ELEMENT_NAME.value
tempF = document.TempForm.fahrBox.value;
Setting a value

document.TempForm.celsiusBox.value = tempC;
Examples


lucky1.html
convert1.html
Programming

convert2.html
Dynamic HTML

JavaScript can alter many HTML properties



"dynamic HTML"
we see more of this later in the class
Example

alter the src attribute of an img element

pics.html
onChange event

onClick event


For text elements




user presses a button
onChange event
when the user alters the contents
and then clicks outside the element
Example

copybox.html
Homework #5

Metric conversions




two conversions work
inches <--> cm
feet <--> meters
You need to add

miles <--> km
Structure

convert.js


hwk5.html


a library with the conversion functions
the page that interacts with the user
Tasks



add lines for miles / km and text elements
add functions that handle onChange events
add conversion functions to convert.js
Advice

Start early




45-50 lines of code to write
Use cut, paste and edit!
Don't forget documentation
Test each step
Wednesday



Lab (Rm 722)
Forms and Events
Good practice for the homework