3131#include < string>
3232#include < sstream>
3333#include < Dataflow/Engine/Controller/ProvenanceItemImpl.h>
34+ #include < Dataflow/Engine/Python/NetworkEditorPythonInterface.h>
3435#include < Core/Logging/Log.h>
3536#include < spdlog/fmt/fmt.h>
3637
3738using namespace SCIRun ;
3839using namespace SCIRun ::Dataflow::Engine;
3940using namespace SCIRun ::Dataflow::Networks;
4041
41- ProvenanceItemBase::ProvenanceItemBase (NetworkFileHandle state) : state_(state)
42+ ProvenanceItemBase::ProvenanceItemBase (NetworkFileHandle state, SharedPointer<NetworkEditorPythonInterface> nedPy ) : state_(state), nedPy_(nedPy )
4243{
4344}
4445
@@ -47,8 +48,8 @@ NetworkFileHandle ProvenanceItemBase::memento() const
4748 return state_;
4849}
4950
50- ModuleAddedProvenanceItem::ModuleAddedProvenanceItem (const std::string& moduleName, const std::string& modId, NetworkFileHandle state)
51- : ProvenanceItemBase(state), moduleName_(moduleName), moduleId_(modId)
51+ ModuleAddedProvenanceItem::ModuleAddedProvenanceItem (const std::string& moduleName, const std::string& modId, NetworkFileHandle state, SharedPointer<NetworkEditorPythonInterface> nedPy )
52+ : ProvenanceItemBase(state, nedPy ), moduleName_(moduleName), moduleId_(modId)
5253{
5354}
5455
@@ -62,7 +63,7 @@ std::string ModuleAddedProvenanceItem::undoCode() const
6263 if (redone_)
6364 {
6465 logCritical (" here is where i need to pull the most recently added id" );
65- moduleId_ = " TODO " ;
66+ moduleId_ = nedPy_-> mostRecentAddModuleId () ;
6667 }
6768 return fmt::format (" scirun_remove_module(\" {}\" )" , moduleId_);
6869}
@@ -73,8 +74,8 @@ std::string ModuleAddedProvenanceItem::redoCode() const
7374 return fmt::format (" scirun_add_module(\" {}\" )" , moduleName_);
7475}
7576
76- ModuleRemovedProvenanceItem::ModuleRemovedProvenanceItem (const ModuleId& moduleId, NetworkFileHandle state)
77- : ProvenanceItemBase(state), moduleId_(moduleId)
77+ ModuleRemovedProvenanceItem::ModuleRemovedProvenanceItem (const ModuleId& moduleId, NetworkFileHandle state, SharedPointer<NetworkEditorPythonInterface> nedPy )
78+ : ProvenanceItemBase(state, nedPy ), moduleId_(moduleId)
7879{
7980}
8081
@@ -83,8 +84,24 @@ std::string ModuleRemovedProvenanceItem::name() const
8384 return " Module Removed: " + moduleId_.id_ ;
8485}
8586
86- ConnectionAddedProvenanceItem::ConnectionAddedProvenanceItem (const SCIRun::Dataflow::Networks::ConnectionDescription& cd, NetworkFileHandle state)
87- : ProvenanceItemBase(state), desc_(cd)
87+ std::string ModuleRemovedProvenanceItem::undoCode () const
88+ {
89+ redone_ = true ;
90+ return fmt::format (" scirun_add_module(\" {}\" )" , moduleId_.name_ );
91+ }
92+
93+ std::string ModuleRemovedProvenanceItem::redoCode () const
94+ {
95+ if (redone_)
96+ {
97+ // logCritical("here is where i need to pull the most recently added id");
98+ // moduleId_ = nedPy_->mostRecentAddModuleId();
99+ }
100+ return fmt::format (" scirun_remove_module(\" {}\" )" , moduleId_.id_ );
101+ }
102+
103+ ConnectionAddedProvenanceItem::ConnectionAddedProvenanceItem (const SCIRun::Dataflow::Networks::ConnectionDescription& cd, NetworkFileHandle state, SharedPointer<NetworkEditorPythonInterface> nedPy)
104+ : ProvenanceItemBase(state, nedPy), desc_(cd)
88105{
89106}
90107
@@ -93,8 +110,8 @@ std::string ConnectionAddedProvenanceItem::name() const
93110 return " Connection added: " + ConnectionId::create (desc_).id_ ;
94111}
95112
96- ConnectionRemovedProvenanceItem::ConnectionRemovedProvenanceItem (const SCIRun::Dataflow::Networks::ConnectionId& id, NetworkFileHandle state)
97- : ProvenanceItemBase(state), id_(id)
113+ ConnectionRemovedProvenanceItem::ConnectionRemovedProvenanceItem (const SCIRun::Dataflow::Networks::ConnectionId& id, NetworkFileHandle state, SharedPointer<NetworkEditorPythonInterface> nedPy )
114+ : ProvenanceItemBase(state, nedPy ), id_(id)
98115{
99116}
100117
@@ -103,8 +120,8 @@ std::string ConnectionRemovedProvenanceItem::name() const
103120 return " Connection Removed: " + id_.id_ ;
104121}
105122
106- ModuleMovedProvenanceItem::ModuleMovedProvenanceItem (const SCIRun::Dataflow::Networks::ModuleId& moduleId, double newX, double newY, NetworkFileHandle state)
107- : ProvenanceItemBase(state), moduleId_(moduleId), newX_(newX), newY_(newY)
123+ ModuleMovedProvenanceItem::ModuleMovedProvenanceItem (const SCIRun::Dataflow::Networks::ModuleId& moduleId, double newX, double newY, NetworkFileHandle state, SharedPointer<NetworkEditorPythonInterface> nedPy )
124+ : ProvenanceItemBase(state, nedPy ), moduleId_(moduleId), newX_(newX), newY_(newY)
108125{
109126}
110127
0 commit comments