SLIDE 1 Direct ct Manipulation
COMS 4170 5 February 2018 No screens
Say your name
SLIDE 2 Goal 1
Build websites that suit the needs and abilities of users
To accomplish a goal, users must execute an operation and evaluate the result
SLIDE 3
Co Comp mputers: Tools for Calculation
SLIDE 4
1963: First Graphical User Interface Ivan Sutherland’s CAD software, Sketchpad
SLIDE 5
1968: Interaction devices for computer use. Douglas Engelbart’s mouse
SLIDE 6 Dir Direct ct M Man anip ipula latio ion Properties
- 1. Objects are represented visually
- 2. Actions are rapid,
incremental and reversible
directly with object representations
SLIDE 7
SLIDE 8
SLIDE 9
SLIDE 10
SLIDE 11
SLIDE 12
SLIDE 13
SLIDE 14 Dir Direct ct M Man anip ipula latio ion Properties
- 1. Objects are represented visually
- 2. Actions are rapid,
incremental and reversible
directly with object representations
Move to trash Resize Move viewport
SLIDE 15
Is this direct manipulation?
SLIDE 16 Is this direct manipulation?
Not direct manipulation Direct manipulation
SLIDE 17 Wh Why y can n Direct Mani nipul pulation n be be good? d?
- 1. Objects are represented visually
- 2. Actions are rapid,
incremental and reversible
directly with object representations
Move to trash Resize Move viewport
SLIDE 18 There is visible feedback the user can evaluate There are visible actions the user can execute
Wh Why y can n Direct Mani nipul pulation n be be good? d?
SLIDE 19 There is visible feedback the user can evaluate There are visible actions the user can execute
Wh Why y can n Direct Mani nipul pulation n be be good? d?
Direct manipulation interfaces are usable because they have executable actions and evaluate- able feedback to achieve a goal
SLIDE 20
Affordances
SLIDE 21 Signifier Perceived Affordance Feedback Affordance Sitting Sitting Test sitting on it. Flat part at knee-height Back panel for support Sturdy wood Butt indentation
Af Afforda danc nce: Wha What can n do do you u wi with h thi his? s?
SLIDE 22 Signifier Perceived Affordance Feedback Affordance Sitting Test sitting on it. Flat part at knee-height Back panel for support Possibly sturdy cans?
Af Afforda danc nce: Wha What can n do do you u wi with h thi his? s?
NOT sitting
SLIDE 23 Af Afforda danc nce: Wha What can n do do you u wi with h thi his? s?
Signifier Perceived Affordance Feedback Affordance Pull Yanking it A handle you can grasp and yank NOT pull (push)
SLIDE 24 Af Afforda danc nce: Wha What can n do do you u wi with h thi his? s?
Signifier Perceived Affordance Feedback Affordance Push Pushing it depresses the handle A handle you can lean your weight onto And push Push
SLIDE 25 Af Afforda danc nce: Wha What sho shoul uld d do do you u wi with h thi his? s?
Signifier Perceived Affordance Feedback Affordance Put paper in it None. Paper sized hole Bottles and cans
SLIDE 26 Design direct manipulation interfaces by signaling affordances with signifiers users can perceive
Bad signifiers / wrong perceived affordances Good signifiers / correct perceived affordances
SLIDE 27
What signifiers do these UIs use to signal affordances?
SLIDE 28
What are the signifiers of affordances?
SLIDE 29
What are the signifiers of affordances?
SLIDE 30
What are the signifiers of affordances?
SLIDE 31
What are the signifiers of affordances?
SLIDE 32
What are the signifiers of affordances?
SLIDE 33 Design direct manipulation interfaces by signaling affordances with signifiers users can perceive
Bad signifiers / wrong perceived affordances Good signifiers / correct perceived affordances
SLIDE 34
Implementing Direct Manipulation Interfaces
SLIDE 35 Dir Direct ct M Man anip ipula latio ion Properties
- 1. Objects are represented visually
- 2. Actions are rapid,
incremental and reversible
directly with object representations
Click
SLIDE 36
HTML
What will this do when you click it?
SLIDE 37
HTML JavaScript
Add Click events with JQuery
SLIDE 38
HTML JavaScript
How do we attach an action to the button?
SLIDE 39
HTML JavaScript
How do we increment the counter????
SLIDE 40 HTML JavaScript
How NO
NOT to increment the count?
Get the button text: “Counter (0)” Extract the data from from the text Cast to a number and add one Replace the button text: “Counter (1)”
SLIDE 41 HTML JavaScript
How TO
TO increment the count?
Create a model of the data separate from the HTML Create a function that can set the counter data to the view When the page first loads, set the counter to 0 When the counter is clicked, modify the data, then update the view
SLIDE 42
Good UI programming separates the da
data model from the vie view and controller
Bad JavaScript Good JavaScript
SLIDE 43 Dir Direct ct M Man anip ipula latio ion Properties
- 1. Objects are represented visually
- 2. Actions are rapid,
incremental and reversible
directly with object representations Drag and Drop
SLIDE 44
How to NOT implement this?
SLIDE 45
Step 1. Create the Data Model
SLIDE 46
Step 2. Create a function that updates the view with new data
SLIDE 47
Step 3. On page load, create view
SLIDE 48
Step 4. Attach an event to the object. It should update the data, then update the view
SLIDE 49
SLIDE 50
Good UI programming separates the da
data model from the vie view and co controller
SLIDE 51
Good UI programming separates the da
data model from the vie view and co controller
SLIDE 52
Good UI programming separates the da
data model from the vie view and co controller
SLIDE 53
Good UI programming separates the da
data model from the vie view and co controller
SLIDE 54
Summary
SLIDE 55 Dir Direct ct M Man anip ipula latio ion Properties
- 1. Objects are represented visually
- 2. Actions are rapid,
incremental and reversible
directly with object representations
Move to trash Resize Move viewport
SLIDE 56 Signal affordances with signifiers the user can perceive
NOT this THIS
Push Affordance Perceived affordance Push Signifier Handle that can be leaned on Pull Affordance Perceived affordance Push Signifier Handle that can be yanked toward you
SLIDE 57 Direct manipulation interfaces are usable because they suit the 7 stages of action
There is visible feedback the user can evaluate There are visible actions the user can execute
SLIDE 58 When implementing Direct Manipulation:
Modify the data, then update the view Create an object in the view Add an event handler to respond to user’s actions It is important to separate the data (or model) from the view and the controller.