#include <QmitkToolRoiDataSelectionBox.h>
Signals | |
void | RoiDataSelected (const mitk::DataNode *node) |
Public Member Functions | |
QmitkToolRoiDataSelectionBox (QWidget *parent=0, mitk::DataStorage *storage=0) | |
virtual | ~QmitkToolRoiDataSelectionBox () |
mitk::DataStorage * | GetDataStorage () |
void | SetDataStorage (mitk::DataStorage &storage) |
mitk::ToolManager * | GetToolManager () |
void | SetToolManager (mitk::ToolManager &manager) |
void | OnToolManagerRoiDataModified () |
mitk::ToolManager::DataVectorType | GetSelection () |
void | UpdateComboBoxData () |
void | setEnabled (bool) |
Protected Slots | |
void | OnRoiDataSelectionChanged (const QString &name) |
Protected Attributes | |
QmitkBoundingObjectWidget * | m_boundingObjectWidget |
QComboBox * | m_segmentationComboBox |
mitk::ToolManager::Pointer | m_ToolManager |
bool | m_SelfCall |
mitk::DataNode::Pointer | m_lastSelection |
QString | m_lastSelectedName |
Definition at line 9 of file QmitkToolRoiDataSelectionBox.h.
QmitkToolRoiDataSelectionBox::QmitkToolRoiDataSelectionBox | ( | QWidget * | parent = 0 , |
mitk::DataStorage * | storage = 0 |
||
) |
Definition at line 6 of file QmitkToolRoiDataSelectionBox.cpp.
References m_boundingObjectWidget, m_segmentationComboBox, m_ToolManager, mitk::ToolManager::New(), OnRoiDataSelectionChanged(), and OnToolManagerRoiDataModified().
:QWidget(parent), m_SelfCall(false), m_lastSelection(NULL), m_lastSelectedName(tr("none")) { QBoxLayout* mainLayout = new QVBoxLayout(this); m_segmentationComboBox = new QComboBox(this); QLabel* label = new QLabel("region of interest:", this); m_boundingObjectWidget = new QmitkBoundingObjectWidget(); mainLayout->addWidget(label); mainLayout->addWidget(m_segmentationComboBox); mainLayout->addWidget(m_boundingObjectWidget); //connect signals connect(m_segmentationComboBox, SIGNAL(activated(const QString&)), this, SLOT(OnRoiDataSelectionChanged(const QString&)) ); connect(m_boundingObjectWidget, SIGNAL(BoundingObjectsChanged(const QString&)), this, SLOT(OnRoiDataSelectionChanged(const QString&)) ); //create ToolManager m_ToolManager = mitk::ToolManager::New(storage); //setup message delegates m_ToolManager->RoiDataChanged += mitk::MessageDelegate<QmitkToolRoiDataSelectionBox> (this, &QmitkToolRoiDataSelectionBox::OnToolManagerRoiDataModified); }
QmitkToolRoiDataSelectionBox::~QmitkToolRoiDataSelectionBox | ( | ) | [virtual] |
Definition at line 34 of file QmitkToolRoiDataSelectionBox.cpp.
{ }
mitk::DataStorage * QmitkToolRoiDataSelectionBox::GetDataStorage | ( | ) |
Definition at line 45 of file QmitkToolRoiDataSelectionBox.cpp.
References m_ToolManager.
{ return m_ToolManager->GetDataStorage(); }
mitk::ToolManager::DataVectorType QmitkToolRoiDataSelectionBox::GetSelection | ( | ) |
mitk::ToolManager * QmitkToolRoiDataSelectionBox::GetToolManager | ( | ) |
Definition at line 60 of file QmitkToolRoiDataSelectionBox.cpp.
References m_ToolManager.
{ return m_ToolManager; }
void QmitkToolRoiDataSelectionBox::OnRoiDataSelectionChanged | ( | const QString & | name ) | [protected, slot] |
Definition at line 72 of file QmitkToolRoiDataSelectionBox.cpp.
References QmitkBoundingObjectWidget::GetAllBoundingObjects(), m_boundingObjectWidget, m_lastSelectedName, m_lastSelection, m_SelfCall, m_ToolManager, and QmitkBoundingObjectWidget::setEnabled().
Referenced by QmitkToolRoiDataSelectionBox(), setEnabled(), and UpdateComboBoxData().
{ if (name.compare(tr("")) == 0) return; m_lastSelectedName = name; m_boundingObjectWidget->setEnabled(false); mitk::DataNode::Pointer selection = NULL; if ( name.compare(tr("none"))==0); else if (name.compare(tr("bounding objects"))==0) { m_boundingObjectWidget->setEnabled(true); selection = m_boundingObjectWidget->GetAllBoundingObjects(); } else { selection = m_ToolManager->GetDataStorage()->GetNamedNode(name.toLocal8Bit().data()); } if (selection == m_lastSelection) return; m_lastSelection = selection; m_SelfCall = true; m_ToolManager->SetRoiData(selection); m_SelfCall = false; }
void QmitkToolRoiDataSelectionBox::OnToolManagerRoiDataModified | ( | ) |
Definition at line 65 of file QmitkToolRoiDataSelectionBox.cpp.
References m_SelfCall.
Referenced by QmitkToolRoiDataSelectionBox(), and SetToolManager().
{ if (m_SelfCall) return; //UpdateComboBoxData(); }
void QmitkToolRoiDataSelectionBox::RoiDataSelected | ( | const mitk::DataNode * | node ) | [signal] |
void QmitkToolRoiDataSelectionBox::SetDataStorage | ( | mitk::DataStorage & | storage ) |
Definition at line 38 of file QmitkToolRoiDataSelectionBox.cpp.
References m_boundingObjectWidget, m_ToolManager, QmitkBoundingObjectWidget::SetDataStorage(), and UpdateComboBoxData().
{ m_ToolManager->SetDataStorage(storage); m_boundingObjectWidget->SetDataStorage(&storage); UpdateComboBoxData(); }
void QmitkToolRoiDataSelectionBox::setEnabled | ( | bool | flag ) |
Definition at line 140 of file QmitkToolRoiDataSelectionBox.cpp.
References m_segmentationComboBox, and OnRoiDataSelectionChanged().
{ if (!flag) this->OnRoiDataSelectionChanged(tr("none")); m_segmentationComboBox->setEnabled(flag); }
void QmitkToolRoiDataSelectionBox::SetToolManager | ( | mitk::ToolManager & | manager ) |
Definition at line 50 of file QmitkToolRoiDataSelectionBox.cpp.
References m_ToolManager, and OnToolManagerRoiDataModified().
{ //remove old messagedelegates m_ToolManager->RoiDataChanged -= mitk::MessageDelegate<QmitkToolRoiDataSelectionBox> (this, &QmitkToolRoiDataSelectionBox::OnToolManagerRoiDataModified); //set new toolmanager m_ToolManager = &manager; //add new message delegates m_ToolManager->RoiDataChanged += mitk::MessageDelegate<QmitkToolRoiDataSelectionBox> (this, &QmitkToolRoiDataSelectionBox::OnToolManagerRoiDataModified); }
void QmitkToolRoiDataSelectionBox::UpdateComboBoxData | ( | ) |
Definition at line 101 of file QmitkToolRoiDataSelectionBox.cpp.
References m_lastSelectedName, m_segmentationComboBox, m_ToolManager, mitk::NodePredicateAnd::New(), mitk::NodePredicateNot::New(), mitk::NodePredicateDataType::New(), mitk::BoolProperty::New(), mitk::NodePredicateProperty::New(), and OnRoiDataSelectionChanged().
Referenced by SetDataStorage().
{ m_segmentationComboBox->clear(); m_segmentationComboBox->addItem(tr("none")); m_segmentationComboBox->insertSeparator(1); //predicates for combobox mitk::NodePredicateProperty::Pointer isBinary= mitk::NodePredicateProperty::New("binary", mitk::BoolProperty::New(true)); mitk::NodePredicateDataType::Pointer isImage= mitk::NodePredicateDataType::New("Image"); mitk::NodePredicateProperty::Pointer isHelperObject= mitk::NodePredicateProperty::New("helper object", mitk::BoolProperty::New(true)); mitk::NodePredicateNot::Pointer isNotHelperObject = mitk::NodePredicateNot::New(isHelperObject); mitk::NodePredicateAnd::Pointer segmentationPredicate = mitk::NodePredicateAnd::New(isImage, isBinary, isNotHelperObject); mitk::DataStorage::SetOfObjects::ConstPointer allSegmentations = m_ToolManager->GetDataStorage()->GetSubset(segmentationPredicate); QStringList names; for (mitk::DataStorage::SetOfObjects::const_iterator it = allSegmentations->begin(); it != allSegmentations->end(); ++it) { mitk::DataNode::Pointer node = *it; QString name = QString::fromLocal8Bit(node->GetName().c_str()); names.append(name); } if (names.length() > 0) { m_segmentationComboBox->addItems(names); m_segmentationComboBox->insertSeparator(names.length()+2); } m_segmentationComboBox->addItem(tr("bounding objects")); int id = m_segmentationComboBox->findText(m_lastSelectedName); if (id < 0) this->OnRoiDataSelectionChanged(tr("none")); else m_segmentationComboBox->setCurrentIndex(id); }
Definition at line 39 of file QmitkToolRoiDataSelectionBox.h.
Referenced by OnRoiDataSelectionChanged(), QmitkToolRoiDataSelectionBox(), and SetDataStorage().
QString QmitkToolRoiDataSelectionBox::m_lastSelectedName [protected] |
Definition at line 46 of file QmitkToolRoiDataSelectionBox.h.
Referenced by OnRoiDataSelectionChanged(), and UpdateComboBoxData().
Definition at line 45 of file QmitkToolRoiDataSelectionBox.h.
Referenced by OnRoiDataSelectionChanged().
QComboBox* QmitkToolRoiDataSelectionBox::m_segmentationComboBox [protected] |
Definition at line 40 of file QmitkToolRoiDataSelectionBox.h.
Referenced by QmitkToolRoiDataSelectionBox(), setEnabled(), and UpdateComboBoxData().
bool QmitkToolRoiDataSelectionBox::m_SelfCall [protected] |
Definition at line 43 of file QmitkToolRoiDataSelectionBox.h.
Referenced by OnRoiDataSelectionChanged(), and OnToolManagerRoiDataModified().
Definition at line 42 of file QmitkToolRoiDataSelectionBox.h.
Referenced by GetDataStorage(), GetToolManager(), OnRoiDataSelectionChanged(), QmitkToolRoiDataSelectionBox(), SetDataStorage(), SetToolManager(), and UpdateComboBoxData().