00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-03-21 19:27:37 +0100 (Sa, 21 Mrz 2009) $ 00006 Version: $Revision: 16719 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "QmitkToolTrackingStatusWidget.h" 00019 00020 00021 00022 00023 00024 QmitkToolTrackingStatusWidget::QmitkToolTrackingStatusWidget(QWidget* parent) 00025 : QWidget(parent), m_Controls(NULL), m_StatusLabels (NULL), m_NavigationDatas(NULL) 00026 { 00027 this->CreateQtPartControl( this ); 00028 } 00029 00030 QmitkToolTrackingStatusWidget::~QmitkToolTrackingStatusWidget() 00031 { 00032 //m_Controls = NULL; 00033 delete m_StatusLabels; 00034 delete m_NavigationDatas; 00035 } 00036 00037 void QmitkToolTrackingStatusWidget::CreateQtPartControl(QWidget *parent) 00038 { 00039 if (!m_Controls) 00040 { 00041 // create GUI widgets 00042 m_Controls = new Ui::QmitkToolTrackingStatusWidgetControls; 00043 m_Controls->setupUi(parent); 00044 00045 this->CreateConnections(); 00046 } 00047 } 00048 00049 void QmitkToolTrackingStatusWidget::CreateConnections() 00050 { 00051 00052 } 00053 00054 00055 void QmitkToolTrackingStatusWidget::SetNavigationDatas(std::vector<mitk::NavigationData::Pointer>* navDatas) 00056 { 00057 m_NavigationDatas = navDatas; 00058 } 00059 00060 00061 void QmitkToolTrackingStatusWidget::AddNavigationData(mitk::NavigationData::Pointer nd) 00062 { 00063 if(m_NavigationDatas == NULL) 00064 m_NavigationDatas = new std::vector<mitk::NavigationData::Pointer>(); 00065 00066 m_NavigationDatas->push_back(nd); 00067 } 00068 00069 00070 void QmitkToolTrackingStatusWidget::Refresh() 00071 { 00072 mitk::NavigationData* navData; 00073 00074 for(unsigned int i = 0; i < m_NavigationDatas->size(); i++) 00075 { 00076 navData = m_NavigationDatas->at(i).GetPointer(); 00077 QString name(navData->GetName()); 00078 00079 if(name.compare(m_StatusLabels->at(i)->text()) == 0) 00080 { 00081 if(navData->IsDataValid()) 00082 m_StatusLabels->at(i)->setStyleSheet("QLabel{background-color: #8bff8b }"); 00083 else 00084 m_StatusLabels->at(i)->setStyleSheet("QLabel{background-color: #ff7878 }"); 00085 } 00086 } 00087 } 00088 00089 00090 void QmitkToolTrackingStatusWidget::ShowStatusLabels() 00091 { 00092 m_StatusLabels = new QVector<QLabel*>(); 00093 mitk::NavigationData* navData; 00094 QLabel* label; 00095 00096 for(unsigned int i = 0; i < m_NavigationDatas->size(); i++) 00097 { 00098 navData = m_NavigationDatas->at(i).GetPointer(); 00099 00100 QString name(navData->GetName()); 00101 00102 label = new QLabel(name, this); 00103 label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); 00104 label->setFrameStyle(QFrame::Panel | QFrame::Sunken); 00105 00106 00107 m_StatusLabels->append(label); 00108 m_Controls->m_GridLayout->addWidget(m_StatusLabels->at(i),0,i); 00109 } 00110 } 00111 00112 00113 void QmitkToolTrackingStatusWidget::RemoveStatusLabels() 00114 { 00115 00116 while(m_Controls->m_GridLayout->count() > 0) 00117 { 00118 QWidget* actWidget = m_Controls->m_GridLayout->itemAt(0)->widget(); 00119 m_Controls->m_GridLayout->removeWidget(actWidget); 00120 delete actWidget; 00121 } 00122 00123 m_StatusLabels->clear(); 00124 m_NavigationDatas->clear(); 00125 00126 } 00127 00128 00129 00130