Advanced GUI Paradigms Overview Direct Manipulation

24 downloads 66 Views 44KB Size Report
1. Advanced GUI Paradigms. More ideas for successful GUIs. Overview. • Direct Manipulation. • Cut, Copy, Paste. • Embedded editing. • Drag & Drop.
Advanced GUI Paradigms More ideas for successful GUIs

Overview • • • • • •

Direct Manipulation Cut, Copy, Paste Embedded editing Drag & Drop Undo and Redo Help & documentation

Direct Manipulation • • • •

All interactive objects should be visible Rapid feedback in response to user actions Incremental actions are possible Reversibility: encourages exploration – E.g. through use of undo

• Syntactic correctness of all actions – Only legal actions are permitted by the UI

1

Direct Manipulation (2) • Replace language with action – No arcane command syntax to memorize (supports recognition over recall)

• WYSIWYG – what you see is what you get • Need to be: – Fast – actions shouldn’t take long – Tolerant to user errors – Well-designed

• Yet still should enable full spectrum of potential actions

Cut, Copy & Paste Paradigm • Replication/transfer of data via a ‘clipboard’ • Clipboard must support different data types: – Text, e.g. from word processor – words, lines, paragraphs, entire documents – Images, e.g. JPEGs from Photoshop – Multimedia, e.g. PowerPoint animations

• Cut/Copy stores data in one or more formats or makes use of meta-files • Paste queries data format or requests translation into something that receiving application can handle

Programming • Cut, copy & paste – Can cause hard to detect errors: Polygon->vertex[0].x Polygon->vertex[0].y Polygon->vertex[0].z Polygon->vertex[1].x Polygon->vertex[1].x Polygon->vertex[0].z

= = = = = =

1.0; 2.0; 3.0; 3.0; 2.0; 1.0;

2

Publish/Subscribe Paradigm • Cut/copy & paste for permanent transfer of information, which is not always desirable • Publish/Subscribe: link to original object is maintained and copies are update if original changes • Events are used to inform applications of all changes to original object • Publish/Subscribe on Mac – Flexible alias mechanisms, editions, maintain links

• OLE on Windows: pasting retains links to original application – Monikers: relative paths and identifiers into document

• May break if files move around

Embedded Editing • Embedding – Embed object in document  import data and functionality of another program

• Two different strategies for editing: – Edit Aside • Open new window for editing (OLE 1.0) • Relatively straightforward if objects can be serialized

– Edit in Place • Rectangular area (OLE 2.0) • Free form, including page breaks – more complex

Embedded Editing (2) • Embedding requires that pasted objects provide: – Property methods (for determining size, shape, etc.) – Redraw method – Save/load within another document (serialization) – Object’s user interface • E.g. an Excel spreadsheet embedded in a Word document needs Excel UI for editing • Menu bar, toolbar, palette changes, etc.

3

Drag & Drop Paradigm • Data transfer via direct manipulation of interactive objects • Used to move data: – Within and between different applications • Cut, copy & paste-like functionality

– In the file system interface • E.g. Drag a file to another folder to copy/move it there – What about dragging a CD icon to the trash bin to eject?

Undo / Redo • Undo allows user to cancel previous actions • For all undoable actions/commands in the application: – Code is needed which reverses effect of action – For each command executed by the user, save undo record • Either store previous state • Or reference to changed part of data • Or store the whole state of the application

– Usually just store the changes in state – Don’t undo undo!  Redo command

Undo (2) • Irreversible actions can be ignored – E.g. Print, “fire missiles” – what about save? – Transient commands that don’t change the state of the model can also usually be ignored • Rubber-banding in a drawing program • Scrolling in a window

• Selective undo – pick an action to undo in the history – Necessitates conflict resolution

• Hierarchical undo – difficult to understand – Undo entire interaction or parts

4

Help • Help should be problem-oriented and specific to the system features that the user is currently applying • Help can be requested by: – Topic – assumes user knowledge; sometimes user needs guidance to know what to look for – Help button / menu – may be context sensitive – Keyboard or mouse button (e.g. F1)

• Context sensitive help requires that each widget has a help reference to part of documentation relevant to it

Help (2) • Various ways to display help – – – –

In a new window Whole screen (obscuring the work area) Part of screen Help hints and prompts (balloon help or tool tips – or talking paper clips!) – Visual cues when suggestion is available, e.g. on mouseover

• Help ≠ documentation! Simply outputting the user manual isn’t very helpful at all - be specific!

Documentation • Documentation is system-oriented and general, unlike a Help facility • Provides: – Introduction to system functionality – Clear descriptions of “how-to” information: – Task-oriented and should be written from user’s perspective – Requires both table of contents as well as index! • Synonyms increase chance of finding information

• Inconvenient to browse documentation on computer – But companies do it to reduce “your” (i.e. their) costs

5

Wizards • Wizards encapsulate frequently used action sequences, e.g. “add new printer” – Commonly used functionality – Limited learning effect • Users rely on wizard, don’t gain understanding of the behind-the-scenes actions

– Useful for novices and domain experts alike

On-line Tutorials • Demonstrate action sequences that need to be followed – Shows solution to a specific problem (usually system-oriented) – Passive vs. active – E.g. Apple Guide – combines both active and passive tutorials

Presentation of Help & Docs • Use clear and familiar language • Style: “how to use the system” – Not a system description! – User has goals & doesn’t play around with software – Avoid jargon

• Be consistent with screen content/printed manuals • Be unobtrusive – don’t block the application display • DON’T USER COMPUTER SCIENCE HUMOR! – Especially not in error messages!

6

Suggest Documents