Public Slots | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends

QmitkDataManagerView Class Reference
[Internal]

A View class that can show all data tree nodes of a certain DataStorage. More...

#include <QmitkDataManagerView.h>

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

List of all members.

Public Slots

void OpacityChanged (int value)
void OpacityActionChanged ()
void ColorChanged ()
void ColorActionChanged ()
void TextureInterpolationChanged ()
void TextureInterpolationToggled (bool checked)
void SurfaceRepresentationMenuAboutToShow ()
void SurfaceRepresentationActionToggled (bool checked)
void NodeTableViewContextMenuRequested (const QPoint &index)
 Shows a node context menu.
void SaveSelectedNodes (bool checked=false)
 Invoked when an element should be saved.
void RemoveSelectedNodes (bool checked=false)
 Invoked when an element should be removed.
void ReinitSelectedNodes (bool checked=false)
 Invoked when an element should be reinitiliased.
void MakeAllNodesInvisible (bool checked=false)
 Invoked when the visibility of the selected nodes should be toggled.
void ShowOnlySelectedNodes (bool checked=false)
 Makes all selected nodes visible, all other nodes invisible.
void ToggleVisibilityOfSelectedNodes (bool checked=false)
 Invoked when the visibility of the selected nodes should be toggled.
void ShowInfoDialogForSelectedNodes (bool checked=false)
 Invoked when infos of the selected nodes should be shown in a dialog.
void Load (bool checked=false)
 Shows a load dialog.
void GlobalReinit (bool checked=false)
 Reinits everything.
void OnPreferencesChanged (const berry::IBerryPreferences *)
void ContextMenuActionTriggered (bool)
 will be toggled when a extension point context menu action is toggled this is a proxy method which will load the corresponding extension class and run IContextMenuAction
virtual void SelectionChanged (berry::IWorkbenchPart::Pointer part, berry::ISelection::ConstPointer selection)
void OtsuFilter (bool checked=false)
 Invoked when the median action is invoked.
void NodeTreeViewRowsInserted (const QModelIndex &parent, int start, int end)
 When rows are inserted auto expand them.
void NodeSelectionChanged (const QItemSelection &selected, const QItemSelection &deselected)
 Whenever the selection changes set the "selected" property respectively.

Public Member Functions

 QmitkDataManagerView ()
 Standard ctor.
virtual ~QmitkDataManagerView ()
 Standard dtor.
std::vector< mitk::DataNode * > GetSelectedNodes () const
 Returns all selected nodes in a vector.

Static Public Attributes

static const std::string VIEW_ID = "org.mitk.views.datamanager"

Protected Member Functions

virtual void CreateQtPartControl (QWidget *parent)
 Create the view here.
void SetFocus ()
mitk::DataStorage::Pointer GetDataStorage () const
void FileOpen (const char *fileName, mitk::DataNode *parentNode)
 Shows a file open dialog.

Protected Attributes

QWidget * m_Parent
QmitkDnDFrameWidgetm_DndFrameWidget
QmitkDataStorageTreeModelm_NodeTreeModel
 A plain widget as the base pane.
QmitkDataNodeSelectionProvider::Pointer m_SelectionProvider
 The BlueBerry selection provider.
berry::IBerryPreferences::Pointer m_DataManagerPreferencesNode
std::map< QAction
*, berry::IConfigurationElement::Pointer
m_ConfElements
QTreeView * m_NodeTreeView
 The Table view to show the selected nodes.
QMenu * m_NodeMenu
 The context menu that shows up when right clicking on a node.
QAction * m_GlobalReinitAction
QAction * m_SaveAction
 Save Action.
QAction * m_RemoveAction
 Remove Action.
QAction * m_ReinitAction
 Reinit Action.
QSlider * m_OpacitySlider
 A Slider widget to change the opacity of a node.
QWidgetAction * m_OpacityAction
 Opacity action.
QPushButton * m_ColorButton
 button to change the color of a node
QWidgetAction * m_ColorAction
 Color action.
QAction * m_TextureInterpolation
 TextureInterpolation action.
QAction * m_SurfaceRepresentation
 TextureInterpolation action.
QAction * m_ShowOnlySelectedNodes
 Show only selected nodes.
QAction * m_ToggleSelectedVisibility
 Toggles visibility of selected nodes.
QAction * m_ActionShowInfoDialog
 Shows infos for selected nodes.
QAction * m_OtsuFilterAction
 Special filter action for images.
berry::ISelectionListener::Pointer m_SelectionListener
 A selection listener for datatreenode events.

Friends

struct berry::SelectionChangedAdapter< QmitkDataManagerView >
 berry::SelectionChangedAdapter<QmitkPropertyListView> must be a friend to call

Detailed Description

A View class that can show all data tree nodes of a certain DataStorage.

: complete PACS support, in save dialog show regular filename

Definition at line 62 of file QmitkDataManagerView.h.


Constructor & Destructor Documentation

QmitkDataManagerView::QmitkDataManagerView (  )

Standard ctor.

Definition at line 91 of file QmitkDataManagerView.cpp.

{
}
QmitkDataManagerView::~QmitkDataManagerView (  ) [virtual]

Member Function Documentation

void QmitkDataManagerView::ColorActionChanged (  ) [slot]

Invoked when the color action changed

Definition at line 474 of file QmitkDataManagerView.cpp.

References QmitkDataStorageTreeModel::GetNode(), mitk::DataNode::GetProperty(), m_ColorButton, m_NodeTreeModel, m_NodeTreeView, and MITK_INFO.

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(node)
  {
    mitk::Color color;
    mitk::ColorProperty::Pointer colorProp;
    node->GetProperty(colorProp,"color");
    if(colorProp.IsNull())
      return;
    color = colorProp->GetValue();

    QString styleSheet = "background-color:rgb(";
    styleSheet.append(QString::number(color[0]*255));
    styleSheet.append(",");
    styleSheet.append(QString::number(color[1]*255));
    styleSheet.append(",");
    styleSheet.append(QString::number(color[2]*255));
    styleSheet.append(")");
    m_ColorButton->setStyleSheet(styleSheet);
  }
  MITK_INFO << "changed";
}
void QmitkDataManagerView::ColorChanged (  ) [slot]

Invoked when the color button is pressed

Definition at line 460 of file QmitkDataManagerView.cpp.

References mitk::RenderingManager::GetInstance(), QmitkDataStorageTreeModel::GetNode(), m_ColorButton, m_NodeTreeModel, m_NodeTreeView, MITK_INFO, mitk::ColorProperty::New(), and mitk::DataNode::SetProperty().

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(node)
  {
    QColor color = QColorDialog::getColor();
    m_ColorButton->setAutoFillBackground(true);
    node->SetProperty("color",mitk::ColorProperty::New(color.red()/255.0,color.green()/255.0,color.blue()/255.0));
    mitk::RenderingManager::GetInstance()->RequestUpdateAll();
  }

  MITK_INFO << "slider changed";
}
void QmitkDataManagerView::ContextMenuActionTriggered ( bool   ) [slot]

will be toggled when a extension point context menu action is toggled this is a proxy method which will load the corresponding extension class and run IContextMenuAction

Definition at line 347 of file QmitkDataManagerView.cpp.

References GetDataStorage(), GetSelectedNodes(), m_ConfElements, MITK_WARN, mitk::IContextMenuAction::SetFunctionality(), and mitk::IContextMenuAction::SetSmoothed().

{
  QAction* action = qobject_cast<QAction*> ( sender() );
  
  std::map<QAction*, berry::IConfigurationElement::Pointer>::iterator it
    = m_ConfElements.find( action );
  if( it == m_ConfElements.end() )
  {
    MITK_WARN << "associated conf element for action " << action->text().toStdString() << " not found";
    return;
  }
  berry::IConfigurationElement::Pointer confElem = it->second;
  mitk::IContextMenuAction* contextMenuAction = dynamic_cast<mitk::IContextMenuAction*>
    (confElem->CreateExecutableExtension<mitk::IContextMenuAction>("class") );
  std::string className;
  std::string smoothed;
  confElem->GetAttribute("class", className);
  confElem->GetAttribute("smoothed", smoothed);
  if(className == "QmitkThresholdAction")
  {
    contextMenuAction->SetDataStorage(this->GetDataStorage());
  }
  if(className == "QmitkCreatePolygonModelAction")
  {
    contextMenuAction->SetDataStorage(this->GetDataStorage());
    if(smoothed == "false")
    {
      contextMenuAction->SetSmoothed(false);
    }
    else
    {
      contextMenuAction->SetSmoothed(true);
    }
  }
  if(className == "QmitkStatisticsAction")
  {
    contextMenuAction->SetFunctionality(this);
  }
  contextMenuAction->Run( this->GetSelectedNodes() ); // run the action
}
void QmitkDataManagerView::CreateQtPartControl ( QWidget *  parent ) [protected, virtual]

Create the view here.

Implements berry::QtViewPart.

Definition at line 113 of file QmitkDataManagerView.cpp.

References QmitkNodeDescriptor::AddAction(), ColorActionChanged(), ColorChanged(), GetDataStorage(), QmitkNodeDescriptorManager::GetDescriptor(), berry::Platform::GetExtensionPointService(), QmitkNodeDescriptorManager::GetInstance(), berry::Platform::GetServiceRegistry(), berry::WorkbenchPart::GetSite(), QmitkNodeDescriptorManager::GetUnknownDataNodeDescriptor(), GlobalReinit(), ID, m_ActionShowInfoDialog, m_ColorAction, m_ColorButton, m_DndFrameWidget, m_GlobalReinitAction, m_NodeMenu, m_NodeTreeModel, m_NodeTreeView, m_OpacityAction, m_OpacitySlider, m_OtsuFilterAction, m_Parent, m_ReinitAction, m_RemoveAction, m_SaveAction, m_SelectionListener, m_SelectionProvider, m_ShowOnlySelectedNodes, m_SurfaceRepresentation, m_TextureInterpolation, m_ToggleSelectedVisibility, NodeSelectionChanged(), NodeTableViewContextMenuRequested(), NodeTreeViewRowsInserted(), OnPreferencesChanged(), OpacityActionChanged(), OpacityChanged(), OtsuFilter(), ReinitSelectedNodes(), RemoveSelectedNodes(), SaveSelectedNodes(), SelectionChanged(), QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop(), ShowInfoDialogForSelectedNodes(), ShowOnlySelectedNodes(), SurfaceRepresentationMenuAboutToShow(), TextureInterpolationChanged(), TextureInterpolationToggled(), ToggleVisibilityOfSelectedNodes(), and VIEW_ID.

{
  m_Parent = parent;
  //# Preferences
  berry::IPreferencesService::Pointer prefService
    = berry::Platform::GetServiceRegistry()
    .GetServiceById<berry::IPreferencesService>(berry::IPreferencesService::ID);

  berry::IBerryPreferences::Pointer prefs
      = (prefService->GetSystemPreferences()->Node(VIEW_ID))
        .Cast<berry::IBerryPreferences>();
  assert( prefs );
  prefs->OnChanged.AddListener( berry::MessageDelegate1<QmitkDataManagerView
    , const berry::IBerryPreferences*>( this
      , &QmitkDataManagerView::OnPreferencesChanged ) );

  //# GUI
  m_NodeTreeModel = new QmitkDataStorageTreeModel(this->GetDataStorage());
  m_NodeTreeModel->setParent( parent );
  m_NodeTreeModel->SetPlaceNewNodesOnTop(
      prefs->GetBool("Place new nodes on top", true) );

  //# Tree View (experimental)
  m_NodeTreeView = new QTreeView;
  m_NodeTreeView->setSelectionMode( QAbstractItemView::ExtendedSelection );
  m_NodeTreeView->setSelectionBehavior( QAbstractItemView::SelectRows );
  m_NodeTreeView->setAlternatingRowColors(true);
  m_NodeTreeView->setDragEnabled(true);
  m_NodeTreeView->setDropIndicatorShown(true);
  m_NodeTreeView->setAcceptDrops(true);
  m_NodeTreeView->setContextMenuPolicy(Qt::CustomContextMenu);
  m_NodeTreeView->setModel(m_NodeTreeModel);
  m_NodeTreeView->installEventFilter(new QmitkNodeTableViewKeyFilter(this));
  QObject::connect( m_NodeTreeView, SIGNAL(customContextMenuRequested(const QPoint&))
    , this, SLOT(NodeTableViewContextMenuRequested(const QPoint&)) );
  QObject::connect( m_NodeTreeModel, SIGNAL(rowsInserted (const QModelIndex&, int, int))
    , this, SLOT(NodeTreeViewRowsInserted ( const QModelIndex&, int, int )) );
  QObject::connect( m_NodeTreeView->selectionModel()
    , SIGNAL( selectionChanged ( const QItemSelection &, const QItemSelection & ) )
    , this
    , SLOT( NodeSelectionChanged ( const QItemSelection &, const QItemSelection & ) ) );

  //# m_NodeMenu
  m_NodeMenu = new QMenu(m_NodeTreeView);

  //# m_SelectionProvider
  m_SelectionProvider = new QmitkDataNodeSelectionProvider();
  m_SelectionProvider->SetItemSelectionModel(m_NodeTreeView->selectionModel());
  this->GetSite()->SetSelectionProvider(m_SelectionProvider);

  // # Actions
  QmitkNodeDescriptor* unknownDataNodeDescriptor =
    QmitkNodeDescriptorManager::GetInstance()->GetUnknownDataNodeDescriptor();

  QmitkNodeDescriptor* imageDataNodeDescriptor =
    QmitkNodeDescriptorManager::GetInstance()->GetDescriptor("Image");

  QmitkNodeDescriptor* surfaceDataNodeDescriptor =
    QmitkNodeDescriptorManager::GetInstance()->GetDescriptor("Surface");

  m_GlobalReinitAction = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/Refresh_48.png"), "Global Reinit", this);
  QObject::connect( m_GlobalReinitAction, SIGNAL( triggered(bool) )
    , this, SLOT( GlobalReinit(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_GlobalReinitAction);

  m_SaveAction = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/Save_48.png"), "Save...", this);
  QObject::connect( m_SaveAction, SIGNAL( triggered(bool) )
    , this, SLOT( SaveSelectedNodes(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_SaveAction);

  m_RemoveAction = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/Remove_48.png"), "Remove", this);
  QObject::connect( m_RemoveAction, SIGNAL( triggered(bool) )
    , this, SLOT( RemoveSelectedNodes(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_RemoveAction);

  m_ReinitAction = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/Refresh_48.png"), "Reinit", this);
  QObject::connect( m_ReinitAction, SIGNAL( triggered(bool) )
    , this, SLOT( ReinitSelectedNodes(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_ReinitAction);

  // find contextMenuAction extension points and add them to the node descriptor
  berry::IExtensionPointService::Pointer extensionPointService = berry::Platform::GetExtensionPointService();
  berry::IConfigurationElement::vector cmActions(
    extensionPointService->GetConfigurationElementsFor("org.mitk.gui.qt.datamanager.contextMenuActions") );
  berry::IConfigurationElement::vector::iterator cmActionsIt;

  //std::string cmNodeDescriptorName;
  //std::string cmLabel;
  //std::string cmIcon;
  //std::string cmClass;

  //QmitkNodeDescriptor* tmpDescriptor;
  //QAction* contextMenuAction;
  //QVariant cmActionDataIt;
  //m_ConfElements.clear();

  //int i=1;
  //for (cmActionsIt = cmActions.begin()
  //  ; cmActionsIt != cmActions.end()
  //  ; ++cmActionsIt)
  //{
  //  cmIcon.erase();
  //  if((*cmActionsIt)->GetAttribute("nodeDescriptorName", cmNodeDescriptorName)
  //    && (*cmActionsIt)->GetAttribute("label", cmLabel)
  //    && (*cmActionsIt)->GetAttribute("class", cmClass))
  //  {
  //    (*cmActionsIt)->GetAttribute("icon", cmIcon);
  //    // create context menu entry here
  //    tmpDescriptor = QmitkNodeDescriptorManager::GetInstance()->GetDescriptor(QString::fromStdString(cmNodeDescriptorName));
  //    if(!tmpDescriptor)
  //    {
  //      MITK_WARN << "cannot add action \"" << cmLabel << "\" because descriptor " << cmNodeDescriptorName << " does not exist";
  //      continue;
  //    }
  //    contextMenuAction = new QAction( QString::fromStdString(cmLabel), parent);
  //    tmpDescriptor->AddAction(contextMenuAction);
  //    m_ConfElements[contextMenuAction] = *cmActionsIt;

  //    cmActionDataIt.setValue<int>(i);
  //    contextMenuAction->setData( cmActionDataIt );
  //    connect( contextMenuAction, SIGNAL( triggered(bool) ) , this, SLOT( ContextMenuActionTriggered(bool) ) );
  //    ++i;
  //  }
  //}

  m_OpacitySlider = new QSlider;
  m_OpacitySlider->setMinimum(0);
  m_OpacitySlider->setMaximum(100);
  m_OpacitySlider->setOrientation(Qt::Horizontal);
  QObject::connect( m_OpacitySlider, SIGNAL( valueChanged(int) )
    , this, SLOT( OpacityChanged(int) ) );

  QLabel* _OpacityLabel = new QLabel("Opacity: ");
  QHBoxLayout* _OpacityWidgetLayout = new QHBoxLayout;
  _OpacityWidgetLayout->setContentsMargins(4,4,4,4);
  _OpacityWidgetLayout->addWidget(_OpacityLabel);
  _OpacityWidgetLayout->addWidget(m_OpacitySlider);
  QWidget* _OpacityWidget = new QWidget;
  _OpacityWidget->setLayout(_OpacityWidgetLayout);

  m_OpacityAction = new QWidgetAction(this);
  m_OpacityAction->setDefaultWidget(_OpacityWidget);
  QObject::connect( m_OpacityAction, SIGNAL( changed() )
    , this, SLOT( OpacityActionChanged() ) );
  unknownDataNodeDescriptor->AddAction(m_OpacityAction, false);

  m_ColorButton = new QPushButton;
  m_ColorButton->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum);
  //m_ColorButton->setText("Change color");
  QObject::connect( m_ColorButton, SIGNAL( clicked() )
    , this, SLOT( ColorChanged() ) );

  QLabel* _ColorLabel = new QLabel("Color: ");
  _ColorLabel->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
  QHBoxLayout* _ColorWidgetLayout = new QHBoxLayout;
  _ColorWidgetLayout->setContentsMargins(4,4,4,4);
  _ColorWidgetLayout->addWidget(_ColorLabel);
  _ColorWidgetLayout->addWidget(m_ColorButton);
  QWidget* _ColorWidget = new QWidget;
  _ColorWidget->setLayout(_ColorWidgetLayout);

  m_ColorAction = new QWidgetAction(this);
  m_ColorAction->setDefaultWidget(_ColorWidget);
  QObject::connect( m_ColorAction, SIGNAL( changed() )
    , this, SLOT( ColorActionChanged() ) );
  unknownDataNodeDescriptor->AddAction(m_ColorAction, false);

  m_TextureInterpolation = new QAction("Texture Interpolation", this);
  m_TextureInterpolation->setCheckable ( true );
  QObject::connect( m_TextureInterpolation, SIGNAL( changed() )
    , this, SLOT( TextureInterpolationChanged() ) );
  QObject::connect( m_TextureInterpolation, SIGNAL( toggled(bool) )
    , this, SLOT( TextureInterpolationToggled(bool) ) );
  imageDataNodeDescriptor->AddAction(m_TextureInterpolation, false);

  m_SurfaceRepresentation = new QAction("Surface Representation", this);
  m_SurfaceRepresentation->setMenu(new QMenu);

  QObject::connect( m_SurfaceRepresentation->menu(), SIGNAL( aboutToShow() )
    , this, SLOT( SurfaceRepresentationMenuAboutToShow() ) );
  surfaceDataNodeDescriptor->AddAction(m_SurfaceRepresentation, false);

  m_ShowOnlySelectedNodes
    = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/ShowSelectedNode_48.png")
    , "Show only selected nodes", this);
  QObject::connect( m_ShowOnlySelectedNodes, SIGNAL( triggered(bool) )
    , this, SLOT( ShowOnlySelectedNodes(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_ShowOnlySelectedNodes);

  m_ToggleSelectedVisibility
    = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/InvertShowSelectedNode_48.png")
    , "Toggle visibility", this);
  QObject::connect( m_ToggleSelectedVisibility, SIGNAL( triggered(bool) )
    , this, SLOT( ToggleVisibilityOfSelectedNodes(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_ToggleSelectedVisibility);

  m_ActionShowInfoDialog
    = new QAction(QIcon(":/org.mitk.gui.qt.datamanager/ShowDataInfo_48.png")
    , "Details...", this);
  QObject::connect( m_ActionShowInfoDialog, SIGNAL( triggered(bool) )
    , this, SLOT( ShowInfoDialogForSelectedNodes(bool) ) );
  unknownDataNodeDescriptor->AddAction(m_ActionShowInfoDialog);

  m_OtsuFilterAction = new QAction("Apply Otsu Filter", this);
  QObject::connect( m_OtsuFilterAction, SIGNAL( triggered(bool) )
    , this, SLOT( OtsuFilter(bool) ) );
  // Otsu filter does not work properly, remove it temporarily
  // imageDataNodeDescriptor->AddAction(m_OtsuFilterAction);

  QGridLayout* _DndFrameWidgetLayout = new QGridLayout;
  _DndFrameWidgetLayout->addWidget(m_NodeTreeView, 0, 0);
  _DndFrameWidgetLayout->setContentsMargins(0,0,0,0);

  m_DndFrameWidget = new QmitkDnDFrameWidget(m_Parent);
  m_DndFrameWidget->setLayout(_DndFrameWidgetLayout);

  QVBoxLayout* layout = new QVBoxLayout(parent);
  layout->addWidget(m_DndFrameWidget);
  layout->setContentsMargins(0,0,0,0);

  m_Parent->setLayout(layout);

  m_SelectionListener = new berry::SelectionChangedAdapter<QmitkDataManagerView>
    (this, &QmitkDataManagerView::SelectionChanged);

  berry::ISelectionService* s = GetSite()->GetWorkbenchWindow()->GetSelectionService();
  s->AddSelectionListener(m_SelectionListener);

}
void QmitkDataManagerView::FileOpen ( const char *  fileName,
mitk::DataNode parentNode 
) [protected]

Shows a file open dialog.

Definition at line 748 of file QmitkDataManagerView.cpp.

References GetDataStorage(), mitk::RenderingManager::GetInstance(), mitk::DataNodeFactory::New(), and mitk::RenderingManager::REQUEST_UPDATE_ALL.

Referenced by Load().

{
  mitk::DataNodeFactory::Pointer factory = mitk::DataNodeFactory::New();

  try
  {
    factory->SetFileName( fileName );

    QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) );

    factory->Update();

    for ( unsigned int i = 0 ; i < factory->GetNumberOfOutputs( ); ++i )
    {
      mitk::DataNode::Pointer node = factory->GetOutput( i );
      if ( ( node.IsNotNull() ) && ( node->GetData() != NULL ) )
      {
        this->GetDataStorage()->Add(node, parentNode);
        mitk::BaseData::Pointer basedata = node->GetData();
        mitk::RenderingManager::GetInstance()->InitializeViews(
          basedata->GetTimeSlicedGeometry(), mitk::RenderingManager::REQUEST_UPDATE_ALL, true );
        //mitk::RenderingManager::GetInstance()->RequestUpdateAll();
      }
    }
  }
  catch ( itk::ExceptionObject & ex )
  {
    itkGenericOutputMacro( << "Exception during file open: " << ex );
  }

  QApplication::restoreOverrideCursor();
}
mitk::DataStorage::Pointer QmitkDataManagerView::GetDataStorage (  ) const [protected]
std::vector< mitk::DataNode * > QmitkDataManagerView::GetSelectedNodes (  ) const

Returns all selected nodes in a vector.

Definition at line 796 of file QmitkDataManagerView.cpp.

References QmitkDataStorageTreeModel::GetNode(), m_NodeTreeModel, and m_NodeTreeView.

Referenced by ContextMenuActionTriggered(), NodeSelectionChanged(), NodeTableViewContextMenuRequested(), OtsuFilter(), ReinitSelectedNodes(), ShowInfoDialogForSelectedNodes(), ShowOnlySelectedNodes(), and ToggleVisibilityOfSelectedNodes().

{
  QModelIndexList indexesOfSelectedRows = m_NodeTreeView->selectionModel()->selectedRows();
  std::vector<mitk::DataNode*> selectedNodes;

  mitk::DataNode* node = 0;
  for (QModelIndexList::iterator it = indexesOfSelectedRows.begin()
    ; it != indexesOfSelectedRows.end(); it++)
  {
    node = 0;
    node = m_NodeTreeModel->GetNode(*it);
    // if node is not defined or if the node contains geometry data do not remove it
    if ( node != 0 )
      selectedNodes.push_back(node);
  }

  return selectedNodes;
}
void QmitkDataManagerView::GlobalReinit ( bool  checked = false ) [slot]

Reinits everything.

Definition at line 781 of file QmitkDataManagerView.cpp.

References GetDataStorage(), mitk::RenderingManager::GetInstance(), mitk::BoolProperty::New(), mitk::NodePredicateProperty::New(), and mitk::NodePredicateNot::New().

Referenced by CreateQtPartControl(), QmitkNodeTableViewKeyFilter::eventFilter(), and RemoveSelectedNodes().

{
  this->ReinitMultiWidgetEditor();
  // get all nodes that have not set "includeInBoundingBox" to false
  mitk::NodePredicateNot::Pointer pred
    = mitk::NodePredicateNot::New(mitk::NodePredicateProperty::New("includeInBoundingBox"
    , mitk::BoolProperty::New(false)));

  mitk::DataStorage::SetOfObjects::ConstPointer rs = this->GetDataStorage()->GetSubset(pred);
  // calculate bounding geometry of these nodes
  mitk::TimeSlicedGeometry::Pointer bounds = this->GetDataStorage()->ComputeBoundingGeometry3D(rs);
  // initialize the views to the bounding geometry
  mitk::RenderingManager::GetInstance()->InitializeViews(bounds);
}
void QmitkDataManagerView::Load ( bool  checked = false ) [slot]

Shows a load dialog.

Definition at line 739 of file QmitkDataManagerView.cpp.

References FileOpen(), and mitk::CoreObjectFactory::GetInstance().

Referenced by QmitkNodeTableViewKeyFilter::eventFilter().

{
  QStringList fileNames = QFileDialog::getOpenFileNames(NULL, "Load data", "", mitk::CoreObjectFactory::GetInstance()->GetFileExtensions());
  for ( QStringList::Iterator it = fileNames.begin(); it != fileNames.end(); ++it )
  {
    FileOpen((*it).toAscii(), 0);
  }
}
void QmitkDataManagerView::MakeAllNodesInvisible ( bool  checked = false ) [slot]

Invoked when the visibility of the selected nodes should be toggled.

Definition at line 684 of file QmitkDataManagerView.cpp.

References QmitkDataStorageTreeModel::GetNodeSet(), and m_NodeTreeModel.

Referenced by QmitkNodeTableViewKeyFilter::eventFilter().

{
  std::vector<mitk::DataNode*> nodes = m_NodeTreeModel->GetNodeSet();

  for (std::vector<mitk::DataNode*>::iterator it = nodes.begin()
    ; it != nodes.end(); it++)
  {
    (*it)->SetVisibility(false);
  }
  //mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
void QmitkDataManagerView::NodeSelectionChanged ( const QItemSelection &  selected,
const QItemSelection &  deselected 
) [slot]

Whenever the selection changes set the "selected" property respectively.

Definition at line 912 of file QmitkDataManagerView.cpp.

References mitk::RenderingManager::GetInstance(), QmitkDataStorageTreeModel::GetNodeSet(), GetSelectedNodes(), m_NodeTreeModel, and mitk::DataNode::SetBoolProperty().

Referenced by CreateQtPartControl().

{
  std::vector<mitk::DataNode*> nodes = m_NodeTreeModel->GetNodeSet();
  mitk::DataNode* node = 0;

  for (std::vector<mitk::DataNode*>::iterator it = nodes.begin()
    ; it != nodes.end(); it++)
  {
    node = *it;
    if ( node )
      node->SetBoolProperty("selected", false);
  }

  nodes.clear();
  nodes = this->GetSelectedNodes();

  for (std::vector<mitk::DataNode*>::iterator it = nodes.begin()
    ; it != nodes.end(); it++)
  {
    node = *it;
    if ( node )
      node->SetBoolProperty("selected", true);
  }

  mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
void QmitkDataManagerView::NodeTableViewContextMenuRequested ( const QPoint &  index ) [slot]

Shows a node context menu.

Definition at line 406 of file QmitkDataManagerView.cpp.

References QmitkNodeDescriptorManager::GetActions(), QmitkNodeDescriptorManager::GetInstance(), QmitkDataStorageTreeModel::GetNode(), GetSelectedNodes(), m_NodeMenu, m_NodeTreeModel, and m_NodeTreeView.

Referenced by CreateQtPartControl().

{
  QModelIndex selected = m_NodeTreeView->indexAt ( pos );
  mitk::DataNode::Pointer node = m_NodeTreeModel->GetNode(selected);
  std::vector<mitk::DataNode*> selectedNodes = this->GetSelectedNodes();

  if(!selectedNodes.empty())
  {
    m_NodeMenu->clear();
    QList<QAction*> actions;
    if(selectedNodes.size() == 1 )
    {
      actions = QmitkNodeDescriptorManager::GetInstance()->GetActions(node);

      for(QList<QAction*>::iterator it = actions.begin(); it != actions.end(); ++it)
      {
        (*it)->setData(QVariant::fromValue(node.GetPointer()));
      }
    }
    else
      actions = QmitkNodeDescriptorManager::GetInstance()->GetActions(selectedNodes);

    m_NodeMenu->addActions(actions);
    m_NodeMenu->popup(QCursor::pos());
  }
}
void QmitkDataManagerView::NodeTreeViewRowsInserted ( const QModelIndex &  parent,
int  start,
int  end 
) [slot]

When rows are inserted auto expand them.

Definition at line 901 of file QmitkDataManagerView.cpp.

References m_NodeTreeView.

Referenced by CreateQtPartControl().

{
  m_NodeTreeView->setExpanded(parent, true);
  /*std::vector<mitk::DataNode*> nodes = m_NodeTreeModel->GetNodeSet();
  if(nodes.size() == 1)
  {
    QModelIndex treeIndex = m_NodeTreeModel->GetIndex(nodes.front());
    m_NodeTreeView->selectionModel()->select(treeIndex, QItemSelectionModel::SelectCurrent);
  }*/
}
void QmitkDataManagerView::OnPreferencesChanged ( const berry::IBerryPreferences prefs ) [slot]

Invoked when the preferences were changed

Definition at line 401 of file QmitkDataManagerView.cpp.

References berry::IPreferences::GetBool(), m_NodeTreeModel, and QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop().

Referenced by CreateQtPartControl(), and ~QmitkDataManagerView().

{
  m_NodeTreeModel->SetPlaceNewNodesOnTop( prefs->GetBool("Place new nodes on top", true) );
}
void QmitkDataManagerView::OpacityActionChanged (  ) [slot]

Invoked when the opacity action changed In this function the the opacity slider is set to the selected nodes opacity value

Definition at line 446 of file QmitkDataManagerView.cpp.

References mitk::DataNode::GetFloatProperty(), QmitkDataStorageTreeModel::GetNode(), m_NodeTreeModel, m_NodeTreeView, m_OpacitySlider, and MITK_INFO.

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(node)
  {
    float opacity = 0.0;
    if(node->GetFloatProperty("opacity", opacity))
    {
      m_OpacitySlider->setValue(static_cast<int>(opacity*100));
    }
  }
  MITK_INFO << "changed";
}
void QmitkDataManagerView::OpacityChanged ( int  value ) [slot]

Invoked when the opacity slider changed

Definition at line 433 of file QmitkDataManagerView.cpp.

References mitk::RenderingManager::GetInstance(), QmitkDataStorageTreeModel::GetNode(), m_NodeTreeModel, m_NodeTreeView, MITK_INFO, and mitk::DataNode::SetFloatProperty().

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(node)
  {
    float opacity = static_cast<float>(value)/100.0f;
    node->SetFloatProperty("opacity", opacity);
    mitk::RenderingManager::GetInstance()->RequestUpdateAll();
  }

  MITK_INFO << "slider changed";
}
void QmitkDataManagerView::OtsuFilter ( bool  checked = false ) [slot]

Invoked when the median action is invoked.

Definition at line 845 of file QmitkDataManagerView.cpp.

References mitk::CastToItkImage(), berry::QtViewPart::GetClassName(), mitk::DataNode::GetData(), GetDataStorage(), mitk::DataNode::GetName(), GetSelectedNodes(), mitk::ImportItkImage(), MITK_ERROR, mitk::BoolProperty::New(), mitk::StringProperty::New(), and mitk::DataNode::New().

Referenced by CreateQtPartControl().

{
  std::vector<mitk::DataNode*> selectedNodes = this->GetSelectedNodes();

  mitk::DataNode* _DataNode = 0;
  mitk::Image::Pointer mitkImage = 0;
  for (std::vector<mitk::DataNode*>::iterator it = selectedNodes.begin()
    ; it != selectedNodes.end(); it++)
  {
    _DataNode = *it;
    mitkImage = dynamic_cast<mitk::Image*>( _DataNode->GetData() );

    if(mitkImage.IsNull())
      continue;

    try
    {
      // get selected mitk image
      const unsigned short dim = 3;
      typedef short InputPixelType;
      typedef unsigned char OutputPixelType;

      typedef itk::Image< InputPixelType, dim > InputImageType;
      typedef itk::Image< OutputPixelType, dim > OutputImageType;

      typedef itk::OtsuThresholdImageFilter< InputImageType, OutputImageType > FilterType;
      FilterType::Pointer filter = FilterType::New();

      filter->SetOutsideValue( 1 );
      filter->SetInsideValue( 0 );

      InputImageType::Pointer itkImage;
      mitk::CastToItkImage(mitkImage, itkImage);

      filter->SetInput( itkImage );

      filter->Update();

      mitk::DataNode::Pointer resultNode = mitk::DataNode::New();
      std::string nameOfResultImage = _DataNode->GetName();
      nameOfResultImage.append("Otsu");
      resultNode->SetProperty("name", mitk::StringProperty::New(nameOfResultImage) );
      resultNode->SetProperty("binary", mitk::BoolProperty::New(true) );
      resultNode->SetData( mitk::ImportItkImage ( filter->GetOutput() ) );

      this->GetDataStorage()->Add(resultNode, _DataNode);

    }
    catch( std::exception& err )
    {
      MITK_ERROR(this->GetClassName()) << err.what();
    }

  }
}
void QmitkDataManagerView::ReinitSelectedNodes ( bool  checked = false ) [slot]

Invoked when an element should be reinitiliased.

Definition at line 619 of file QmitkDataManagerView.cpp.

References mitk::DataNode::GetData(), mitk::RenderingManager::GetInstance(), GetSelectedNodes(), and mitk::RenderingManager::REQUEST_UPDATE_ALL.

Referenced by CreateQtPartControl(), and QmitkNodeTableViewKeyFilter::eventFilter().

{
  this->ReinitMultiWidgetEditor();
  std::vector<mitk::DataNode*> selectedNodes = this->GetSelectedNodes();

  mitk::DataNode* node = 0;
  for (std::vector<mitk::DataNode*>::iterator it = selectedNodes.begin()
    ; it != selectedNodes.end(); it++)
  {
    node = *it;
    mitk::BaseData::Pointer basedata = node->GetData();
    if (basedata.IsNotNull())
    {
      mitk::RenderingManager::GetInstance()->InitializeViews(
        basedata->GetTimeSlicedGeometry(), mitk::RenderingManager::REQUEST_UPDATE_ALL, true );
      mitk::RenderingManager::GetInstance()->RequestUpdateAll();
    }
  }
}
void QmitkDataManagerView::RemoveSelectedNodes ( bool  checked = false ) [slot]

Invoked when an element should be removed.

Definition at line 639 of file QmitkDataManagerView.cpp.

References GetDataStorage(), mitk::DataNode::GetName(), QmitkDataStorageTreeModel::GetNode(), GlobalReinit(), m_NodeTreeModel, m_NodeTreeView, and m_Parent.

Referenced by CreateQtPartControl(), and QmitkNodeTableViewKeyFilter::eventFilter().

{
  QModelIndexList indexesOfSelectedRows = m_NodeTreeView->selectionModel()->selectedRows();
  if(indexesOfSelectedRows.size() < 1)
  {
    return;
  }
  std::vector<mitk::DataNode*> selectedNodes;

  mitk::DataNode* node = 0;
  QString question = tr("Do you really want to remove ");

  for (QModelIndexList::iterator it = indexesOfSelectedRows.begin()
    ; it != indexesOfSelectedRows.end(); it++)
  {
    node = m_NodeTreeModel->GetNode(*it);
    // if node is not defined or if the node contains geometry data do not remove it
    if ( node != 0 /*& strcmp(node->GetData()->GetNameOfClass(), "Geometry2DData") != 0*/ )
    {
      selectedNodes.push_back(node);
      question.append(QString::fromStdString(node->GetName()));
      question.append(", ");
    }
  }
  // remove the last two characters = ", "
  question = question.remove(question.size()-2, 2);
  question.append(" from data storage?");

  QMessageBox::StandardButton answerButton = QMessageBox::question( m_Parent
    , tr("DataManager")
    , question
    , QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);

  if(answerButton == QMessageBox::Yes)
  {
    for (std::vector<mitk::DataNode*>::iterator it = selectedNodes.begin()
      ; it != selectedNodes.end(); it++)
    {
      node = *it;
      this->GetDataStorage()->Remove(node);
      this->GlobalReinit(false);
    }
  }
}
void QmitkDataManagerView::SaveSelectedNodes ( bool  checked = false ) [slot]

Invoked when an element should be saved.

Definition at line 584 of file QmitkDataManagerView.cpp.

References mitk::DataNode::GetData(), mitk::DataNode::GetName(), QmitkDataStorageTreeModel::GetNode(), m_NodeTreeModel, m_NodeTreeView, m_Parent, and CommonFunctionality::SaveBaseData().

Referenced by CreateQtPartControl(), and QmitkNodeTableViewKeyFilter::eventFilter().

{
  QModelIndexList indexesOfSelectedRows = m_NodeTreeView->selectionModel()->selectedRows();

  mitk::DataNode* node = 0;
  unsigned int indexesOfSelectedRowsSize = indexesOfSelectedRows.size();
  for (unsigned int i = 0; i<indexesOfSelectedRowsSize; ++i)
  {
    node = m_NodeTreeModel->GetNode(indexesOfSelectedRows.at(i));
    // if node is not defined or if the node contains geometry data do not remove it
    if ( node != 0 )
    {
      mitk::BaseData::Pointer data = node->GetData();
      if (data.IsNotNull())
      {
        QString error;
        try
        {
          CommonFunctionality::SaveBaseData( data.GetPointer(), node->GetName().c_str() );
        }
        catch(std::exception& e)
        {
          error = e.what();
        }
        catch(...)
        {
          error = "Unknown error occured";
        }
        if( !error.isEmpty() )
          QMessageBox::critical( m_Parent, "Error saving...", error );
      }
    }
  }
}
void QmitkDataManagerView::SelectionChanged ( berry::IWorkbenchPart::Pointer  part,
berry::ISelection::ConstPointer  selection 
) [virtual, slot]

Invoked when the DataManager selection changed

Definition at line 815 of file QmitkDataManagerView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), mitk::DataNodeObject::GetDataNode(), QmitkDataStorageTreeModel::GetIndex(), berry::SmartPointer< TObjectType >::GetPointer(), berry::SmartPointer< TObjectType >::IsNull(), m_NodeTreeModel, and m_NodeTreeView.

Referenced by CreateQtPartControl().

{
  if(part.GetPointer() == this)
    return;
  mitk::DataNodeSelection::ConstPointer _DataNodeSelection
    = selection.Cast<const mitk::DataNodeSelection>();

  if(_DataNodeSelection.IsNull())
    return;

  std::vector<mitk::DataNode*> selectedNodes;
  mitk::DataNodeObject* _DataNodeObject = 0;
  mitk::DataNode* _DataNode = 0;
  QItemSelection newSelection;

  m_NodeTreeView->selectionModel()->reset();

  for(mitk::DataNodeSelection::iterator it = _DataNodeSelection->Begin();
    it != _DataNodeSelection->End(); ++it)
  {
    _DataNodeObject = dynamic_cast<mitk::DataNodeObject*>((*it).GetPointer());
    if(_DataNodeObject)
      _DataNode = _DataNodeObject->GetDataNode();
    QModelIndex treeIndex = m_NodeTreeModel->GetIndex(_DataNode);
    if(treeIndex.isValid())
      newSelection.select(treeIndex, treeIndex);
  }
  m_NodeTreeView->selectionModel()->select(newSelection, QItemSelectionModel::SelectCurrent);
}
void QmitkDataManagerView::SetFocus (  ) [protected, virtual]

Implements berry::WorkbenchPart.

Definition at line 343 of file QmitkDataManagerView.cpp.

{
}
void QmitkDataManagerView::ShowInfoDialogForSelectedNodes ( bool  checked = false ) [slot]

Invoked when infos of the selected nodes should be shown in a dialog.

Definition at line 731 of file QmitkDataManagerView.cpp.

References GetSelectedNodes(), and m_Parent.

Referenced by CreateQtPartControl(), and QmitkNodeTableViewKeyFilter::eventFilter().

{
  std::vector<mitk::DataNode*> selectedNodes = this->GetSelectedNodes();

  QmitkInfoDialog _QmitkInfoDialog(selectedNodes, this->m_Parent);
  _QmitkInfoDialog.exec();
}
void QmitkDataManagerView::ShowOnlySelectedNodes ( bool  checked = false ) [slot]

Makes all selected nodes visible, all other nodes invisible.

Definition at line 696 of file QmitkDataManagerView.cpp.

References QmitkDataStorageTreeModel::GetNodeSet(), GetSelectedNodes(), m_NodeTreeModel, and mitk::DataNode::SetVisibility().

Referenced by CreateQtPartControl().

{
  std::vector<mitk::DataNode*> selectedNodes = this->GetSelectedNodes();
  std::vector<mitk::DataNode*> allNodes = m_NodeTreeModel->GetNodeSet();
  mitk::DataNode* node = 0;

  for (std::vector<mitk::DataNode*>::iterator it = allNodes.begin()
    ; it != allNodes.end(); it++)
  {
    node = *it;
    if(std::find(selectedNodes.begin(), selectedNodes.end(), node) == selectedNodes.end())
      node->SetVisibility(false);
    else
      node->SetVisibility(true);
  }
  //mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
void QmitkDataManagerView::SurfaceRepresentationActionToggled ( bool  checked ) [slot]

public SurfaceRepresentationActionToggled

Definition at line 552 of file QmitkDataManagerView.cpp.

References mitk::RenderingManager::GetInstance(), QmitkDataStorageTreeModel::GetNode(), mitk::DataNode::GetProperty(), mitk::EnumerationProperty::GetValueAsString(), mitk::EnumerationProperty::IsValidEnumerationValue(), m_NodeTreeModel, m_NodeTreeView, and mitk::EnumerationProperty::SetValue().

Referenced by SurfaceRepresentationMenuAboutToShow().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(!node)
    return;

  mitk::EnumerationProperty* representationProp =
      dynamic_cast<mitk::EnumerationProperty*> (node->GetProperty("material.representation"));
  if(!representationProp)
    return;

  QAction* senderAction = qobject_cast<QAction*> ( QObject::sender() );

  if(!senderAction)
    return;

  std::string activatedItem = senderAction->text().toStdString();

  if ( activatedItem != representationProp->GetValueAsString() )
  {
    if ( representationProp->IsValidEnumerationValue( activatedItem ) )
    {
      representationProp->SetValue( activatedItem );
      representationProp->InvokeEvent( itk::ModifiedEvent() );
      representationProp->Modified();

      mitk::RenderingManager::GetInstance()->RequestUpdateAll();
    }
  }

}
void QmitkDataManagerView::SurfaceRepresentationMenuAboutToShow (  ) [slot]

SurfaceRepresentationActionToggled

Definition at line 520 of file QmitkDataManagerView.cpp.

References mitk::EnumerationProperty::Begin(), mitk::EnumerationProperty::End(), QmitkDataStorageTreeModel::GetNode(), mitk::DataNode::GetProperty(), mitk::EnumerationProperty::GetValueAsString(), m_NodeTreeModel, m_NodeTreeView, m_SurfaceRepresentation, and SurfaceRepresentationActionToggled().

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(!node)
    return;

  mitk::EnumerationProperty* representationProp =
      dynamic_cast<mitk::EnumerationProperty*> (node->GetProperty("material.representation"));
  if(!representationProp)
    return;

  // clear menu
  m_SurfaceRepresentation->menu()->clear();
  QAction* tmp;

  // create menu entries
  for(mitk::EnumerationProperty::EnumConstIterator it=representationProp->Begin(); it!=representationProp->End()
    ; it++)
  {
    tmp = m_SurfaceRepresentation->menu()->addAction(QString::fromStdString(it->second));
    tmp->setCheckable(true);

    if(it->second == representationProp->GetValueAsString())
    {
      tmp->setChecked(true);
    }

    QObject::connect( tmp, SIGNAL( triggered(bool) )
      , this, SLOT( SurfaceRepresentationActionToggled(bool) ) );
  }
}
void QmitkDataManagerView::TextureInterpolationChanged (  ) [slot]

Invoked when the color button is pressed

Definition at line 498 of file QmitkDataManagerView.cpp.

References mitk::DataNode::GetBoolProperty(), QmitkDataStorageTreeModel::GetNode(), m_NodeTreeModel, m_NodeTreeView, and m_TextureInterpolation.

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(node)
  {
    bool textureInterpolation = false;
    node->GetBoolProperty("texture interpolation", textureInterpolation);
    m_TextureInterpolation->setChecked(textureInterpolation);
  }
}
void QmitkDataManagerView::TextureInterpolationToggled ( bool  checked ) [slot]

Invoked when the color action changed

Definition at line 509 of file QmitkDataManagerView.cpp.

References mitk::RenderingManager::GetInstance(), QmitkDataStorageTreeModel::GetNode(), m_NodeTreeModel, m_NodeTreeView, and mitk::DataNode::SetBoolProperty().

Referenced by CreateQtPartControl().

{
  mitk::DataNode* node = m_NodeTreeModel->GetNode(m_NodeTreeView->selectionModel()->currentIndex());
  if(node)
  {
    node->SetBoolProperty("texture interpolation", checked);
    mitk::RenderingManager::GetInstance()->RequestUpdateAll();
  }

}
void QmitkDataManagerView::ToggleVisibilityOfSelectedNodes ( bool  checked = false ) [slot]

Invoked when the visibility of the selected nodes should be toggled.

Definition at line 714 of file QmitkDataManagerView.cpp.

References mitk::DataNode::GetBoolProperty(), GetSelectedNodes(), and mitk::DataNode::SetVisibility().

Referenced by CreateQtPartControl(), and QmitkNodeTableViewKeyFilter::eventFilter().

{
  std::vector<mitk::DataNode*> selectedNodes = this->GetSelectedNodes();

  bool isVisible = false;
  mitk::DataNode* node = 0;
  for (std::vector<mitk::DataNode*>::iterator it = selectedNodes.begin()
    ; it != selectedNodes.end(); it++)
  {
    isVisible = false;
    node = *it;
    node->GetBoolProperty("visible", isVisible);
    node->SetVisibility(!isVisible);
  }
  //mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}

Friends And Related Function Documentation

berry::SelectionChangedAdapter<QmitkPropertyListView> must be a friend to call

Definition at line 254 of file QmitkDataManagerView.h.


Member Data Documentation

Shows infos for selected nodes.

Definition at line 247 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

QWidgetAction* QmitkDataManagerView::m_ColorAction [protected]

Color action.

Definition at line 237 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

QPushButton* QmitkDataManagerView::m_ColorButton [protected]

button to change the color of a node

Definition at line 235 of file QmitkDataManagerView.h.

Referenced by ColorActionChanged(), ColorChanged(), and CreateQtPartControl().

saves the configuration elements for the context menu actions from extension points

Definition at line 211 of file QmitkDataManagerView.h.

Referenced by ContextMenuActionTriggered().

Holds the preferences for the datamanager.

Definition at line 207 of file QmitkDataManagerView.h.

Definition at line 194 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

# Actions for the Context Menu Global Reinit Action

Definition at line 223 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

The context menu that shows up when right clicking on a node.

Definition at line 219 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl(), and NodeTableViewContextMenuRequested().

QTreeView* QmitkDataManagerView::m_NodeTreeView [protected]
QWidgetAction* QmitkDataManagerView::m_OpacityAction [protected]

Opacity action.

Definition at line 233 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

A Slider widget to change the opacity of a node.

Definition at line 231 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl(), and OpacityActionChanged().

Special filter action for images.

Definition at line 250 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

QWidget* QmitkDataManagerView::m_Parent [protected]

Reinit Action.

Definition at line 229 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

Remove Action.

Definition at line 227 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

QAction* QmitkDataManagerView::m_SaveAction [protected]

Save Action.

Definition at line 225 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

A selection listener for datatreenode events.

Definition at line 252 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl(), and ~QmitkDataManagerView().

The BlueBerry selection provider.

Definition at line 203 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

Show only selected nodes.

Definition at line 243 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

TextureInterpolation action.

Definition at line 241 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl(), and SurfaceRepresentationMenuAboutToShow().

TextureInterpolation action.

Definition at line 239 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl(), and TextureInterpolationChanged().

Toggles visibility of selected nodes.

Definition at line 245 of file QmitkDataManagerView.h.

Referenced by CreateQtPartControl().

const std::string QmitkDataManagerView::VIEW_ID = "org.mitk.views.datamanager" [static]

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