MCPcopy Create free account
hub / github.com/MITK/MITK / SetDataStorage

Method SetDataStorage

Modules/QtWidgets/src/QmitkDataStorageTreeModel.cpp:507–569  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

505}
506
507void QmitkDataStorageTreeModel::SetDataStorage(mitk::DataStorage *_DataStorage)
508{
509 if (m_DataStorage != _DataStorage) // dont take the same again
510 {
511 auto dataStorage = m_DataStorage.Lock();
512 if (dataStorage.IsNotNull())
513 {
514 // remove Listener for the data storage itself
515 dataStorage->RemoveObserver(m_DataStorageDeletedTag);
516
517 // remove listeners for the nodes
518 dataStorage->AddNodeEvent.RemoveListener(
519 mitk::MessageDelegate1<QmitkDataStorageTreeModel, const mitk::DataNode *>(this,
520 &QmitkDataStorageTreeModel::AddNode));
521
522 dataStorage->ChangedNodeEvent.RemoveListener(
523 mitk::MessageDelegate1<QmitkDataStorageTreeModel, const mitk::DataNode *>(
524 this, &QmitkDataStorageTreeModel::SetNodeModified));
525
526 dataStorage->RemoveNodeEvent.RemoveListener(
527 mitk::MessageDelegate1<QmitkDataStorageTreeModel, const mitk::DataNode *>(
528 this, &QmitkDataStorageTreeModel::RemoveNode));
529 }
530
531 this->beginResetModel();
532
533 // take over the new data storage
534 m_DataStorage = _DataStorage;
535
536 // delete the old root (if necessary, create new)
537 if (m_Root)
538 m_Root->Delete();
539 mitk::DataNode::Pointer rootDataNode = mitk::DataNode::New();
540 rootDataNode->SetName("Data Manager");
541 m_Root = new TreeItem(rootDataNode, nullptr);
542
543 dataStorage = m_DataStorage.Lock();
544 if (dataStorage.IsNotNull())
545 {
546 // add Listener for the data storage itself
547 auto command = itk::SimpleMemberCommand<QmitkDataStorageTreeModel>::New();
548 command->SetCallbackFunction(this, &QmitkDataStorageTreeModel::SetDataStorageDeleted);
549 m_DataStorageDeletedTag = dataStorage->AddObserver(itk::DeleteEvent(), command);
550
551 // add listeners for the nodes
552 dataStorage->AddNodeEvent.AddListener(mitk::MessageDelegate1<QmitkDataStorageTreeModel, const mitk::DataNode *>(
553 this, &QmitkDataStorageTreeModel::AddNode));
554
555 dataStorage->ChangedNodeEvent.AddListener(
556 mitk::MessageDelegate1<QmitkDataStorageTreeModel, const mitk::DataNode *>(
557 this, &QmitkDataStorageTreeModel::SetNodeModified));
558
559 dataStorage->RemoveNodeEvent.AddListener(
560 mitk::MessageDelegate1<QmitkDataStorageTreeModel, const mitk::DataNode *>(
561 this, &QmitkDataStorageTreeModel::RemoveNode));
562
563 // finally add all nodes to the model
564 this->Update();

Callers 3

SetDataStorageDeletedMethod · 0.95

Calls 9

UpdateMethod · 0.95
IsNotNullMethod · 0.80
AddObserverMethod · 0.80
NewFunction · 0.50
LockMethod · 0.45
RemoveListenerMethod · 0.45
DeleteMethod · 0.45
SetNameMethod · 0.45
AddListenerMethod · 0.45

Tested by

no test coverage detected