16 #include <itkCommand.h> 17 #include <itkObjectFactoryBase.h> 28 : m_ActiveTool(nullptr), m_ActiveToolID(-1), m_RegisteredClients(0),
m_DataStorage(storage)
58 observerTagMapIter->first->RemoveObserver(observerTagMapIter->second);
77 std::list<itk::LightObject::Pointer> thingsThatClaimToBeATool = itk::ObjectFactoryBase::CreateAllInstance(
"mitkTool");
80 for (
auto iter = thingsThatClaimToBeATool.begin();
81 iter != thingsThatClaimToBeATool.end();
84 if (
auto *tool = dynamic_cast<Tool *>(iter->GetPointer()))
86 tool->InitializeStateMachine();
87 tool->SetToolManager(
this);
89 tool->GeneralMessage +=
112 resultList.push_back(iter->GetPointer());
124 catch (
const std::exception &)
144 static int nextTool = -1;
147 static bool inActivateTool =
false;
152 inActivateTool =
true;
178 inActivateTool =
false;
192 (*dataIter)->RemoveObserver(searchIter->second);
203 itk::MemberCommand<ToolManager>::Pointer command = itk::MemberCommand<ToolManager>::New();
207 std::pair<DataNode *, unsigned long>((*dataIter), (*dataIter)->AddObserver(itk::DeleteEvent(), command)));
225 if ((
void *)(*dataIter) != (
void *)caller)
227 v.push_back(*dataIter);
257 (*dataIter)->RemoveObserver(searchIter->second);
273 itk::MemberCommand<ToolManager>::Pointer command = itk::MemberCommand<ToolManager>::New();
277 std::pair<DataNode *, unsigned long>((*dataIter), (*dataIter)->AddObserver(itk::DeleteEvent(), command)));
295 if ((
void *)(*dataIter) != (
void *)caller)
297 v.push_back(*dataIter);
329 (*dataIter)->RemoveObserver(searchIter->second);
340 itk::MemberCommand<ToolManager>::Pointer command = itk::MemberCommand<ToolManager>::New();
344 std::pair<DataNode *, unsigned long>((*dataIter), (*dataIter)->AddObserver(itk::DeleteEvent(), command)));
372 if ((
void *)(*dataIter) != (
void *)caller)
374 v.push_back(*dataIter);
395 catch (
const std::exception &)
417 catch (
const std::exception &)
494 for (
auto iter =
m_Tools.begin(); iter !=
m_Tools.end(); ++iter, ++id)
496 if (tool == iter->GetPointer())
Data management class that handles 'was created by' relations.
Base class to implement InteractionEventObservers.
ServiceRegistrationU RegisterService(const InterfaceMap &service, const ServiceProperties &properties=ServiceProperties())
static Pointer GetInstance()
mitk::DataStorage::Pointer m_DataStorage
void AddListener(const AbstractDelegate &delegate) const
US_UNORDERED_MAP_TYPE< std::string, Any > ServiceProperties
DataStorageEvent RemoveNodeEvent
RemoveEvent is emitted directly before a node is removed from the DataStorage.
void RemoveListener(const AbstractDelegate &delegate) const
static ModuleContext * GetModuleContext()
Returns the module context of the calling module.
Class for nodes of the DataTree.