ikeough/Dynamo — pull request #708 by Benglin (2013-11-08 07:58:53+00:00)
Title: Enhanced node editing functionality to use Command Framework

Background
==========

* This pull request is meant to extend "node editing" functionality into Command Framework. It corresponds to the following task:

* [MAGN-449 Node value editing should be made recordable](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-449)

* The following changes are made:

* Virtual method **ModelBase.UpdateValueCore** is introduced (implemented by Sublists, DoubleInput, DoubleSliderInput, StringInput, Formula, Output, Symbol, LengthInput classes)
* Recordable command **UpdateModelValueCommand** is implemented
* New property **RecordableCommand.IsInPlaybackMode** is introduced for a given recordable command to determine if it is in playback mode or record mode
* **DynamoTextBox** now issues **UpdateModelValueCommand** instead of **BindingExpression.UpdateSource**

* Documentation has been [provided here](https://internal.autodesk360beta.com/portal/groups/2013081950126/item/DS46601QT150b7b805d1247355f6edafccb2)

Test scenarios
==============

* Value inputs should be tested in following node types:

* Sublists
* DoubleInput
* DoubleSliderInput
* StringInput
* Formula
* Output
* Symbol
* LengthInput (on Revit).

Unit testing
============

* The following new unit test cases are added:

* TestCreateNoteCommand
* TestCreateNoteCommand
* TestSelectModelCommand
* TestSelectInRegionCommand
* TestDragSelectionCommand
* TestMakeConnectionCommand
* TestDeleteModelCommand
* TestUndoRedoCommand
* TestUpdateModelValueCommand
* TestUpdateNodeContents
* TestVerifyRuntimeValues