Changeset 118 in PSPA


Ignore:
Timestamp:
Nov 30, 2012, 8:56:51 PM (12 years ago)
Author:
lemeur
Message:

definition des sections par labels

Location:
Interface_Web/trunk/pspaWT
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/include/GWt_LigneFaisceau.h

    r113 r118  
    2929  Compteur *nObjets_[nElements];
    3030
     31
     32  string createLabel(abstractElement* elem, int n);
     33
    3134 public :
    3235  GWt_LigneFaisceau(PspaApplication*);
  • Interface_Web/trunk/pspaWT/include/GWt_abstractElement.h

    r117 r118  
    3636  void clicked();
    3737  void doubleClicked();
    38   void setLabel(int n);
     38  //  void createLabel(int n);
     39  void updateLabelWidget();
    3940  WPushButton* getButton();
    4041  WContainerWidget* getWidget();
  • Interface_Web/trunk/pspaWT/include/dataManager.h

    r114 r118  
    4444 
    4545  abstractElement* addElement(nomdElement elemType);
     46  string getLabelFromElementNumero(int numero);
    4647  void initializeExecution();
    4748  string checkExecute();
  • Interface_Web/trunk/pspaWT/include/elementsCollection.h

    r107 r118  
    2525  abstractElement* getElementPointer(string label) const;
    2626  abstractElement* getElementPointer(unsigned int index) const;
     27  abstractElement* getElementPointerFromNumero(int num) const;
     28
     29  int getNumeroFromLabel(string lab);
    2730
    2831  void eraseElement(string label);
  • Interface_Web/trunk/pspaWT/src/GWt_LigneFaisceau.cc

    r112 r118  
    88#include "GWt_soleno.h"
    99#include "GWt_bend.h"
     10#include "mixedTools.h"
    1011
    1112#include <Wt/WComboBox>
     
    2930}
    3031 
     32
     33string GWt_LigneFaisceau::createLabel(abstractElement* elem, int n)
     34{
     35  string str;
     36  if(n < 10) {
     37    str= elem->getNameOfElement()+"0"+mixedTools::intToString(n);
     38  } else {
     39    str= elem->getNameOfElement()+mixedTools::intToString(n);
     40  }
     41  return str;
     42}
     43
    3144void GWt_LigneFaisceau::dropEvent(WDropEvent evt)
    3245{
     
    3750      abstractElement* newDrift = pspa_->getDataManager()->addElement(drift);
    3851      GWt_drift* gdrift = new GWt_drift(pspa_,newDrift, evt.mimeType());
    39       gdrift->setLabel(nObjets_[drift]->incr());
     52      newDrift->setLabel( createLabel( newDrift, nObjets_[drift]->incr() ));
     53      gdrift->updateLabelWidget();
    4054      wc= gdrift->getWidget();
     55      //      pspa_->updateSelections();
    4156    }
    4257  else if ( strstr(evt.mimeType().c_str() , "beam") )
     
    4560      abstractElement* newInitialBeam = pspa_->getDataManager()->addElement(initialBeam);
    4661      GWt_initialBeam* gwInitialBeam = new GWt_initialBeam(pspa_,newInitialBeam, evt.mimeType());
    47       gwInitialBeam->setLabel(nObjets_[initialBeam]->incr());
     62      newInitialBeam->setLabel( createLabel( newInitialBeam, nObjets_[initialBeam]->incr() ) );
     63      gwInitialBeam->updateLabelWidget();
    4864      wc= gwInitialBeam->getWidget();
     65      //      pspa_->updateSelections();
    4966    }
    5067  else if ( strstr(evt.mimeType().c_str() , "cell") )
     
    5370      abstractElement* newCell = pspa_->getDataManager()->addElement(cell);
    5471      GWt_cell* gwCell = new GWt_cell(pspa_,newCell, evt.mimeType());
    55       gwCell->setLabel(nObjets_[cell]->incr());
     72      newCell->setLabel( createLabel( newCell, nObjets_[cell]->incr() ) );
     73      gwCell->updateLabelWidget();
    5674      wc= gwCell->getWidget();
     75      //      pspa_->updateSelections();
    5776    }
    5877  else if ( strstr(evt.mimeType().c_str() , "lens") )
     
    6180      abstractElement* newSoleno = pspa_->getDataManager()->addElement(soleno);
    6281      GWt_soleno* gwSoleno = new GWt_soleno(pspa_,newSoleno, evt.mimeType());
    63       gwSoleno->setLabel(nObjets_[soleno]->incr());
     82      newSoleno->setLabel( createLabel( newSoleno, nObjets_[soleno]->incr() ) );
     83      gwSoleno->updateLabelWidget();
    6484      wc= gwSoleno->getWidget();
     85      //     pspa_->updateSelections();
    6586    }
    6687  else if ( strstr(evt.mimeType().c_str() , "bend") )
     
    6990      abstractElement* newBend = pspa_->getDataManager()->addElement(bend);
    7091      GWt_bend* gwBend = new GWt_bend(pspa_,newBend, evt.mimeType());
    71       gwBend->setLabel(nObjets_[bend]->incr());
     92      newBend->setLabel( createLabel( newBend, nObjets_[bend]->incr() ) );
     93      gwBend->updateLabelWidget();
    7294      wc= gwBend->getWidget();
     95      //     pspa_->updateSelections();
    7396    }
    7497  else
    7598    {
    76       pspa_->addConsoleMessage(" RIEN trouve");
     99      pspa_->addConsoleMessage(" unable to guess the element to create ");
    77100      return;
    78101    }
    79102
    80103  beamLayout_->addWidget(wc);
     104      pspa_->updateSelections();
    81105
    82106  // pourVoir
     
    107131      {
    108132        GWt_initialBeam* gw = new GWt_initialBeam(pspa_,ptr,string("icons/beam.jpg"));
    109         gw->setLabel(nObjets_[initialBeam]->incr());
     133        //      gw->setLabel(nObjets_[initialBeam]->incr());
     134        gw->updateLabelWidget();
     135        nObjets_[initialBeam]->incr();
    110136        beamLayout_->addWidget(gw->getWidget());
    111137        break;
     
    114140      {
    115141        GWt_drift* gw = new GWt_drift(pspa_,ptr,string("icons/drift.jpg"));
    116         gw->setLabel(nObjets_[drift]->incr());
     142        //      gw->setLabel( nObjets_[drift]->incr());
     143        gw->updateLabelWidget();
     144        nObjets_[drift]->incr();
    117145        beamLayout_->addWidget(gw->getWidget());
    118146        break;
     
    121149      {
    122150        GWt_cell* gw = new GWt_cell(pspa_,ptr,string("icons/cell.jpg"));
    123         gw->setLabel(nObjets_[cell]->incr());
     151        //      gw->setLabel(nObjets_[cell]->incr());
     152        gw->updateLabelWidget();
     153        nObjets_[cell]->incr();
    124154        beamLayout_->addWidget(gw->getWidget());
    125155        break;
     
    128158      {
    129159        GWt_soleno* gw = new GWt_soleno(pspa_,ptr,string("icons/lens.jpg"));
    130         gw->setLabel(nObjets_[soleno]->incr());
     160        //      gw->setLabel(nObjets_[soleno]->incr());
     161        gw->updateLabelWidget();
     162        nObjets_[soleno]->incr();
    131163        beamLayout_->addWidget(gw->getWidget());
    132164        break;
     
    135167      {
    136168        GWt_bend* gw = new GWt_bend(pspa_,ptr,string("icons/bend.jpg"));
    137         gw->setLabel(nObjets_[bend]->incr());
     169        //      gw->setLabel(nObjets_[bend]->incr());
     170        gw->updateLabelWidget();
     171        nObjets_[bend]->incr();
    138172        beamLayout_->addWidget(gw->getWidget());
    139173        break;
     
    146180    }   
    147181  }
     182  pspa_->updateSelections();
     183
    148184}
  • Interface_Web/trunk/pspaWT/src/GWt_abstractElement.cc

    r116 r118  
    11
    22#include "GWt_abstractElement.h"
    3 #include "mixedTools.h"
    43#include <Wt/WText>
    54
    65GWt_abstractElement::GWt_abstractElement(PspaApplication* ps,abstractElement* elem,string image)
    76{
    8   cout << "GWt_abstractElement::GWt_abstractElement()" << endl;
    97
    108  pspa_ = ps;
    11   pspa_->updateSelections();
     9  // pspa_->updateSelections();
    1210
    1311  element_ = elem;
     
    2220  wc_->addWidget(dropped_);
    2321  wc_->addWidget(new WBreak());
    24 
    2522}
    2623
    27 void GWt_abstractElement::setLabel(int n)
     24
     25void GWt_abstractElement::updateLabelWidget()
    2826{
    29   string str;
    30   if(n < 10) {
    31     str= element_->getNameOfElement()+"0"+mixedTools::intToString(n);
    32   } else {
    33     str= element_->getNameOfElement()+mixedTools::intToString(n);
    34   }
    35   cout << "2-GWt_abstractElement::label= " << str << endl;
    36 
    37   element_->setLabel(str);
    38 
     27  string str = element_->getLabel();
    3928  WText *item = new WText(str);
    4029  wc_->addWidget(item);
  • Interface_Web/trunk/pspaWT/src/GWt_pspaApplication.cc

    r114 r118  
    160160WWidget* PspaApplication::createExecuteWidget()
    161161{
    162   cout << "PspaApplication::createExecuteWidget()" << endl;
    163162
    164163  WContainerWidget* executeW = new WContainerWidget();
     
    218217void PspaApplication::addSectionToExecuteW()
    219218{
    220   cout << "PspaApplication::addSectionToExecute() : " << selectedSections_.size() << endl;
    221219
    222220  disableSectionExecute();
     
    225223  if(selectedSections_.size() == 0)
    226224    {
    227       premierText = "1";
    228       dernierText = mixedTools::intToString( dtmanage_->beamLineSize() );
     225      premierText = dtmanage_->getLabelFromElementNumero(1);
     226
     227      dernierText = dtmanage_->getLabelFromElementNumero(dtmanage_->beamLineSize());
    229228    }
    230229  else 
    231230    {
    232231      dernierText = selectedSections_.back()->fin->text().toUTF8();
    233       int dernierNumero = atoi(dernierText.c_str());
     232      int dernierNumero = dtmanage_->getCollection()->getNumeroFromLabel(dernierText);
    234233      dernierNumero++;
    235234      if ( dernierNumero <= dtmanage_->beamLineSize() )
    236235        {
    237           premierText = mixedTools::intToString(dernierNumero);   
    238           dernierText = premierText;
     236          premierText = dtmanage_->getLabelFromElementNumero(dernierNumero);
    239237        }
    240238      else
    241239        {
    242           premierText = mixedTools::intToString( dtmanage_->beamLineSize() );
    243           dernierText = premierText;
     240          premierText = dtmanage_->getLabelFromElementNumero(dtmanage_->beamLineSize());
    244241        }
    245     }
    246  
    247   cout << "PspaApplication::addSectionToExecute() : " << premierText << ",à  " << dernierText << endl;
     242      dernierText = premierText;
     243    }
     244 
     245  //  cout << "PspaApplication::addSectionToExecute() : " << premierText << " à  " << dernierText << endl;
    248246
    249247  WContainerWidget* newSection = new WContainerWidget;
     
    282280
    283281  // traitement de la premiere ligne
    284   (*selectedSections_.begin())->debut->setText("1");
     282  // on impose le depart du calcul au premier element
     283  string premier = dtmanage_->getLabelFromElementNumero(1);
     284  (*selectedSections_.begin())->debut->setText(premier);
     285
    285286  string currentString =  (*selectedSections_.begin())->fin->text().toUTF8();
    286   int current = atoi ( currentString.c_str() );
    287   if ( current <= 0 )
    288     {
    289       (*selectedSections_.begin())->fin->setText("1");
    290       current = 1;
     287  int current = dtmanage_->getCollection()->getNumeroFromLabel( currentString);
     288
     289  cout << " numero " << current << endl;
     290  // si la fin est mal definie on prend toute la config par defaut
     291  if ( current <= 0 || current > dtmanage_->beamLineSize() )
     292    {
     293      current = dtmanage_->beamLineSize();
     294      currentString =  dtmanage_->getLabelFromElementNumero(current);
     295      (*selectedSections_.begin())->fin->setText(currentString);
    291296    }
    292297  current++;
    293   if ( current > dtmanage_->beamLineSize() ) current = dtmanage_->beamLineSize();
    294   currentString = mixedTools::intToString(current);
     298  currentString = dtmanage_->getLabelFromElementNumero(current);
    295299   
    296300  // traitement des suivantes (on avance d'un cran dans la liste)
     
    301305    {
    302306      // debut
     307      if ( current >= dtmanage_->beamLineSize() )
     308        {
     309          addConsoleMessage(" bad section definition !  \n ");
     310          probleme_->setHidden(false);
     311          return;
     312        }
     313
    303314      (*itr)->debut->setText(currentString);
    304315      // fin
    305316      string finString =  (*itr)->fin->text().toUTF8();
    306       if ( atoi(finString.c_str() ) < current)
     317
     318      int numeroFin = dtmanage_->getCollection()->getNumeroFromLabel( finString);
     319
     320      if ( numeroFin <= current || numeroFin > dtmanage_->beamLineSize())
    307321        {
    308           (*itr)->fin->setText(currentString);
     322          addConsoleMessage(" bad section definition !  \n ");
     323          probleme_->setHidden(false);
     324          return;
    309325        }
    310326
    311327      // preparation de la ligne suivante
    312       finString =  (*itr)->fin->text().toUTF8();
    313       current = atoi(finString.c_str()) +1;
    314       if ( current > dtmanage_->beamLineSize() ) current = dtmanage_->beamLineSize();
    315       currentString = mixedTools::intToString(current);
     328      current = numeroFin +1;
     329      currentString = dtmanage_->getLabelFromElementNumero(current);
    316330    }
    317331
     
    334348      string debString = (*itr)->debut->text().toUTF8();
    335349      string finString = (*itr)->fin->text().toUTF8();
    336       int debut = atoi(debString.c_str());
    337       int fin = atoi(finString.c_str());
     350
     351
     352      int debut = dtmanage_->getCollection()->getNumeroFromLabel(debString);
     353      int fin = dtmanage_->getCollection()->getNumeroFromLabel(finString);
    338354      nomDeLogiciel prog = nomDeLogiciel ( (*itr)->selection->currentIndex() );
    339355      dtmanage_->addSectionToExecute(debut,fin,prog);
     
    512528  if ( selectedSections_.size() > 0 )
    513529    {
    514       premierText = "1";
    515       dernierText = mixedTools::intToString( dtmanage_->beamLineSize() );
     530      premierText = dtmanage_->getLabelFromElementNumero(1);
     531      dernierText = dtmanage_->getLabelFromElementNumero( dtmanage_->beamLineSize() );
    516532      (*selectedSections_.begin())->debut->setText(premierText);
    517533      (*selectedSections_.begin())->fin->setText(dernierText);
    518534    }
    519535
    520   cout << "PspaApplication::updateSelections(): " << premierText << ",à  " << dernierText << endl;
     536  cout << "PspaApplication::updateSelections(): " << premierText << " Ã   " << dernierText << endl;
    521537}
    522538
  • Interface_Web/trunk/pspaWT/src/dataManager.cc

    r114 r118  
    99  return elementsGallery_.addElement(elemType);
    1010}
     11
     12string dataManager::getLabelFromElementNumero(int numero)
     13{
     14  abstractElement* ptr = elementsGallery_.getElementPointerFromNumero(numero);
     15  if ( ptr == NULL ) return "";
     16  return ptr->getLabel();
     17}
     18
    1119
    1220void dataManager::addSectionToExecute(int debut, int fin, nomDeLogiciel prog)
     
    3947    indexDeb = jobList_[k]->firstElement;
    4048    indexFin = jobList_[k]->lastElement;
     49    if ( indexFin  <= indexDeb )
     50      {
     51        diagnostic += " first ans last elements are the same \n";
     52        break;
     53      }
     54    cout << " indexDeb= " << indexDeb << " indexFin= " << indexFin << endl;
    4155    indexDeb--;
    4256    indexFin--;
  • Interface_Web/trunk/pspaWT/src/elementBend.cc

    r114 r118  
    8181    ostringstream sortie;
    8282    sortie << elementName_ << endl;
     83    sortie  << label_ << endl;
    8384    sortie << angleDeg_ << "  " << radius_ << " " <<  aperture_  << endl;
    8485    sortie << beta1_ << "  " << beta2_ << endl;
     
    8889void elementBend::FileInput(ifstream& ifs)
    8990{
     91  ifs >> label_;
    9092  ifs >> angleDeg_ >> radius_ >>  aperture_;
    9193  ifs >> beta1_ >> beta2_;
  • Interface_Web/trunk/pspaWT/src/elementCell.cc

    r105 r118  
    100100    ostringstream sortie;
    101101    sortie << elementName_  << endl;
     102    sortie  << label_ << endl;
    102103    sortie << lenghtElem_ << " " << aperture_ << endl;
    103104    sortie << initialPhase_ << "  " << acceleratingField_ << endl;
     
    111112void elementCell::FileInput(ifstream& ifs)
    112113{
     114  ifs >> label_;
    113115  ifs >> lenghtElem_ >>  aperture_;
    114116  ifs >> initialPhase_ >> acceleratingField_;
  • Interface_Web/trunk/pspaWT/src/elementDrift.cc

    r114 r118  
    6363{
    6464  ostringstream sortie;
    65   sortie << elementName_ << endl;
     65  sortie << elementName_  << endl;
     66  sortie  << label_ << endl;
    6667  sortie << lenghtElem_ << "  " << aperture_ <<endl;
    6768  return sortie.str();
     
    7071void elementDrift::FileInput(ifstream& ifs)
    7172{
     73  ifs >> label_;
    7274  ifs >> lenghtElem_ >>  aperture_;
    7375}
  • Interface_Web/trunk/pspaWT/src/elementInitialBeam.cc

    r102 r118  
    9393    // on prend les troncatures tmax et rmax à 3 sigmas
    9494    sortie << elementName_ << endl;
     95    sortie  << label_ << endl;
    9596    sortie <<  nmacrop_ << "  " << sigma_t_ << "  " << sigma_r_ << endl;
    9697    sortie << E_cin_ << " " << sigma_E_ << endl;
     
    101102void elementInitialBeam::FileInput(ifstream& ifs)
    102103{
     104  ifs >> label_;
    103105  ifs >> nmacrop_ >> sigma_t_ >> sigma_r_;
    104106  ifs >> E_cin_ >> sigma_E_;
  • Interface_Web/trunk/pspaWT/src/elementSoleno.cc

    r114 r118  
    7676    ostringstream sortie;
    7777    sortie << elementName_ << endl;
     78    sortie  << label_ << endl;
    7879    sortie << lenghtElem_ << "  " << aperture_<< " "  << B0_ << endl;
    7980    return sortie.str();
     
    8283void elementSoleno::FileInput(ifstream& ifs)
    8384{
     85  ifs >> label_;
    8486  ifs >> lenghtElem_ >>  aperture_ >> B0_;
    8587}
  • Interface_Web/trunk/pspaWT/src/elementsCollection.cc

    r106 r118  
    7878}
    7979
     80// un numero va de 1 à l'infini
     81abstractElement* elementsCollection::getElementPointerFromNumero(int num) const
     82{
     83  if ( num > elements_.size() || num <= 0)
     84    {
     85      return NULL;
     86    }
     87  else
     88    {
     89      return elements_[num-1];   
     90    }
     91}
     92
    8093abstractElement* elementsCollection::getElementPointer(unsigned int index) const
    8194{
     
    8396  else  return elements_[index];         
    8497}
     98
     99int elementsCollection::getNumeroFromLabel(string lab)
     100{
     101  unsigned int k;
     102  int klab = -1;
     103  for (k = 0; k < elements_.size() ; k++)
     104    {
     105      if ( elements_[k]->getLabel() == lab )
     106        {
     107          klab = (int)k + 1;
     108          break;
     109        }       
     110    }
     111    return klab;
     112}
     113
    85114
    86115void elementsCollection::eraseElement(string label)
  • Interface_Web/trunk/pspaWT/workingArea/pspa.save

    r84 r118  
    222998.65 1 100000 10
    330
     4beam01
    4520  3.6  0.02
    561e-06 1e-06
    671  3.1211e+09
    782
     9cell01
    81017.7 1.2
    91170  75
     
    1315-20.53 1
    14161
     17drift01
    1518225.9  3
    16194
     20solnd01
    17217.88  1e+61 1.02885
    18221
     23drift02
    1924153.72  1e+06
    20253
     26bend01
    212760  1 1e+06
    222818.24  18.24
    23291
     30drift03
    2431124.27  1e+06
Note: See TracChangeset for help on using the changeset viewer.