Signals | Public Member Functions | Protected Slots | Protected Attributes

QmitkToolRoiDataSelectionBox Class Reference

#include <QmitkToolRoiDataSelectionBox.h>

Collaboration diagram for QmitkToolRoiDataSelectionBox:
Collaboration graph
[legend]

List of all members.

Signals

void RoiDataSelected (const mitk::DataNode *node)

Public Member Functions

 QmitkToolRoiDataSelectionBox (QWidget *parent=0, mitk::DataStorage *storage=0)
virtual ~QmitkToolRoiDataSelectionBox ()
mitk::DataStorageGetDataStorage ()
void SetDataStorage (mitk::DataStorage &storage)
mitk::ToolManagerGetToolManager ()
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

QmitkBoundingObjectWidgetm_boundingObjectWidget
QComboBox * m_segmentationComboBox
mitk::ToolManager::Pointer m_ToolManager
bool m_SelfCall
mitk::DataNode::Pointer m_lastSelection
QString m_lastSelectedName

Detailed Description

Definition at line 9 of file QmitkToolRoiDataSelectionBox.h.


Constructor & Destructor Documentation

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.

{
}

Member Function Documentation

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 )
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);
}

Member Data Documentation

Definition at line 46 of file QmitkToolRoiDataSelectionBox.h.

Referenced by OnRoiDataSelectionChanged(), and UpdateComboBoxData().

Definition at line 45 of file QmitkToolRoiDataSelectionBox.h.

Referenced by OnRoiDataSelectionChanged().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines