StorageTable Class Reference

#include <MonitorWindow.h>

Public Member Functions

 StorageTable (QWidget *parent=0, const char *name=0)
void setTable (vector< StorageData > table)

Private Slots

void clear ()

Private Attributes

CSessionManagerm_manager
QTimer timer

Detailed Description

Definition at line 83 of file MonitorWindow.h.


Constructor & Destructor Documentation

StorageTable::StorageTable ( QWidget *  parent = 0,
const char *  name = 0 
)

Definition at line 139 of file MonitorWindow.cpp.

00140                 : QTable( parent, name )
00141 {
00142     setNumRows( 0 );
00143     setNumCols( STORAGE_TOTAL_COLS );
00144     horizontalHeader()->setLabel( S_IP, tr( "IP" ) );
00145     horizontalHeader()->setLabel( S_HOSTNAME, tr( "Host Name" ) );
00146     horizontalHeader()->setLabel( S_DISK, tr( "Disks" ) );
00147     horizontalHeader()->setLabel( S_QUEUE, tr( "Queue Size" ) );
00148 
00149     int column;
00150     for( column = 0; column < STORAGE_TOTAL_COLS; column++ )
00151     {
00152         setColumnWidth( column, 0 );
00153         adjustColumn( column );
00154     }
00155 
00156     horizontalHeader()->setStretchEnabled( true, S_QUEUE );
00157     horizontalHeader()->adjustHeaderSize();
00158 
00159     setCaption( tr( "Storage Nodes" ) );
00160     setShowGrid( false );
00161     setReadOnly( true );
00162 }


Member Function Documentation

void StorageTable::clear (  )  [private, slot]

Definition at line 164 of file MonitorWindow.cpp.

00165 {
00166     for( int row = 0; row < numRows(); row++ )
00167     {
00168         QProgressBar *prog_bar = ((QProgressBar *)cellWidget( row, S_QUEUE ));
00169         prog_bar->setProgress( 0 );
00170     }
00171 }

void StorageTable::setTable ( vector< StorageData table  ) 

Definition at line 173 of file MonitorWindow.cpp.

00174 {
00175     setNumRows( table.size() );
00176     int host_num = 0, disk_num = 0;
00177     for( unsigned int row = 0; row < table.size(); row++ )
00178     {
00179         if( text( row, S_IP ) != table[row].m_ip )
00180             setText( row, S_IP, table[row].m_ip );
00181         if( text( row, S_HOSTNAME ) != table[row].m_hostname )
00182         setText( row, S_HOSTNAME, table[row].m_hostname );
00183         if( text( row, S_DISK ) != table[row].m_diskname )
00184         setText( row, S_DISK, table[row].m_diskname );
00185         if( cellWidget( row, S_QUEUE ) == 0 ) //new row
00186         {
00187             QProgressBar *prog_bar = new QProgressBar();
00188             prog_bar->setPercentageVisible( false );
00189             setCellWidget( row, S_QUEUE, prog_bar );
00190             setRowHeight( row, (int)(1.25 * rowHeight( row )) );
00191             prog_bar->setFixedHeight( rowHeight( row ) );
00192             verticalHeader()->setLabel( row, "0" ); //dummy label
00193         }
00194         if( ((QProgressBar *)cellWidget( row, S_QUEUE ))->progress() !=
00195                 table[row].m_queue )
00196             ((QProgressBar *)cellWidget( row, S_QUEUE ))->setProgress(
00197                 table[row].m_queue );
00198 
00199         if( text( row, S_IP ).isEmpty() ) //Disk
00200         {
00201             QString row_text =
00202                 QString::number( host_num ) + "." +
00203                 QString::number( ++disk_num );
00204             if( verticalHeader()->label( row ) != row_text )
00205                 verticalHeader()->setLabel( row,
00206                     QIconSet( (const char **) image_disk_icon ),
00207                     row_text );
00208         }
00209         else //Node
00210         {
00211             QString row_text = QString::number( ++host_num );
00212             disk_num = 0;
00213             if( verticalHeader()->label( row ) != row_text )
00214                 verticalHeader()->setLabel( row,
00215                     QIconSet( (const char **) image_storage_icon ),
00216                     row_text );
00217         }
00218     }
00219     //ignore queue column
00220     for( int column = 0; column < STORAGE_TOTAL_COLS-1; column++ )
00221         adjustColumn( column );
00222     horizontalHeader()->adjustHeaderSize();
00223 }


Field Documentation

Definition at line 92 of file MonitorWindow.h.

QTimer StorageTable::timer [private]

Definition at line 93 of file MonitorWindow.h.


The documentation for this class was generated from the following files:
Generated on Wed Jul 4 16:03:38 2012 for RIO by  doxygen 1.6.3