

Public Member Functions | |
| berryObjectMacro (SelListenerPointBasedRegistration) | |
| SelListenerPointBasedRegistration (QmitkPointBasedRegistrationView *view) | |
| void | DoSelectionChanged (ISelection::ConstPointer selection) |
| void | SelectionChanged (IWorkbenchPart::Pointer part, ISelection::ConstPointer selection) |
Public Attributes | |
| QmitkPointBasedRegistrationView * | m_View |
Definition at line 62 of file QmitkPointBasedRegistrationView.cpp.
| SelListenerPointBasedRegistration::SelListenerPointBasedRegistration | ( | QmitkPointBasedRegistrationView * | view ) | [inline] |
Definition at line 66 of file QmitkPointBasedRegistrationView.cpp.
{
m_View = view;
}
| SelListenerPointBasedRegistration::berryObjectMacro | ( | SelListenerPointBasedRegistration | ) |
| void SelListenerPointBasedRegistration::DoSelectionChanged | ( | ISelection::ConstPointer | selection ) | [inline] |
Definition at line 71 of file QmitkPointBasedRegistrationView.cpp.
References berry::SmartPointer< TObjectType >::Cast(), QmitkPointBasedRegistrationView::m_CurrentSelection, mitk::NodePredicateAnd::New(), and mitk::NodePredicateNot::New().
{
// if(!m_View->IsVisible())
// return;
// save current selection in member variable
m_View->m_CurrentSelection = selection.Cast<const IStructuredSelection>();
// do something with the selected items
if(m_View->m_CurrentSelection)
{
if (m_View->m_CurrentSelection->Size() != 2)
{
if (m_View->m_FixedNode.IsNull() || m_View->m_MovingNode.IsNull())
{
m_View->m_Controls.m_StatusLabel->show();
m_View->m_Controls.TextLabelFixed->hide();
m_View->m_Controls.m_FixedLabel->hide();
m_View->m_Controls.line2->hide();
m_View->m_Controls.m_FixedPointListWidget->hide();
m_View->m_Controls.TextLabelMoving->hide();
m_View->m_Controls.m_MovingLabel->hide();
m_View->m_Controls.line1->hide();
m_View->m_Controls.m_MovingPointListWidget->hide();
m_View->m_Controls.m_OpacityLabel->hide();
m_View->m_Controls.m_OpacitySlider->hide();
m_View->m_Controls.label->hide();
m_View->m_Controls.label_2->hide();
m_View->m_Controls.m_SwitchImages->hide();
m_View->m_Controls.m_ShowRedGreenValues->setEnabled(false);
}
}
else
{
m_View->m_Controls.m_StatusLabel->hide();
bool foundFixedImage = false;
mitk::DataNode::Pointer fixedNode;
// iterate selection
for (IStructuredSelection::iterator i = m_View->m_CurrentSelection->Begin();
i != m_View->m_CurrentSelection->End(); ++i)
{
// extract datatree node
if (mitk::DataNodeObject::Pointer nodeObj = i->Cast<mitk::DataNodeObject>())
{
mitk::TNodePredicateDataType<mitk::BaseData>::Pointer isBaseData(mitk::TNodePredicateDataType<mitk::BaseData>::New());
mitk::TNodePredicateDataType<mitk::PointSet>::Pointer isPointSet(mitk::TNodePredicateDataType<mitk::PointSet>::New());
mitk::NodePredicateNot::Pointer notPointSet = mitk::NodePredicateNot::New(isPointSet);
mitk::TNodePredicateDataType<mitk::Geometry2DData>::Pointer isGeometry2DData(mitk::TNodePredicateDataType<mitk::Geometry2DData>::New());
mitk::NodePredicateNot::Pointer notGeometry2DData = mitk::NodePredicateNot::New(isGeometry2DData);
mitk::NodePredicateAnd::Pointer notPointSetAndNotGeometry2DData = mitk::NodePredicateAnd::New( notPointSet, notGeometry2DData );
mitk::NodePredicateAnd::Pointer predicate = mitk::NodePredicateAnd::New( isBaseData, notPointSetAndNotGeometry2DData );
mitk::DataStorage::SetOfObjects::ConstPointer setOfObjects = m_View->GetDataStorage()->GetSubset(predicate);
mitk::DataNode::Pointer node = nodeObj->GetDataNode();
// only look at interesting types
for (mitk::DataStorage::SetOfObjects::ConstIterator nodeIt = setOfObjects->Begin()
; nodeIt != setOfObjects->End(); ++nodeIt) // for each node
{
if(nodeIt->Value().GetPointer() == node.GetPointer())
{
if(QString("Image").compare(node->GetData()->GetNameOfClass())==0)
{
if (dynamic_cast<mitk::Image*>(node->GetData())->GetDimension() == 4)
{
m_View->m_Controls.m_StatusLabel->show();
QMessageBox::information( NULL, "PointBasedRegistration", "Only 2D or 3D images can be processed.", QMessageBox::Ok );
return;
}
if (foundFixedImage == false)
{
fixedNode = node;
foundFixedImage = true;
}
else
{
m_View->SetImagesVisible(selection);
m_View->FixedSelected(fixedNode);
m_View->MovingSelected(node);
m_View->m_Controls.m_StatusLabel->hide();
m_View->m_Controls.TextLabelFixed->show();
m_View->m_Controls.m_FixedLabel->show();
m_View->m_Controls.line2->show();
m_View->m_Controls.m_FixedPointListWidget->show();
m_View->m_Controls.TextLabelMoving->show();
m_View->m_Controls.m_MovingLabel->show();
m_View->m_Controls.line1->show();
m_View->m_Controls.m_MovingPointListWidget->show();
m_View->m_Controls.m_OpacityLabel->show();
m_View->m_Controls.m_OpacitySlider->show();
m_View->m_Controls.label->show();
m_View->m_Controls.label_2->show();
m_View->m_Controls.m_SwitchImages->show();
m_View->m_Controls.m_ShowRedGreenValues->setEnabled(true);
}
}
else
{
m_View->m_Controls.m_StatusLabel->show();
return;
}
}
}
}
}
if (m_View->m_FixedNode.IsNull() || m_View->m_MovingNode.IsNull())
{
m_View->m_Controls.m_StatusLabel->show();
}
}
}
else if (m_View->m_FixedNode.IsNull() || m_View->m_MovingNode.IsNull())
{
m_View->m_Controls.m_StatusLabel->show();
}
}
| void SelListenerPointBasedRegistration::SelectionChanged | ( | IWorkbenchPart::Pointer | part, |
| ISelection::ConstPointer | selection | ||
| ) | [inline, virtual] |
Implements berry::ISelectionListener.
Definition at line 191 of file QmitkPointBasedRegistrationView.cpp.
{
// check, if selection comes from datamanager
if (part)
{
QString partname(part->GetPartName().c_str());
if(partname.compare("Datamanager")==0)
{
// apply selection
DoSelectionChanged(selection);
}
}
}
Definition at line 205 of file QmitkPointBasedRegistrationView.cpp.
1.7.2