Public Member Functions | Public Attributes

SelListenerDeformableRegistration Struct Reference

Inheritance diagram for SelListenerDeformableRegistration:
Inheritance graph
[legend]
Collaboration diagram for SelListenerDeformableRegistration:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 berryObjectMacro (SelListenerDeformableRegistration)
 SelListenerDeformableRegistration (QmitkDeformableRegistrationView *view)
void DoSelectionChanged (ISelection::ConstPointer selection)
void SelectionChanged (IWorkbenchPart::Pointer part, ISelection::ConstPointer selection)

Public Attributes

QmitkDeformableRegistrationViewm_View

Detailed Description

Definition at line 55 of file QmitkDeformableRegistrationView.cpp.


Constructor & Destructor Documentation

SelListenerDeformableRegistration::SelListenerDeformableRegistration ( QmitkDeformableRegistrationView view ) [inline]

Definition at line 59 of file QmitkDeformableRegistrationView.cpp.

  {
    m_View = view;
  }

Member Function Documentation

SelListenerDeformableRegistration::berryObjectMacro ( SelListenerDeformableRegistration   )
void SelListenerDeformableRegistration::DoSelectionChanged ( ISelection::ConstPointer  selection ) [inline]

Definition at line 64 of file QmitkDeformableRegistrationView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), and QmitkDeformableRegistrationView::m_CurrentSelection.

  {
//    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_SwitchImages->hide();
          m_View->m_Controls.m_FixedLabel->hide();
          m_View->m_Controls.TextLabelMoving->hide();
          m_View->m_Controls.m_MovingLabel->hide();
          m_View->m_Controls.m_OpacityLabel->setEnabled(false);
          m_View->m_Controls.m_OpacitySlider->setEnabled(false);
          m_View->m_Controls.label->setEnabled(false);
          m_View->m_Controls.label_2->setEnabled(false);
          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::DataNode::Pointer node = nodeObj->GetDataNode();
            // only look at interesting types
            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, "DeformableRegistration", "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_SwitchImages->show();
                m_View->m_Controls.m_FixedLabel->show();
                m_View->m_Controls.TextLabelMoving->show();
                m_View->m_Controls.m_MovingLabel->show();
                m_View->m_Controls.m_OpacityLabel->setEnabled(true);
                m_View->m_Controls.m_OpacitySlider->setEnabled(true);
                m_View->m_Controls.label->setEnabled(true);
                m_View->m_Controls.label_2->setEnabled(true);
                m_View->m_Controls.m_ShowRedGreenValues->setEnabled(true);
              }
            }
            else
            {
              m_View->m_Controls.m_StatusLabel->show();
              return;
            }
          }
        }
      }
    }
    else if (m_View->m_FixedNode.IsNull() || m_View->m_MovingNode.IsNull())
    {
      m_View->m_Controls.m_StatusLabel->show();
    }
  }
void SelListenerDeformableRegistration::SelectionChanged ( IWorkbenchPart::Pointer  part,
ISelection::ConstPointer  selection 
) [inline, virtual]

Implements berry::ISelectionListener.

Definition at line 151 of file QmitkDeformableRegistrationView.cpp.

  {
    // check, if selection comes from datamanager
    if (part)
    {
      QString partname(part->GetPartName().c_str());
      if(partname.compare("Datamanager")==0)
      {
        // apply selection
        DoSelectionChanged(selection);
      }
    }
  }

Member Data Documentation

Definition at line 165 of file QmitkDeformableRegistrationView.cpp.


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