Undo & redo is a core feature to many applications, yet it's missing from your Flash and Flex projects. Learn how to easily add history to your applications with little effort. This session covers the concepts, benefits and the techniques of history management. It breaks down the complexity of undo & redo implementation into simple code, illustrating the use of the Command Pattern and providing the tools necessary to get up and running within minutes. This session is targeted toward intermediate developers, but will be a great overview of application history for beginners and non-programmers.
2. Intoduction
Tyler Wright â www.xtyler.com
Flight Framework â www.flightxd.com
Robert Taylor â www.roboncode.com
Jacob Wright â jacwright.com
Resources: www.xtyler.com/history
3. Ctrl+Z
Desktop Applications
Browser TextFields
What about Rich Internet Applications?
Users can enjoy making mistakes
4. Flight Framework
an application framework
an undo framework
a command factory
a data binding fiend
a way to get dates
5. Anatomy of Undo
Undoable Action
means of reverting that action
recover from a single mistake
Memory of actions
queue of undoable actions
recover from a history of mistakes
Change the past.
7. Generic vs. Specific
One-size fits all Everyone is special
âautomaticâ custom
centralized logic handles separate logic for undo on
undo on all actions each action
actions must fit the mold every action unique
8. Command your Actions
Methods define our systemâs actions
State is represented by local data â goes away
Command: an objectified method, storing local data
Portable â pass around the system as an object
9. Implement to an Interface
Interfaces: create types by contract
ICommand
execute():void
IUndoableCommand
undo():void
redo():void
10. CommandHistory
Undo & Redo âright out of the boxâ
ICommandInvoker
executeCommand(command:ICommand):void
ICommandHistory
canUndo():Boolean, canRedo():Boolean
undo():Boolean, redo():Boolean
undoLimit:int, etcâŠ
12. Generic heart Specific
One-size fits all Everyone is speaical
âautomaticâ custom
single command to a separate Command for
represent all actions each action
Marriage by Command
Consolidates these approaches.
Provides a single interface to undo and redo.
Mix approaches or migrate from one to another without changing API.
13. Your First History Lesson
The History Panel
Photoshop
Flash
The Project
(break to code right here)
On Into the Details
14. Short-term Memory
Undo limits
Considering stored data
types
Clearing memory â
release event listeners and
bindings
Weak-referenced event
listeners and binding
Saving history to disk
15. Merging
Actions repeated
IMergingCommand
merge (source:Object):Boolean
Originating Command inspects fellows before
discarding them â self reflection leads to a greater self
Compared to MacroCommands
16. Flight Framework Reloaded
Offers the HistoryController as an extension of application-
level Controllers
Command Factory
addCommand(type:String, commandClass:Class):void
createCommand(type:String):ICommand
Enables direct upgrade from a common application to one
with undo and redo, minimal changes
Much moreâŠ
17. Change the Past.
Tyler Wright â www.xtyler.com
Flight Framework â www.flightxd.com
Robert Taylor â www.roboncode.com
Jacob Wright â jacwright.com
Resources: www.xtyler.com/history