Changeset 360 for trunk/yao


Ignore:
Timestamp:
06/24/10 17:40:11 (14 years ago)
Author:
yerima
Message:

Control are ok in Space and Opera window.

Location:
trunk/yao/src/interface/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/yao/src/interface/src/OperaWindow.cpp

    r357 r360  
    11//! \file    OperaWindow.cpp 
    2 //! \brief   Implementation of the Ctin window. 
    3 //! \version 2009/11/09 (yyyy/mm/dd) 
    4 //! \author  MAYAKI Abdouramane & MAYOMBO Alexis. 
     2//! \brief   Implementation of the Operator window. 
     3//! \version 2010/06/24 (yyyy/mm/dd) 
     4//! \author  MAYAKI Abdouramane. 
    55/* 
    66  Nom du Fichier: OperaWindow.cpp 
    77  Nom de classe: OperaWindow 
    88  Role: 
    9   Nombre de methodes: 
    10   Nombre d'attributs: 
     9  Nombre de methodes:11 
     10  Nombre d'attributs:8 
    1111  */ 
    1212 
    1313#include "include/OperaWindow.hpp" 
     14#include "include/TrajectoryWindow.hpp" 
    1415/*! 
    1516 * \class OperaWindow 
     
    2122 
    2223/******************************************* Contructeur ***************************************************/ 
    23 OperaWindow::OperaWindow(Table <Space> *aSpaceTable, Table <Trajectory> *aTrajectory, Table <Constant> *aConstantTable, QWidget *parent) : QWidget(parent) {       /*!< The constructor. */ 
     24OperaWindow::OperaWindow(Table <Operator> *aOperaTable, Table <Trajectory> *aTrajectory, Table <Constant> *aConstantTable, QWidget *parent) : QWidget(parent), localTrajectoryTable(NULL), localOperaTable(NULL) {       /*!< The constructor. */ 
     25 
    2426        setupUi(this); 
    25     isCalled = false; 
    26         localOperaTable                         = aSpaceTable; 
    27         localTrajectoryTable                    = aTrajectory; 
    28         localConstantTable                      = aConstantTable; 
    29         //localOperaExtent                      = aOperaExtent; 
    30         //localOperaIdentifier                  = aOperaIdentifier; 
    31         compteur                                = 0;     
    32      
    33         //m_OperaType                           = new QLineEdit("M");                   /*!< Type of the QComboBox. */ 
    34         //      m_OperaType->setEnabled(false); 
    35                 m_OperaD1->setEditable(true); 
    36                 m_OperaD1->insertItem(0,"");  
    37                 m_OperaD2->setEditable(true); 
    38                 m_OperaD2->insertItem(0,"");  
    39                 m_OperaD3->setEditable(true); 
    40                 m_OperaD3->insertItem(0,"");  
     27 
     28        localOperaTable                         = aOperaTable;  /*!< See theOperaTable in MainWindow.hpp */ 
     29        localTrajectoryTable                    = aTrajectory;  /*!< See theTrajectoryTable in MainWindow.hpp */ 
     30        localConstantTable                      = aConstantTable; /*!< See theConstantTable in MainWindow.hpp */ 
     31         
     32        QRegExp regExp("[A-Za-z_][A-Za-z0-9_]*"); 
     33 
     34        m_operaNameLine->setValidator(new QRegExpValidator(regExp, this)); 
     35        if (isOperaTableEmpty()) m_operaDeleteButton->setDisabled(true);/*!< To disable the m_operaDeleteButton if theTrajectoryTable is empty. */ 
     36         
     37                m_operaD1->setEditable(true); 
     38                m_operaD1->insertItem(0,"");  
     39                m_operaD2->setEditable(true); 
     40                m_operaD2->insertItem(0,"");  
     41                m_operaD3->setEditable(true); 
     42                m_operaD3->insertItem(0,"");  
    4143 
    4244        for (Table<Constant>::reverse_iterator it = localConstantTable->rbegin(); it != localConstantTable->rend(); it++) { 
    43                 m_OperaD1->insertItem(1, QString(it->getName().c_str())); 
    44                 m_OperaD2->insertItem(1, QString(it->getName().c_str())); 
    45                 m_OperaD3->insertItem(1, QString(it->getName().c_str())); 
     45                m_operaD1->insertItem(1, QString(it->getName().c_str())); 
     46                m_operaD2->insertItem(1, QString(it->getName().c_str())); 
     47                m_operaD3->insertItem(1, QString(it->getName().c_str())); 
    4648          } 
    4749 
    48                 m_OperaTrajname->insertItem(0, ""); 
    49                 for (Table<Trajectory>::reverse_iterator it = localTrajectoryTable->rbegin(); it != localTrajectoryTable->rend(); it++)  
    50                         m_OperaTrajname->insertItem(1, QString(it->getName().c_str())); 
    51  
    52         //for (QStringList::iterator it = trajData->getTrajName().begin(); it != trajData->getTrajName().end(); it++) 
    53              //m_OperaTrajname->addItems(trajData->getDataTraj());//getTrajName()); //it);//->toStdString()); 
    54  
    55                 //m_OperaTrajname->addItem(trajData->); 
    56         //m_OperaEnregButton                    = new QPushButton("Enregistrer",this);   /*!< The button "save". */ 
    57         //              m_OperaEnregButton->setDisabled(true); 
    58                         m_OperaDeleteButton->setDisabled(true); 
    59          
    60         m_operaModel                            = new QStandardItemModel(0, 6) ; 
    61                 m_operaModel->setHorizontalHeaderLabels(QStringList() << "Nom Opera" << "Type" << "Dim 1" << "Dim 2" << "Dim 3" << "Nom traj"); 
    62  
    63                 m_OperaTableView->setModel(m_operaModel); 
    64                 m_OperaTableView->setEditTriggers(QAbstractItemView::NoEditTriggers); /*!< this ligne give no edit mode*/ 
    65                 m_OperaTableView->setShowGrid(false);  /*!< this ligne cover the grille in table */ 
    66                 m_OperaTableView->setSelectionBehavior(QAbstractItemView::SelectRows); 
    67                 m_OperaTableView->resizeColumnsToContents();     
    68  
    69  
    70              
    71                 //m_OperaLayoutG->addWidget(m_OperaTypeLabel, 1, 1);            /*!< Adding in the main layout: the Opera's type. */ 
    72                 //m_OperaLayoutG->addWidget(m_OperaType, 1, 2, Qt::AlignLeft); 
    73                  
    74     
    75         connect(m_OperaAddButton, SIGNAL(clicked()), this, SLOT(addOperaRow())); /*!< Adds rows in the tableview after clicking on the button "Add"*/ 
    76         connect(m_OperaDeleteButton, SIGNAL(clicked()), this, SLOT(deleteRow())); 
    77         connect(m_OperaQuitButton, SIGNAL(clicked()), this, SLOT(close())); /*!< Will be closed after a click on the button "Quit" */ 
    78    //   connect(m_OperaEnregButton, SIGNAL(clicked()), this, SLOT(saveInYaoStructure())); 
    79         connect(m_OperaHelpButton, SIGNAL(clicked()), this, SLOT(callOperaHelp())); 
    80  
     50                m_operaTrajname->insertItem(0, ""); 
     51        for (Table<Trajectory>::reverse_iterator it = localTrajectoryTable->rbegin(); it != localTrajectoryTable->rend(); it++)  
     52                m_operaTrajname->insertItem(1, QString(it->getName().c_str())); 
     53         
     54        modeleOpera                             = new QStandardItemModel(0, 3) ; 
     55                modeleOpera->setHorizontalHeaderLabels(QStringList() << "Nom Opera" << "Dimension(s) " << "Nom trajectoire"); //Gives names to the columns. 
     56 
     57                m_operaTableView->setModel(modeleOpera); /*!< The view takes model.*/ 
     58                m_operaTableView->setEditTriggers(QAbstractItemView::NoEditTriggers); /*!< this ligne give no edit mode*/ 
     59                m_operaTableView->setShowGrid(false);  /*!< this ligne cover the grille in table */ 
     60                m_operaTableView->setSelectionBehavior(QAbstractItemView::SelectRows); 
     61                m_operaTableView->resizeColumnsToContents(); /*!< To optimize the column Opera. */ 
     62 
     63        //The following to load in the visual Yao the structure of Yao.    
     64        for (Table<Operator>::iterator it = localOperaTable->begin(); it != localOperaTable->end(); it++) { 
     65 
     66            int row = modeleOpera->rowCount(); 
     67                 
     68            modeleOpera->setItem(row, 0, new QStandardItem(QString(it->getProperty(0).c_str()))); /*!< Gets the Opera name.*/ 
     69            modeleOpera->setItem(row, 1, new QStandardItem(QString(it->getProperty(1).c_str()))); /*!< Gets the Opera dimension (1, 2 or 3).*/ 
     70            modeleOpera->setItem(row, 2, new QStandardItem(QString(it->getProperty(2).c_str()))); /*!< Gets the trajectory choosed in the Opera directive.*/ 
     71          } 
     72 
     73        connect(m_operaAddButton, SIGNAL(clicked()), this, SLOT(addOperaRow())); /*!< Adds rows in the tableview after clicking on the button "Add"*/ 
     74        connect(m_operaDeleteButton, SIGNAL(clicked()), this, SLOT(deleteRow())); 
     75        connect(m_operaQuitButton, SIGNAL(clicked()), this, SLOT(close())); /*!< Will be closed after a click on the button "Quit" */ 
     76        connect(m_operaHelpButton, SIGNAL(clicked()), this, SLOT(callOperaHelp())); /*!< Calls the help method.*/ 
    8177         
    82         setFixedWidth(baseSize().width() + 513); 
     78        setFixedWidth(baseSize().width() + 505); 
    8379} 
    8480//------------------------------------  End of the contructor declaration.--------------------------------------- 
     
    8682void OperaWindow::addOperaRow() { 
    8783 
    88  
    89         m_OperaDeleteButton->setEnabled(true); 
    90  
    91         string name     = m_OperaNameLine->text().toStdString(), 
    92         d1              = m_OperaD1->currentText().toStdString(), 
    93         d2              = m_OperaD2->currentText().toStdString(), 
    94         d3              = m_OperaD3->currentText().toStdString(), 
    95         traj            = m_OperaTrajname->currentText().toStdString(); 
    96  
    97  
    98 /*      if (!isString(name)) { 
    99                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    100                        tr("<p>Le premier champ contient au moins un caractere non conforme!<p> Les Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    101              return; 
    102         } 
    103         if (!isInt(d1)) { 
    104                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    105                        tr("<p>Seuls les nombres entiers sont acceptes au niveau du champ D1! <p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    106              return; 
    107         } 
    108         if (!isInt(d2)) { 
    109                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    110                        tr("<p>Seuls les nombres entiers sont acceptes au niveau du champ D2! <p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    111              return; 
    112         } 
    113         if (!isInt(d3)) { 
    114                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    115                        tr("<p>Seuls les nombres entiers sont acceptes au niveau du champ D3! <p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    116              return; 
    117         } 
    118  
    119         if (!isString(traj)) { 
    120                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    121                        tr("<p>Vous avez saisi au moins un caractere non conforme au niveau du champ de la trajectoire!<p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    122              return; 
    123         } 
    124   
    125     //static int row = 0; 
    126       //      int l = 0; 
    127 //else 
    128 //if (l >= 0)   
    129 //      {*/ 
    130                 int row = m_operaModel->rowCount(); 
    131                  
    132                 m_operaModel->setItem(row, 0, new QStandardItem(m_OperaNameLine->text())); 
    133                 //m_operaModel->setItem(row, 1, new QStandardItem(m_OperaType->text())); 
    134                 m_operaModel->setItem(row, 2, new QStandardItem(m_OperaD1->currentText())); 
    135                 m_operaModel->setItem(row, 3, new QStandardItem(m_OperaD2->currentText())); 
    136                 m_operaModel->setItem(row, 4, new QStandardItem(m_OperaD3->currentText())); 
    137                 m_operaModel->setItem(row, 5, new QStandardItem(m_OperaTrajname->currentText())); 
     84        int row = modeleOpera->rowCount();//To have the current row of the tableView. 
     85 
     86        string name     = m_operaNameLine->text().toStdString(), 
     87        d1              = m_operaD1->currentText().toStdString(), 
     88        d2              = m_operaD2->currentText().toStdString(), 
     89        d3              = m_operaD3->currentText().toStdString(), 
     90        dim             ,//= d1 + " " + d2 + " " + d3, 
     91        traj            = m_operaTrajname->currentText().toStdString(); 
     92         
     93        vector <int> theShape;   
     94 
     95        Constant *c1; //Nous créons d'abord un pointeur de constante. 
     96        Constant *c2; //Nous créons d'abord un pointeur de constante. 
     97        Constant *c3; //Nous créons d'abord un pointeur de constante. 
     98  
     99        c1  = localConstantTable->find(d1); //Ensuite on passe au pointeur le resultat de la recherche de la chaine en utilisant find. 
     100        c2 = localConstantTable->find(d2); //Ensuite on passe au pointeur le resultat de la recherche de la chaine en utilisant find. 
     101        c3 = localConstantTable->find(d3); //Ensuite on passe au pointeur le resultat de la recherche de la chaine en utilisant find. 
     102         
     103        //Control on the first dimension's value.  
     104        if (c1 != 0) { //C'est alors une constante. 
     105 
     106                dim = localConstantTable->find(d1)->getText();   
     107                theShape.push_back(toInt(localConstantTable->find(d1)->getText())); 
    138108                 
    139                 Identifier id(name, row); 
    140                 vector <int> vecteur; 
    141                         vecteur.push_back(toInt(d1)); 
    142                         vecteur.push_back(toInt(d2)); 
    143                         vecteur.push_back(toInt(d3)); 
    144                 //Component(const std::string& aName, const T* aParent); 
    145                 //Component com(name, ); 
    146                 //localOperaExtent->push_back(vecteur);  
    147                 //localOperaIdentifier->push_back(id);           
    148         //for (Table <Identifier>::iterator it = localOperaExtent->begin(); it != localOperaExtent->end(); it++)         
    149         //cout << "Voici le dernier ajout: " << it->getName().toStdString()  << endl;    
    150             //m_localData.push_back(m_OperaNameLine->text()); //+ " " + m_OperaType->text() + " " + m_OperaD1->currentText() + 
    151                                                           //" " + m_OperaD2->currentText() + " " + m_OperaD3->currentText() + 
    152                                                           //" " + m_OperaTrajname->currentText()); //<< m_OperaNameLine->text() << m_OperaType->text(); 
    153     //       row++; 
     109        } 
     110        else { 
     111 
     112 
     113                for(unsigned int i=0; i < d1.size(); i++) { 
     114                if(!(d1[i] >= '0' && d1[i] <= '9')){ 
     115  
     116                     QMessageBox::about(this, tr("Erreur de saisie!"), tr("Saisir un entier ou faire un choix dans la liste deroulante du champ \"Dimension 1\".")); 
     117                      return; 
     118                 } 
     119 
     120                } 
     121 
     122                dim = d1;        
     123                theShape.push_back(toInt(d1)); 
     124 
     125        } 
     126 
     127        //Control on the 2nd dimension's value.  
     128        if (c2 != NULL) { //C'est alors une constante. 
     129 
     130                dim =  dim + " " + localConstantTable->find(d2)->getText();      
     131                theShape.push_back(toInt(localConstantTable->find(d2)->getText())); 
     132         
     133        } 
     134        else { 
     135         
     136                for(unsigned int i=0; i < d2.size(); i++) { 
     137                if(!(d2[i] >= '0' && d2[i] <= '9')){ 
     138  
     139                     QMessageBox::about(this, tr("Operator erreur de saisie."), tr("Saisir un entier ou faire un choix dans la liste deroulante du champ \"Dimension 2\".")); 
     140                      return; 
     141                 } 
     142 
     143                } 
     144 
     145                dim = dim + " " + d2;    
     146                theShape.push_back(toInt(d2)); 
     147 
     148 
     149        } 
     150 
     151        //Control on the 3rd dimension's value.  
     152         if (c3 != NULL) { //C'est alors une constante. 
     153 
     154                dim =  dim + " " + localConstantTable->find(d3)->getText();      
     155                theShape.push_back(toInt(localConstantTable->find(d3)->getText())); 
     156        } 
     157        else { 
     158                for(unsigned int i=0; i < d3.size(); i++) { 
     159                if(!(d3[i] >= '0' && d3[i] <= '9')){ 
     160  
     161                     QMessageBox::about(this, tr("Operator: erreur de saisie."), tr("Saisir un entier ou faire un choix dans la liste deroulante du champ \"Dimension 3\".")); 
     162                      return; 
     163                 } 
     164 
     165                } 
     166 
     167                dim = dim + " " + d3;    
     168                theShape.push_back(toInt(d3)); 
     169        } 
     170  
     171        if (name.empty()) {  
     172                QMessageBox::about(this, tr("Operator: erreur de saisie."), 
     173                     tr("<p>Le champ \"Nom opera\" ne doit pas etre vide.")); 
     174                return; 
     175        } 
     176        else 
     177  
     178         if (!(dim.empty() || traj.empty())) { 
     179 
     180                modeleOpera->setItem(row, 0, new QStandardItem(m_operaNameLine->text())); 
     181                modeleOpera->setItem(row, 1, new QStandardItem(QString(dim.c_str()))); 
     182                modeleOpera->setItem(row, 2, new QStandardItem(m_operaTrajname->currentText())); 
     183                 
     184                if (!(d1.empty() || d2.empty() || d3.empty())) { 
     185                        //Operator Opera(name, localTrajectoryTable->find(traj), theShape); 
     186                        Operator::Type M; 
     187                        localOperaTable->push_back(Operator(name, localTrajectoryTable->find(traj), theShape, M));       
     188                } 
    154189                toInitialize(); 
    155   //      } 
    156         //testPresenceLigne(); 
     190  
     191                if (!isOperaTableEmpty()) m_operaDeleteButton->setEnabled(true); 
     192        } 
    157193} 
    158194 
     
    168204//void OperaWindow::addRow() { 
    169205 
    170         //int row = m_OperaTableView->rowCount(); 
    171         //m_OperaTableView->insertRow(row); 
    172         //compteur ++; 
     206        //int row = m_operaTableView->rowCount(); 
     207        //m_operaTableView->insertRow(row); 
    173208 
    174209//} 
     
    177212void OperaWindow::deleteRow() { 
    178213 
    179         //m_OperaTableView->removeRow(m_OperaTableView->currentRow()); 
    180         //testPresenceLigne(); 
     214        //m_operaTableView->removeRow(m_operaTableView->currentRow()); 
    181215         
    182         QItemSelectionModel *selection = m_OperaTableView->selectionModel(); 
     216        QItemSelectionModel *selection = m_operaTableView->selectionModel(); 
    183217         index = selection->currentIndex(); 
    184          QVariant element = m_operaModel->data(index, Qt::DisplayRole); 
     218         QVariant element = modeleOpera->data(index, Qt::DisplayRole); 
    185219          int r = index.row(); 
    186220          if (selection->hasSelection())// Permet de supprimer la ligne qui est selectionnée. Evite ainsi certains effets indesirables. 
    187221           { 
    188                   m_operaModel->removeRows(m_OperaTableView->currentIndex().row(), 1); 
    189                   //localTrajectoryTable->erase(localTrajectoryTable->begin() + r); 
     222                  modeleOpera->removeRows(m_operaTableView->currentIndex().row(), 1); 
     223                  localOperaTable->erase(localOperaTable->begin() + r); 
    190224  
    191225          } 
    192 } 
    193  
     226         
     227        if (isOperaTableEmpty()) m_operaDeleteButton->setDisabled(true); 
     228} 
     229 
     230/**********************************************************************/ 
     231bool OperaWindow::isOperaTableEmpty() {  
     232 
     233        if (localOperaTable->empty()) 
     234                return true; 
     235        else 
     236                return false; 
     237} 
    194238/************************************** Implementation of function saveInYaoStructure() ***********************************/ 
    195239void OperaWindow::saveInYaoStructure() { 
    196240 
    197241        //for (QStringList::iterator it = m_localData.begin(); it != m_localData.end(); it++) 
    198         //      m_OperaData.push_back(*it); 
    199         m_OperaData = m_localData; 
    200 } 
    201  
    202 /****************************************************************************************************************************/ 
    203 QStringList OperaWindow::getData() { 
    204  
    205     //QStringList test; 
    206      return m_OperaData; 
    207 } 
     242        //      m_operaData.push_back(*it); 
     243        m_operaData = m_localData; 
     244} 
     245 
     246/****************************************************************************************************************************/ 
    208247 
    209248/****************************************************************************************************************************/ 
    210249void OperaWindow::toInitialize() { 
    211250         
    212         m_OperaNameLine->setText(""); 
    213         m_OperaD1->setCurrentIndex(0); 
    214         m_OperaD2->setCurrentIndex(0); 
    215         m_OperaD3->setCurrentIndex(0); 
    216         m_OperaTrajname->setCurrentIndex(0); 
     251        m_operaNameLine->setText(""); 
     252        m_operaD1->setCurrentIndex(0); 
     253        m_operaD2->setCurrentIndex(0); 
     254        m_operaD3->setCurrentIndex(0); 
     255        m_operaTrajname->setCurrentIndex(0); 
    217256 
    218257} 
     
    257296void OperaWindow::callOperaHelp() { 
    258297 
    259     QMessageBox::about(this, tr("Aide sur la directive Opera."),("<p> La directive Opera permet de déclarer un eOpera qui sera identifié par son nom (Operaname) et de sa taille qui peut être en 1, 2 ou 3 dimensions." 
     298    QMessageBox::about(this, tr("Aide sur la directive Opera."),("<p> La directive Opera permet de déclarer un eOpera qui sera identifié par son nom (spacename) et de sa taille qui peut être en 1, 2 ou 3 dimensions." 
    260299                                                                  "<p><u>Exemple 1</u>: Opera Soce M SZX SZY Toce <p> Pour plus d'informations sur la directive Opera, <a href=\"help/Opera_aide.html\">cliquez ici.</a>")); 
    261300 
     
    263302 
    264303/****************************************************************************************************************************/ 
    265 void OperaWindow::testPresenceLigne() { 
    266  
    267     if (m_localData.isEmpty())  
    268       { 
    269                 m_OperaDeleteButton->setDisabled(true); 
    270                 //m_OperaEnregButton->setDisabled(true); 
    271         } 
    272     else 
    273         {  
    274                 //m_OperaDeleteButton->setEnabled(true); 
    275                 m_OperaDeleteButton->setDisabled(true); 
    276         } 
    277 } 
    278 /**************************************************************************/ 
    279  bool OperaWindow::testContenu(int anInt) { 
    280  
    281         if (anInt != 0) { 
    282                 //m_OperaEnregButton->setEnabled(true); 
    283                 m_OperaDeleteButton->setEnabled(true); 
    284  
    285                 return true; 
    286  
    287         } 
    288         else 
    289         { 
    290                 //m_OperaEnregButton->setDisabled(true); 
    291                 m_OperaDeleteButton->setDisabled(true); 
    292  
    293                 return false;    
    294         } 
    295 } 
    296304/************************************************************************/ 
    297 void OperaWindow::closeEvent(QCloseEvent *event) { 
     305/************************************************************************/void OperaWindow::closeEvent(QCloseEvent *event) { 
    298306 
    299307        emit operaWindowIsClosed(6); 
  • trunk/yao/src/interface/src/SpaceWindow.cpp

    r359 r360  
    9393void SpaceWindow::addSpaceRow() { 
    9494 
    95         int row = modeleSpace->rowCount(); 
    96  
    97         m_spaceDeleteButton->setEnabled(true); 
     95        int row = modeleSpace->rowCount();//To have the current row of the tableView. 
    9896 
    9997        string name     = m_spaceNameLine->text().toStdString(), 
     
    10199        d2              = m_spaceD2->currentText().toStdString(), 
    102100        d3              = m_spaceD3->currentText().toStdString(), 
    103         dim             = d1 + " " + d2 + " " + d3, 
     101        dim             ,//= d1 + " " + d2 + " " + d3, 
    104102        traj            = m_spaceTrajname->currentText().toStdString(); 
    105103         
     104        vector <int> theShape;   
     105 
    106106        Constant *c1; //Nous créons d'abord un pointeur de constante. 
    107107        Constant *c2; //Nous créons d'abord un pointeur de constante. 
     
    111111        c2 = localConstantTable->find(d2); //Ensuite on passe au pointeur le resultat de la recherche de la chaine en utilisant find. 
    112112        c3 = localConstantTable->find(d3); //Ensuite on passe au pointeur le resultat de la recherche de la chaine en utilisant find. 
    113         modeleSpace->setItem(row, 0, new QStandardItem(m_spaceNameLine->text())); 
    114          
    115         //vector <string> theShape; 
    116         /*modeleSpace->setItem(row, 0, new QStandardItem(m_spaceNameLine->text())); 
     113         
     114        //Control on the first dimension's value.  
     115        if (c1 != 0) { //C'est alors une constante. 
     116 
     117                dim = localConstantTable->find(d1)->getText();   
     118                theShape.push_back(toInt(localConstantTable->find(d1)->getText())); 
     119                 
     120        } 
     121        else { 
     122 
     123 
     124                for(unsigned int i=0; i < d1.size(); i++) { 
     125                if(!(d1[i] >= '0' && d1[i] <= '9')){ 
     126  
     127                     QMessageBox::about(this, tr("Erreur de saisie!"), tr("Saisir un entier ou faire un choix dans la liste deroulante du champ \"Dimension 1\".")); 
     128                      return; 
     129                 } 
     130 
     131                } 
     132 
     133                dim = d1;        
     134                theShape.push_back(toInt(d1)); 
     135 
     136        } 
     137 
     138        //Control on the 2nd dimension's value.  
     139        if (c2 != NULL) { //C'est alors une constante. 
     140 
     141                dim =  dim + " " + localConstantTable->find(d2)->getText();      
     142                theShape.push_back(toInt(localConstantTable->find(d2)->getText())); 
     143         
     144        } 
     145        else { 
     146         
     147                for(unsigned int i=0; i < d2.size(); i++) { 
     148                if(!(d2[i] >= '0' && d2[i] <= '9')){ 
     149  
     150                     QMessageBox::about(this, tr("Erreur de saisie!"), tr("Saisir un entier ou faire un choix dans la liste deroulante du champ \"Dimension 2\".")); 
     151                      return; 
     152                 } 
     153 
     154                } 
     155 
     156                dim = dim + " " + d2;    
     157                theShape.push_back(toInt(d2)); 
     158 
     159 
     160        } 
     161 
     162        //Control on the 3rd dimension's value.  
     163         if (c3 != NULL) { //C'est alors une constante. 
     164 
     165                dim =  dim + " " + localConstantTable->find(d3)->getText();      
     166                theShape.push_back(toInt(localConstantTable->find(d3)->getText())); 
     167        } 
     168        else { 
     169                for(unsigned int i=0; i < d3.size(); i++) { 
     170                if(!(d3[i] >= '0' && d3[i] <= '9')){ 
     171                        QMessageBox::about(this, tr("Erreur de saisie!"), tr("Saisir un entier ou faire un choix dans la liste deroulante du champ \"Dimension 3\".")); 
     172  
     173                      return; 
     174                 } 
     175 
     176                } 
     177 
     178                dim = dim + " " + d3;    
     179                theShape.push_back(toInt(d3)); 
     180        } 
     181  
     182        if (name.empty()) {  
     183                QMessageBox::about(this, tr("Erreur de saisie!"), 
     184                     tr("<p>Le champ \"Nom espace\" ne doit pas etre vide.")); 
     185                return; 
     186        } 
     187        else 
     188  
     189         if (!(dim.empty() || traj.empty())) { 
     190 
     191                modeleSpace->setItem(row, 0, new QStandardItem(m_spaceNameLine->text())); 
    117192                modeleSpace->setItem(row, 1, new QStandardItem(QString(dim.c_str()))); 
    118193                modeleSpace->setItem(row, 2, new QStandardItem(m_spaceTrajname->currentText())); 
    119194                 
    120                 Identifier id(name, row); 
    121                 vector <int> vecteur; 
    122                         vecteur.push_back(toInt(d1)); 
    123                         vecteur.push_back(toInt(d2)); 
    124                         vecteur.push_back(toInt(d3)); 
    125                 Space espace(name, localTrajectoryTable->find(traj), vecteur); 
    126                 localSpaceTable->push_back(espace);      
    127                 toInitialize();*/ 
    128   
    129          if (c1 != NULL) { //C'est alors une constante. 
    130  
    131                  
    132                 //modeleSpace->setItem(row, 1, new QStandardItem(QString(.c_str()))); 
    133          //string constantValue = localConstantTable->find(hatFile)->getText(); //"getText()" returns the constant value. 
    134            //      constantValue.append(".h"); 
    135          //m_hatnameModel->setItem(m_hatnameModel->rowCount(), new QStandardItem(QString(hatFile.c_str())));//QStandardItem(QString(constantValue.c_str())))    ; 
    136          //localHeaderList->push_back(hatFile); 
    137          //eraseDataFromLineEdit(); 
    138          //m_delHatButton->setEnabled(true); 
    139          cout << "Cool, c'est une constante!" << endl; 
    140         } 
    141         else 
    142         cout << "Purée!" << endl; 
    143  
    144         if (c2 != NULL) { //C'est alors une constante. 
    145          //string constantValue = localConstantTable->find(hatFile)->getText(); //"getText()" returns the constant value. 
    146            //      constantValue.append(".h"); 
    147          //m_hatnameModel->setItem(m_hatnameModel->rowCount(), new QStandardItem(QString(hatFile.c_str())));//QStandardItem(QString(constantValue.c_str())))    ; 
    148          //localHeaderList->push_back(hatFile); 
    149          //eraseDataFromLineEdit(); 
    150          //m_delHatButton->setEnabled(true); 
    151          cout << "Cool, c'est une constante!" << endl; 
    152         } 
    153         else 
    154         cout << "Purée!" << endl; 
    155  
    156          if (c3 != NULL) { //C'est alors une constante. 
    157          //string constantValue = localConstantTable->find(hatFile)->getText(); //"getText()" returns the constant value. 
    158            //      constantValue.append(".h"); 
    159          //m_hatnameModel->setItem(m_hatnameModel->rowCount(), new QStandardItem(QString(hatFile.c_str())));//QStandardItem(QString(constantValue.c_str())))    ; 
    160          //localHeaderList->push_back(hatFile); 
    161          //eraseDataFromLineEdit(); 
    162          //m_delHatButton->setEnabled(true); 
    163          cout << "Cool, c'est une constante!" << endl; 
    164         } 
    165         else 
    166         cout << "Purée!" << endl; 
    167   
    168  
    169  
    170 // else { //Ce n'est pas une constante.  
    171  
    172  
    173 //      if (!isInt(d1)) { 
    174 //              QMessageBox::about(this, tr("Erreur de saisie!"), 
    175 //                     tr("<p>Saisir des valeurs entiÚres dans le champ D1! <p>.")); 
    176 //             return; 
    177 //        } 
    178  
    179 /*      if (!isString(name)) { 
    180                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    181                        tr("<p>Le premier champ contient au moins un caractere non conforme!<p> Les Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    182              return; 
    183         } 
    184         if (!isInt(d1)) { 
    185                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    186                        tr("<p>Seuls les nombres entiers sont acceptes au niveau du champ D1! <p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    187              return; 
    188         } 
    189         if (!isInt(d2)) { 
    190                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    191                        tr("<p>Seuls les nombres entiers sont acceptes au niveau du champ D2! <p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    192              return; 
    193         } 
    194         if (!isInt(d3)) { 
    195                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    196                        tr("<p>Seuls les nombres entiers sont acceptes au niveau du champ D3! <p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    197              return; 
    198         } 
    199  
    200         if (!isString(traj)) { 
    201                 QMessageBox::about(this, tr("Erreur de saisie!"), 
    202                        tr("<p>Vous avez saisi au moins un caractere non conforme au niveau du champ de la trajectoire!<p> Cliquer sur <b>ok</b> pour fermer cette fenetre.")); 
    203              return; 
    204         } 
    205   
    206     //static int row = 0; 
    207       //      int l = 0; 
    208 //else 
    209 //if (l >= 0)   
    210 //      {*/ 
    211                  
    212                 /*modeleSpace->setItem(row, 0, new QStandardItem(m_spaceNameLine->text())); 
    213                 modeleSpace->setItem(row, 1, new QStandardItem(QString(dim.c_str()))); 
    214                 modeleSpace->setItem(row, 2, new QStandardItem(m_spaceTrajname->currentText())); 
    215                  
    216                 Identifier id(name, row); 
    217                 vector <int> vecteur; 
    218                         vecteur.push_back(toInt(d1)); 
    219                         vecteur.push_back(toInt(d2)); 
    220                         vecteur.push_back(toInt(d3)); 
    221                 Space espace(name, localTrajectoryTable->find(traj), vecteur); 
    222                 localSpaceTable->push_back(espace);      
    223                 toInitialize();*/ 
    224   //      } 
    225          
    226         if (!isSpaceTableEmpty()) m_spaceDeleteButton->setEnabled(true); 
     195                if (!(d1.empty() || d2.empty() || d3.empty())) { 
     196                        Space espace(name, localTrajectoryTable->find(traj), theShape); 
     197                        localSpaceTable->push_back(espace);      
     198                } 
     199                toInitialize(); 
     200  
     201                if (!isSpaceTableEmpty()) m_spaceDeleteButton->setEnabled(true); 
     202        } 
    227203} 
    228204 
  • trunk/yao/src/interface/src/include/OperaWindow.hpp

    r357 r360  
    22 * \file    OperaWindow.hpp 
    33 * \brief   Opera class for visual_YAO. 
    4  * \version 2009/12/26 (yyyy/mm/dd) 
    5  * \author  MAYAKI Abdouramane & MAYOMBO Alexis. 
     4 * \version 2010/06/24 (yyyy/mm/dd) 
     5 * \author  MAYAKI Abdouramane. 
    66 */ 
    77 
    88 
    9 #ifndef OperaWindow_HPP 
    10 #define OperaWindow_HPP 
     9#ifndef OPERAWINDOW_HPP 
     10#define OPERAWINDOW_HPP 
    1111 
    12 #include "TrajectoryWindow.hpp" 
    1312#include "../../ui_operawindow.h" 
    1413#include <QStandardItemModel> 
     
    3332    Q_OBJECT                                    /*!< Must be declared for using signals and slots.*/ 
    3433 
    35     public : 
     34        public : 
    3635            /*! 
    3736             *  \brief Constructor 
     
    4342 
    4443 
    45                 OperaWindow(yao::Table <yao::Space> *aSpaceTable, yao::Table <yao::Trajectory> *aTrajectory, yao::Table <yao::Constant> *aConstantTable, QWidget *parent=0);     /*!< This function sets the file's name. */ 
     44                OperaWindow(yao::Table <yao::Operator> *aOperaTable, yao::Table <yao::Trajectory> *aTrajectory, yao::Table <yao::Constant> *aConstantTable, QWidget *parent=0);     /*!< This function sets the file's name. */ 
    4645 
    47                 QStringList getData();              /*!< This function returns the Opera's data. */ 
    4846                void toInitialize(); // Est appelée pour réinitialiser les champs. 
    4947                bool isString(std::string aString); // Teste si le parametre est une chaine. 
    5048                bool isInt(std::string aStringToInt);//Teste si le parametre est un entier. 
    5149                //void addRow();                      /*!< This function is called to add row in the visual window model. */ 
    52                 void testPresenceLigne(); 
    53                 bool testContenu(int anInt); 
    5450                const int toInt(const std::string& s);  
    5551                //typedef yao::Operator Opera;  
     52                bool isOperaTableEmpty(); 
    5653                             
    57     public slots:                               /*!< Functions called after a click. */ 
     54        public slots:                               /*!< Functions called after a click. */ 
    5855 
    5956                void addOperaRow(); 
     
    6663 
    6764        protected: 
    68                  void closeEvent(QCloseEvent *event); 
    69                  
     65                void closeEvent(QCloseEvent *event); 
     66 
    7067        private : 
    71              
    7268 
    7369                QModelIndex index; 
    74                 QStandardItemModel *m_operaModel; 
     70                QStandardItemModel *modeleOpera; 
     71 
    7572 
    7673                QStringList m_horizontalHeader; 
    77                 QStringList m_OperaData; 
     74                QStringList m_operaData; 
    7875                QStringList m_localData; 
    79                 //yao::Table <yao::Identifier> *localOperaIdentifier; 
    80                 //yao::Table <Operator> *localOperaExtent; 
     76                //OperaController m_spc; 
    8177                yao::Table <yao::Trajectory> *localTrajectoryTable; 
    8278                yao::Table <yao::Constant> *localConstantTable; 
    8379                yao::Table <yao::Operator> *localOperaTable;               //!< Table of so-called Operas (model operators). 
    84                 bool isCalled; 
    85                 int compteur; 
    8680 
    8781}; 
    88 #endif // OperaWindow_HPP 
     82#endif // OPERAWINDOW_HPP 
  • trunk/yao/src/interface/src/ui_/operawindow.ui

    r350 r360  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>509</width> 
    10     <height>399</height> 
     9    <width>500</width> 
     10    <height>439</height> 
    1111   </rect> 
    1212  </property> 
     
    1919     <x>10</x> 
    2020     <y>10</y> 
    21      <width>491</width> 
    22      <height>191</height> 
     21     <width>481</width> 
     22     <height>231</height> 
    2323    </rect> 
    2424   </property> 
     
    2929    <enum>QFrame::Raised</enum> 
    3030   </property> 
    31    <widget class="QWidget" name="layoutWidget"> 
     31   <widget class="QWidget" name=""> 
    3232    <property name="geometry"> 
    3333     <rect> 
    3434      <x>10</x> 
    3535      <y>10</y> 
    36       <width>251</width> 
    37       <height>173</height> 
     36      <width>291</width> 
     37      <height>208</height> 
    3838     </rect> 
    3939    </property> 
    40     <layout class="QHBoxLayout" name="horizontalLayout_5"> 
     40    <layout class="QHBoxLayout" name="horizontalLayout_7"> 
    4141     <item> 
    4242      <layout class="QVBoxLayout" name="verticalLayout_3"> 
     
    4949       </item> 
    5050       <item> 
     51        <widget class="QLabel" name="label"> 
     52         <property name="text"> 
     53          <string>type</string> 
     54         </property> 
     55        </widget> 
     56       </item> 
     57       <item> 
    5158        <widget class="QLabel" name="m_OperaD1Label"> 
    5259         <property name="text"> 
     
    8390        <layout class="QHBoxLayout" name="horizontalLayout_6"> 
    8491         <item> 
    85           <widget class="QLineEdit" name="m_OperaNameLine"/> 
     92          <widget class="QLineEdit" name="m_operaNameLine"/> 
    8693         </item> 
    8794         <item> 
     
    101108       </item> 
    102109       <item> 
     110        <layout class="QHBoxLayout" name="horizontalLayout_5"> 
     111         <item> 
     112          <widget class="QLineEdit" name="lineEdit"/> 
     113         </item> 
     114         <item> 
     115          <spacer name="horizontalSpacer_6"> 
     116           <property name="orientation"> 
     117            <enum>Qt::Horizontal</enum> 
     118           </property> 
     119           <property name="sizeHint" stdset="0"> 
     120            <size> 
     121             <width>260</width> 
     122             <height>20</height> 
     123            </size> 
     124           </property> 
     125          </spacer> 
     126         </item> 
     127        </layout> 
     128       </item> 
     129       <item> 
    103130        <layout class="QHBoxLayout" name="horizontalLayout_4"> 
    104131         <item> 
    105           <widget class="QComboBox" name="m_OperaD1"/> 
     132          <widget class="QComboBox" name="m_operaD1"/> 
    106133         </item> 
    107134         <item> 
     
    123150        <layout class="QHBoxLayout" name="horizontalLayout_3"> 
    124151         <item> 
    125           <widget class="QComboBox" name="m_OperaD2"/> 
     152          <widget class="QComboBox" name="m_operaD2"/> 
    126153         </item> 
    127154         <item> 
     
    143170        <layout class="QHBoxLayout" name="horizontalLayout_2"> 
    144171         <item> 
    145           <widget class="QComboBox" name="m_OperaD3"/> 
     172          <widget class="QComboBox" name="m_operaD3"/> 
    146173         </item> 
    147174         <item> 
     
    163190        <layout class="QHBoxLayout" name="horizontalLayout"> 
    164191         <item> 
    165           <widget class="QComboBox" name="m_OperaTrajname"/> 
     192          <widget class="QComboBox" name="m_operaTrajname"/> 
    166193         </item> 
    167194         <item> 
     
    189216    <rect> 
    190217     <x>10</x> 
    191      <y>210</y> 
    192      <width>491</width> 
     218     <y>250</y> 
     219     <width>481</width> 
    193220     <height>181</height> 
    194221    </rect> 
     
    200227    <enum>QFrame::Raised</enum> 
    201228   </property> 
    202    <widget class="QPushButton" name="m_OperaHelpButton"> 
     229   <widget class="QPushButton" name="m_operaHelpButton"> 
    203230    <property name="geometry"> 
    204231     <rect> 
    205       <x>400</x> 
     232      <x>380</x> 
    206233      <y>140</y> 
    207234      <width>41</width> 
     
    213240    </property> 
    214241   </widget> 
    215    <widget class="QTableView" name="m_OperaTableView"> 
     242   <widget class="QTableView" name="m_operaTableView"> 
    216243    <property name="geometry"> 
    217244     <rect> 
    218245      <x>10</x> 
    219246      <y>10</y> 
    220       <width>381</width> 
     247      <width>361</width> 
    221248      <height>161</height> 
    222249     </rect> 
     
    226253    <property name="geometry"> 
    227254     <rect> 
    228       <x>400</x> 
    229       <y>30</y> 
     255      <x>380</x> 
     256      <y>20</y> 
    230257      <width>81</width> 
    231258      <height>95</height> 
     
    234261    <layout class="QVBoxLayout" name="verticalLayout"> 
    235262     <item> 
    236       <widget class="QPushButton" name="m_OperaAddButton"> 
     263      <widget class="QPushButton" name="m_operaAddButton"> 
    237264       <property name="text"> 
    238265        <string>Ajouter</string> 
     
    241268     </item> 
    242269     <item> 
    243       <widget class="QPushButton" name="m_OperaDeleteButton"> 
     270      <widget class="QPushButton" name="m_operaDeleteButton"> 
    244271       <property name="text"> 
    245272        <string>Supprimer</string> 
     
    248275     </item> 
    249276     <item> 
    250       <widget class="QPushButton" name="m_OperaQuitButton"> 
     277      <widget class="QPushButton" name="m_operaQuitButton"> 
    251278       <property name="text"> 
    252279        <string>Quitter</string> 
     
    259286 </widget> 
    260287 <tabstops> 
    261   <tabstop>m_OperaNameLine</tabstop> 
    262   <tabstop>m_OperaD1</tabstop> 
    263   <tabstop>m_OperaD2</tabstop> 
    264   <tabstop>m_OperaD3</tabstop> 
    265   <tabstop>m_OperaTrajname</tabstop> 
    266   <tabstop>m_OperaAddButton</tabstop> 
    267   <tabstop>m_OperaDeleteButton</tabstop> 
    268   <tabstop>m_OperaQuitButton</tabstop> 
    269   <tabstop>m_OperaTableView</tabstop> 
    270   <tabstop>m_OperaHelpButton</tabstop> 
     288  <tabstop>m_operaNameLine</tabstop> 
     289  <tabstop>lineEdit</tabstop> 
     290  <tabstop>m_operaD1</tabstop> 
     291  <tabstop>m_operaD2</tabstop> 
     292  <tabstop>m_operaD3</tabstop> 
     293  <tabstop>m_operaTrajname</tabstop> 
     294  <tabstop>m_operaAddButton</tabstop> 
     295  <tabstop>m_operaDeleteButton</tabstop> 
     296  <tabstop>m_operaQuitButton</tabstop> 
     297  <tabstop>m_operaTableView</tabstop> 
     298  <tabstop>m_operaHelpButton</tabstop> 
    271299 </tabstops> 
    272300 <resources/> 
Note: See TracChangeset for help on using the changeset viewer.