SlideShare a Scribd company logo
1 of 20
Ctrl-Z to Undo: Implementing a Transaction Manager in a Rich Internet Application Galen Riley galenriley@gmail.com@TotallyGreatBarCamp Chattanooga 2009
Agenda History of network applications Discuss advantages of RIAs Describe a transaction manager Write a simple application Implement the transaction manager
Client-Server Applications Client-Server Applications Installed on each machine Custom network programming Updates on the server may require updates on each client
Web Applications Exist entirely on a server Work in a browser – no installation! Easily managed and modified
Rich Internet Applications More sophisticated May require a browser plug-in Consistency across browsers Easy to do client-side execution Media
RIA Frameworks Adobe Flex Microsoft Siverlight JavaFX AJAX
Transaction Manager Complex interactions in a RIA Back up in case of a mistake RIA development lends itself to adding this feature
A Simple Application
A Simple Application
Checklist Stack data structure available anywhere in the program
Singleton Pattern
Using a Singleton TransactionManager.getInstance().doSomething()
Checklist Stack data structure available anywhere in the program Classes to hold state information Command design pattern
Transaction Class
Checklist Stack data structure available anywhere in the program Classes to hold state information Command design pattern Method of passing messages
TransactionManager class privatevar _undoStack:Array; privatevar _redoStack:Array; publicfunction addTransaction( transaction:Transaction ) :void public function undo() :void public function redo() :void Dispatch events from here
Using the Transaction Manager Select interesting user actions Add Transaction objects to the manager Listen for TransactionEvent.UNDO and TransactionEvent.REDO Use the Transaction object to roll back the action Allow the user to Undo and Redo
One Last Thing Undoing an action runs code that modifies the TransactionManager’s stack Solution: Ignore transactions while executing a Undo privatevar _ignoreOutsideTransactions:Boolean; privatefunction ignoreOutsideUndoTransactions() :void privatefunction resumeOutsideUndoTransactions() :void
Advanced Features Multiple levels of undo privatestaticconst TRANSACTION_LIMIT:int = 10; Batch transactions Better UI Integration
Questions? Source code for the transaction manager and sample application are available. Email galenriley@gmail.com

More Related Content

What's hot

Building advanced case-driven applications
Building advanced case-driven applicationsBuilding advanced case-driven applications
Building advanced case-driven applicationsKris Verlaenen
 
Evolution of Application Development
Evolution of Application DevelopmentEvolution of Application Development
Evolution of Application Developmentkshanth2101
 
Empowering Business Users with Process Management Tools
Empowering Business Users with Process Management ToolsEmpowering Business Users with Process Management Tools
Empowering Business Users with Process Management ToolsKris Verlaenen
 
RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)
RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)
RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)Ethan Cha
 
BPM and Case Management Applications
BPM and Case Management ApplicationsBPM and Case Management Applications
BPM and Case Management ApplicationsKris Verlaenen
 

What's hot (6)

Building advanced case-driven applications
Building advanced case-driven applicationsBuilding advanced case-driven applications
Building advanced case-driven applications
 
Evolution of Application Development
Evolution of Application DevelopmentEvolution of Application Development
Evolution of Application Development
 
Empowering Business Users with Process Management Tools
Empowering Business Users with Process Management ToolsEmpowering Business Users with Process Management Tools
Empowering Business Users with Process Management Tools
 
RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)
RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)
RIA WG - RIA Component Interoperability RFI Draft (2010 Mar. Tc)
 
BPM and Case Management Applications
BPM and Case Management ApplicationsBPM and Case Management Applications
BPM and Case Management Applications
 
Access.net presentation
Access.net presentationAccess.net presentation
Access.net presentation
 

Viewers also liked

How to Navigate Your Career
How to Navigate Your Career How to Navigate Your Career
How to Navigate Your Career Jeff Saperstein
 
Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...
Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...
Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...Wapple
 
Vision Matters, Defining Identity
Vision Matters, Defining IdentityVision Matters, Defining Identity
Vision Matters, Defining IdentityJeff Saperstein
 
Estiluz News 2009-2010
Estiluz News 2009-2010Estiluz News 2009-2010
Estiluz News 2009-2010FACTORLICHT
 
How to Navigate Your Career by Jeff Saperstein - 2015
How to Navigate Your Career by Jeff Saperstein - 2015How to Navigate Your Career by Jeff Saperstein - 2015
How to Navigate Your Career by Jeff Saperstein - 2015Jeff Saperstein
 
Kundalini Catalogus 2010
Kundalini Catalogus 2010Kundalini Catalogus 2010
Kundalini Catalogus 2010FACTORLICHT
 
Bust the Silos: Opening Your Organization for Growth
Bust the Silos: Opening Your Organization for GrowthBust the Silos: Opening Your Organization for Growth
Bust the Silos: Opening Your Organization for GrowthJeff Saperstein
 

Viewers also liked (15)

How to Navigate Your Career
How to Navigate Your Career How to Navigate Your Career
How to Navigate Your Career
 
Hhh
HhhHhh
Hhh
 
Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...
Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...
Wapple Mobile Internet and Mobile Web Development Tools - Premier Mobile Web ...
 
Vision Matters, Defining Identity
Vision Matters, Defining IdentityVision Matters, Defining Identity
Vision Matters, Defining Identity
 
Estiluz News 2009-2010
Estiluz News 2009-2010Estiluz News 2009-2010
Estiluz News 2009-2010
 
Teachers
TeachersTeachers
Teachers
 
Blood And Fire
Blood And FireBlood And Fire
Blood And Fire
 
Coffee
CoffeeCoffee
Coffee
 
Im 1.1 Rev.5
Im 1.1 Rev.5Im 1.1 Rev.5
Im 1.1 Rev.5
 
How to Navigate Your Career by Jeff Saperstein - 2015
How to Navigate Your Career by Jeff Saperstein - 2015How to Navigate Your Career by Jeff Saperstein - 2015
How to Navigate Your Career by Jeff Saperstein - 2015
 
Kundalini Catalogus 2010
Kundalini Catalogus 2010Kundalini Catalogus 2010
Kundalini Catalogus 2010
 
Bust the Silos: Opening Your Organization for Growth
Bust the Silos: Opening Your Organization for GrowthBust the Silos: Opening Your Organization for Growth
Bust the Silos: Opening Your Organization for Growth
 
Spss tutorial 1
Spss tutorial 1Spss tutorial 1
Spss tutorial 1
 
Linkedin Slide B
Linkedin   Slide BLinkedin   Slide B
Linkedin Slide B
 
Power Point Tips
Power Point TipsPower Point Tips
Power Point Tips
 

Similar to Ctrl+Z To Undo

WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012Dmitri Artamonov
 
Democratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentDemocratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentIntel Corporation
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App ArchitecturesChris Bailey
 
F5 Value For Virtualization
F5 Value For VirtualizationF5 Value For Virtualization
F5 Value For VirtualizationPatricio Campos
 
IT Automation With CFEngine - Business Value and Basic Concepts
IT Automation With CFEngine - Business Value and Basic ConceptsIT Automation With CFEngine - Business Value and Basic Concepts
IT Automation With CFEngine - Business Value and Basic ConceptsCFEngine
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Finalmentvanderplas
 
Scaling Integration
Scaling IntegrationScaling Integration
Scaling IntegrationKim Clark
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapShay Hassidim
 
VMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabricVMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabricVMUG IT
 
Development trends
Development trendsDevelopment trends
Development trendsEyal Vardi
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 

Similar to Ctrl+Z To Undo (20)

Si so product 1 day technical
Si so product 1 day technicalSi so product 1 day technical
Si so product 1 day technical
 
WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012
 
Democratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentDemocratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud Development
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App Architectures
 
sMash_for_zOS-users
sMash_for_zOS-userssMash_for_zOS-users
sMash_for_zOS-users
 
F5 Value For Virtualization
F5 Value For VirtualizationF5 Value For Virtualization
F5 Value For Virtualization
 
VINAYAN_Resume
VINAYAN_ResumeVINAYAN_Resume
VINAYAN_Resume
 
Power
PowerPower
Power
 
The New Network
The New NetworkThe New Network
The New Network
 
GenericFrame Technology
GenericFrame TechnologyGenericFrame Technology
GenericFrame Technology
 
IT Automation With CFEngine - Business Value and Basic Concepts
IT Automation With CFEngine - Business Value and Basic ConceptsIT Automation With CFEngine - Business Value and Basic Concepts
IT Automation With CFEngine - Business Value and Basic Concepts
 
Aspmvc
AspmvcAspmvc
Aspmvc
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Final
 
Scaling Integration
Scaling IntegrationScaling Integration
Scaling Integration
 
Architecting RIAs
Architecting RIAsArchitecting RIAs
Architecting RIAs
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 Xap
 
Democratizing the Cloud
Democratizing the CloudDemocratizing the Cloud
Democratizing the Cloud
 
VMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabricVMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabric
 
Development trends
Development trendsDevelopment trends
Development trends
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 

Ctrl+Z To Undo

  • 1. Ctrl-Z to Undo: Implementing a Transaction Manager in a Rich Internet Application Galen Riley galenriley@gmail.com@TotallyGreatBarCamp Chattanooga 2009
  • 2. Agenda History of network applications Discuss advantages of RIAs Describe a transaction manager Write a simple application Implement the transaction manager
  • 3. Client-Server Applications Client-Server Applications Installed on each machine Custom network programming Updates on the server may require updates on each client
  • 4. Web Applications Exist entirely on a server Work in a browser – no installation! Easily managed and modified
  • 5. Rich Internet Applications More sophisticated May require a browser plug-in Consistency across browsers Easy to do client-side execution Media
  • 6. RIA Frameworks Adobe Flex Microsoft Siverlight JavaFX AJAX
  • 7. Transaction Manager Complex interactions in a RIA Back up in case of a mistake RIA development lends itself to adding this feature
  • 10. Checklist Stack data structure available anywhere in the program
  • 12. Using a Singleton TransactionManager.getInstance().doSomething()
  • 13. Checklist Stack data structure available anywhere in the program Classes to hold state information Command design pattern
  • 15. Checklist Stack data structure available anywhere in the program Classes to hold state information Command design pattern Method of passing messages
  • 16. TransactionManager class privatevar _undoStack:Array; privatevar _redoStack:Array; publicfunction addTransaction( transaction:Transaction ) :void public function undo() :void public function redo() :void Dispatch events from here
  • 17. Using the Transaction Manager Select interesting user actions Add Transaction objects to the manager Listen for TransactionEvent.UNDO and TransactionEvent.REDO Use the Transaction object to roll back the action Allow the user to Undo and Redo
  • 18. One Last Thing Undoing an action runs code that modifies the TransactionManager’s stack Solution: Ignore transactions while executing a Undo privatevar _ignoreOutsideTransactions:Boolean; privatefunction ignoreOutsideUndoTransactions() :void privatefunction resumeOutsideUndoTransactions() :void
  • 19. Advanced Features Multiple levels of undo privatestaticconst TRANSACTION_LIMIT:int = 10; Batch transactions Better UI Integration
  • 20. Questions? Source code for the transaction manager and sample application are available. Email galenriley@gmail.com