Public Member Functions

QmitkPlanarFiguresTableModel Class Reference

Toolkit includes. More...

#include <QmitkPlanarFiguresTableModel.h>

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

List of all members.

Public Member Functions

 QmitkPlanarFiguresTableModel (mitk::DataStorage::Pointer _DataStorage, mitk::NodePredicateBase *_Predicate=0, QObject *parent=0)
virtual ~QmitkPlanarFiguresTableModel ()
QVariant headerData (int section, Qt::Orientation orientation, int role) const
Qt::ItemFlags flags (const QModelIndex &index) const
int columnCount (const QModelIndex &parent) const
QVariant data (const QModelIndex &index, int role) const

Detailed Description

Toolkit includes.

Forward declarations.

A table model for a set of DataNodes defined by a predicate. make columns interchangeable, select which properties to show as columns

Definition at line 32 of file QmitkPlanarFiguresTableModel.h.


Constructor & Destructor Documentation

QmitkPlanarFiguresTableModel::QmitkPlanarFiguresTableModel ( mitk::DataStorage::Pointer  _DataStorage,
mitk::NodePredicateBase _Predicate = 0,
QObject *  parent = 0 
)

Constructs a new QmitkPlanarFiguresTableModel and sets a predicate that defines this list.

See also:
setPredicate()

Definition at line 23 of file QmitkPlanarFiguresTableModel.cpp.

: QmitkDataStorageTableModel(_DataStorage, _Predicate, parent)
{

}
QmitkPlanarFiguresTableModel::~QmitkPlanarFiguresTableModel (  ) [virtual]

Standard dtor. Delete predicate, disconnect from DataStorage.

Definition at line 29 of file QmitkPlanarFiguresTableModel.cpp.

{

}

Member Function Documentation

int QmitkPlanarFiguresTableModel::columnCount ( const QModelIndex &  parent ) const [virtual]

Overridden from QAbstractTableModel. Returns the number of features (columns) to display.

Reimplemented from QmitkDataStorageTableModel.

Definition at line 68 of file QmitkPlanarFiguresTableModel.cpp.

{
  return 2;
}
QVariant QmitkPlanarFiguresTableModel::data ( const QModelIndex &  index,
int  role 
) const [virtual]

Overridden from QAbstractTableModel. Returns the data at index for given role.

Reimplemented from QmitkDataStorageTableModel.

Definition at line 73 of file QmitkPlanarFiguresTableModel.cpp.

References mitk::PlanarAngle::FEATURE_ID_ANGLE, QmitkNodeDescriptorManager::GetDescriptor(), mitk::PlanarFigure::GetFeatureName(), mitk::PlanarFigure::GetFeatureUnit(), QmitkNodeDescriptor::GetIcon(), QmitkNodeDescriptorManager::GetInstance(), mitk::PlanarFigure::GetNumberOfFeatures(), mitk::PlanarFigure::GetQuantity(), and QmitkDataStorageTableModel::m_NodeSet.

{
  QVariant data;
  if(!index.isValid())
    return data;
  mitk::DataNode::Pointer node = this->m_NodeSet.at(index.row());

  if(!node)
    return data;
   
  if(index.column() == 0 && role == Qt::DecorationRole)
  {
    if(node)
    {
      QmitkNodeDescriptor* nodeDescriptor 
        = QmitkNodeDescriptorManager::GetInstance()->GetDescriptor(node);
      data = nodeDescriptor->GetIcon();
    }
  }
  else if(index.column() == 1)
  {
    if(role == Qt::DisplayRole || role == Qt::ToolTipRole)
    {
      QString info;
      mitk::PlanarFigure* planarFigure = dynamic_cast<mitk::PlanarFigure*>(node->GetData());
      if(!planarFigure)
        return data;
      
      mitk::PlanarAngle* planarAngle = dynamic_cast<mitk::PlanarAngle*>(planarFigure);
      double featureQuantity;
      for(unsigned int i=0; i<planarFigure->GetNumberOfFeatures(); ++i)
      {
        featureQuantity = planarFigure->GetQuantity(i);
        if(planarAngle && i == planarAngle->FEATURE_ID_ANGLE)
          featureQuantity = featureQuantity * 180 / vnl_math::pi;

        //std::ostringstream s; s.precision(2); s << featureQuantity;
        info.append(QString("%1: %2 %3")
          .arg(QString(planarFigure->GetFeatureName(i)))
          .arg(featureQuantity, 0, 'f', 2)
          .arg(QString(planarFigure->GetFeatureUnit(i))));
        if((i+1) != planarFigure->GetNumberOfFeatures())
          info.append(", ");

        data = info;
      }
    }
  }
  else
    return QmitkDataStorageTableModel::data(index, role);

  return data;
}
Qt::ItemFlags QmitkPlanarFiguresTableModel::flags ( const QModelIndex &  index ) const [virtual]

Overridden from QAbstractTableModel. Returns what can be done with an item.

Reimplemented from QmitkDataStorageTableModel.

Definition at line 59 of file QmitkPlanarFiguresTableModel.cpp.

{
  // name & visibility is editable
  if (index.column() == 0)
    return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
  else
    return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
QVariant QmitkPlanarFiguresTableModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role 
) const [virtual]

Overridden from QAbstractTableModel. Returns the header data at section for given orientation and role.

Reimplemented from QmitkDataStorageTableModel.

Definition at line 34 of file QmitkPlanarFiguresTableModel.cpp.

{
  QVariant headerData;

  // show only horizontal header
  if ( role == Qt::DisplayRole )
  {
    if( orientation == Qt::Horizontal )
    {
      // first column: "Name"
      if(section == 0)
        headerData = "Name";
      else if(section == 1)
        headerData = "Info";
    }
    else if( orientation == Qt::Vertical )
    {
      // show numbers for rows
      headerData = section+1;
    }
  }

  return headerData;
}

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