Changeset 125 in PSPA for Interface_Web/trunk/pspaWT


Ignore:
Timestamp:
Dec 3, 2012, 5:53:45 PM (12 years ago)
Author:
touze
Message:

use factory & create new class nomdElements

Location:
Interface_Web/trunk/pspaWT/src
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/src/GWt_LigneFaisceau.cc

    r118 r125  
    1919  setLayout(beamLayout_);
    2020
    21   int k;
    22   for(k = 0; k < nElements; k++) nObjets_[k]= new Compteur();
     21  nomdElements e;
     22  int nElements= e.getNumberOfElements();
     23  nObjets_= new Compteur[nElements];
     24  //int k;
     25  //for(k = 0; k < nElements; k++) nObjets_[k]= new Compteur();
    2326
    2427  acceptDrops("icons/beam.jpg");
     
    3033}
    3134 
    32 
    33 string GWt_LigneFaisceau::createLabel(abstractElement* elem, int n)
     35// string GWt_LigneFaisceau::createLabel(abstractElement* elem, int n)
     36// {
     37//   string str;
     38//   if(n < 10) {
     39//     str= elem->getNameOfElement()+"0"+mixedTools::intToString(n);
     40//   } else {
     41//     str= elem->getNameOfElement()+mixedTools::intToString(n);
     42//   }
     43//   return str;
     44// }
     45
     46string GWt_LigneFaisceau::createLabel(nomdElements el,int n)
    3447{
    3548  string str;
    3649  if(n < 10) {
    37     str= elem->getNameOfElement()+"0"+mixedTools::intToString(n);
     50    str= el.getElementLabel()+"0"+mixedTools::intToString(n);
    3851  } else {
    39     str= elem->getNameOfElement()+mixedTools::intToString(n);
     52    str= el.getElementLabel()+mixedTools::intToString(n);
    4053  }
    4154  return str;
     
    4457void GWt_LigneFaisceau::dropEvent(WDropEvent evt)
    4558{
    46   WContainerWidget* wc = NULL;
    47   if ( strstr(evt.mimeType().c_str() , "drift") )
    48     {
    49       pspa_->addConsoleMessage("DRIFT");
    50       abstractElement* newDrift = pspa_->getDataManager()->addElement(drift);
    51       GWt_drift* gdrift = new GWt_drift(pspa_,newDrift, evt.mimeType());
    52       newDrift->setLabel( createLabel( newDrift, nObjets_[drift]->incr() ));
    53       gdrift->updateLabelWidget();
    54       wc= gdrift->getWidget();
    55       //      pspa_->updateSelections();
    56     }
    57   else if ( strstr(evt.mimeType().c_str() , "beam") )
    58     {
    59       pspa_->addConsoleMessage("INITIAL_BEAM");
    60       abstractElement* newInitialBeam = pspa_->getDataManager()->addElement(initialBeam);
    61       GWt_initialBeam* gwInitialBeam = new GWt_initialBeam(pspa_,newInitialBeam, evt.mimeType());
    62       newInitialBeam->setLabel( createLabel( newInitialBeam, nObjets_[initialBeam]->incr() ) );
    63       gwInitialBeam->updateLabelWidget();
    64       wc= gwInitialBeam->getWidget();
    65       //      pspa_->updateSelections();
    66     }
    67   else if ( strstr(evt.mimeType().c_str() , "cell") )
    68     {
    69       pspa_->addConsoleMessage("CELL");
    70       abstractElement* newCell = pspa_->getDataManager()->addElement(cell);
    71       GWt_cell* gwCell = new GWt_cell(pspa_,newCell, evt.mimeType());
    72       newCell->setLabel( createLabel( newCell, nObjets_[cell]->incr() ) );
    73       gwCell->updateLabelWidget();
    74       wc= gwCell->getWidget();
    75       //      pspa_->updateSelections();
    76     }
    77   else if ( strstr(evt.mimeType().c_str() , "lens") )
    78     {
    79       pspa_->addConsoleMessage("SOLENOID");
    80       abstractElement* newSoleno = pspa_->getDataManager()->addElement(soleno);
    81       GWt_soleno* gwSoleno = new GWt_soleno(pspa_,newSoleno, evt.mimeType());
    82       newSoleno->setLabel( createLabel( newSoleno, nObjets_[soleno]->incr() ) );
    83       gwSoleno->updateLabelWidget();
    84       wc= gwSoleno->getWidget();
    85       //     pspa_->updateSelections();
    86     }
    87   else if ( strstr(evt.mimeType().c_str() , "bend") )
    88     {
    89       pspa_->addConsoleMessage("BENDING MAGNET");
    90       abstractElement* newBend = pspa_->getDataManager()->addElement(bend);
    91       GWt_bend* gwBend = new GWt_bend(pspa_,newBend, evt.mimeType());
    92       newBend->setLabel( createLabel( newBend, nObjets_[bend]->incr() ) );
    93       gwBend->updateLabelWidget();
    94       wc= gwBend->getWidget();
    95       //     pspa_->updateSelections();
    96     }
    97   else
    98     {
    99       pspa_->addConsoleMessage(" unable to guess the element to create ");
    100       return;
    101     }
    102 
     59  nomdElements e(evt.mimeType());
     60  typedElement eType = e.getElementType();
     61  cout << "GWt_LigneFaisceau::dropEvent " << evt.mimeType() << " " << eType << endl;
     62  if(eType == inconnu) {
     63    cout << "GWt_LigneFaisceau::element type " << eType << " inconnu " << endl;
     64    return;
     65  }
     66
     67  pspa_->addConsoleMessage(e.getElementName());
     68  abstractElement* ptr = pspa_->getDataManager()->addElement(eType);
     69  ptr->setLabel(createLabel(e,nObjets_[eType].incr()));
     70  GWt_abstractElement* gw = GWt_abstractElement::ajoute(pspa_,ptr,evt.mimeType());
     71  if(gw == NULL) return;
     72
     73  WContainerWidget* wc = NULL; 
     74  gw->updateLabelWidget();
     75  wc= gw->getWidget();
    10376  beamLayout_->addWidget(wc);
    104       pspa_->updateSelections();
     77  pspa_->updateSelections();
     78
     79  //////////////////////////////////////////////////////////////////
    10580
    10681  // pourVoir
     
    11388    cout << "GWt_LigneFaisceau:: " << label << " dans la liste" << endl;
    11489  }
    115 
    116 }
    117 
     90 
     91}
     92
     93/*
     94  void GWt_LigneFaisceau::dropEvent(WDropEvent evt)
     95  {
     96  WContainerWidget* wc = NULL;
     97  nomdElements e(evt.mimeType());
     98  cout << "GWt_LigneFaisceau::dropEvent " << evt.mimeType() << " " << e.getElementName() << endl;
     99
     100  if ( strstr(evt.mimeType().c_str() , "drift") )
     101    {
     102      pspa_->addConsoleMessage("DRIFT");
     103      abstractElement* newDrift = pspa_->getDataManager()->addElement(drift);
     104      GWt_drift* gdrift = new GWt_drift(pspa_,newDrift, evt.mimeType());
     105      newDrift->setLabel( createLabel( newDrift, nObjets_[drift].incr() ));
     106      gdrift->updateLabelWidget();
     107      wc= gdrift->getWidget();
     108      //      pspa_->updateSelections();
     109    }
     110  else if ( strstr(evt.mimeType().c_str() , "beam") )
     111    {
     112      pspa_->addConsoleMessage("INITIAL_BEAM");
     113      abstractElement* newInitialBeam = pspa_->getDataManager()->addElement(initialBeam);
     114      GWt_initialBeam* gwInitialBeam = new GWt_initialBeam(pspa_,newInitialBeam, evt.mimeType());
     115      newInitialBeam->setLabel( createLabel( newInitialBeam, nObjets_[initialBeam].incr() ) );
     116      gwInitialBeam->updateLabelWidget();
     117      wc= gwInitialBeam->getWidget();
     118      //      pspa_->updateSelections();
     119    }
     120  else if ( strstr(evt.mimeType().c_str() , "cell") )
     121    {
     122      pspa_->addConsoleMessage("CELL");
     123      abstractElement* newCell = pspa_->getDataManager()->addElement(cell);
     124      GWt_cell* gwCell = new GWt_cell(pspa_,newCell, evt.mimeType());
     125      newCell->setLabel( createLabel( newCell, nObjets_[cell].incr() ) );
     126      gwCell->updateLabelWidget();
     127      wc= gwCell->getWidget();
     128      //      pspa_->updateSelections();
     129    }
     130  else if ( strstr(evt.mimeType().c_str() , "lens") )
     131    {
     132      pspa_->addConsoleMessage("SOLENOID");
     133      abstractElement* newSoleno = pspa_->getDataManager()->addElement(soleno);
     134      GWt_soleno* gwSoleno = new GWt_soleno(pspa_,newSoleno, evt.mimeType());
     135      newSoleno->setLabel( createLabel( newSoleno, nObjets_[soleno].incr() ) );
     136      gwSoleno->updateLabelWidget();
     137      wc= gwSoleno->getWidget();
     138      //     pspa_->updateSelections();
     139    }
     140  else if ( strstr(evt.mimeType().c_str() , "bend") )
     141    {
     142      pspa_->addConsoleMessage("BENDING MAGNET");
     143      abstractElement* newBend = pspa_->getDataManager()->addElement(bend);
     144      GWt_bend* gwBend = new GWt_bend(pspa_,newBend, evt.mimeType());
     145      newBend->setLabel( createLabel( newBend, nObjets_[bend].incr() ) );
     146      gwBend->updateLabelWidget();
     147      wc= gwBend->getWidget();
     148      //     pspa_->updateSelections();
     149    }
     150  else
     151    {
     152      pspa_->addConsoleMessage(" unable to guess the element to create ");
     153      return;
     154    }
     155
     156  beamLayout_->addWidget(wc);
     157      pspa_->updateSelections();
     158
     159  // pourVoir
     160  int nElts= pspa_->getDataManager()->beamLineSize();
     161  cout << "GWt_LigneFaisceau:: nElts= " << nElts << endl;
     162  unsigned int k;
     163  for(k = 0; k < (unsigned)nElts; k++) {
     164    abstractElement* ptr= pspa_->getDataManager()->getCollection()->getElementPointer(k);
     165    string label= ptr->getLabel();
     166    cout << "GWt_LigneFaisceau:: " << label << " dans la liste" << endl;
     167  }
     168
     169}
     170****** */
     171   
    118172void GWt_LigneFaisceau::restoreElementCollection()
    119173{
    120174  beamLayout_->clear();
     175 
     176  //for(k = 0; k < nElements; k++) delete nObjets_[k];
     177  //for(k = 0; k < nElements; k++) nObjets_[k]= new Compteur();
     178
     179  delete[] nObjets_;
     180  nomdElements ee;
     181  int nElements= ee.getNumberOfElements();
     182  nObjets_= new Compteur[nElements];
     183
     184  int nbElem = pspa_->getDataManager()->beamLineSize();
    121185  unsigned int k;
    122   for(k = 0; k < nElements; k++) delete nObjets_[k];
    123   for(k = 0; k < nElements; k++) nObjets_[k]= new Compteur();
    124   int nbElem = pspa_->getDataManager()->beamLineSize();
    125  
    126   for(k = 0; k < (unsigned)nbElem; k++) {     
    127     abstractElement* ptr = pspa_->getDataManager()->getCollection()->getElementPointer(k);
    128     nomdElement nom = ptr->getName();
    129     switch (nom) {
    130     case initialBeam :
    131       {
    132         GWt_initialBeam* gw = new GWt_initialBeam(pspa_,ptr,string("icons/beam.jpg"));
    133         //      gw->setLabel(nObjets_[initialBeam]->incr());
    134         gw->updateLabelWidget();
    135         nObjets_[initialBeam]->incr();
    136         beamLayout_->addWidget(gw->getWidget());
    137         break;
     186  for(k = 0; k < (unsigned)nbElem; k++)
     187    {     
     188      abstractElement* ptr = pspa_->getDataManager()->getCollection()->getElementPointer(k);
     189      typedElement eType= ptr->getName();
     190      nomdElements e(eType);
     191
     192      GWt_abstractElement* gw = GWt_abstractElement::ajoute(pspa_,ptr,e.getElementImage());
     193      if(gw == NULL) {
     194        cerr << "GWt_LigneFaisceau::restaure element type " << eType << " inconnu " << endl;
    138195      }
    139     case drift :
    140       {
    141         GWt_drift* gw = new GWt_drift(pspa_,ptr,string("icons/drift.jpg"));
    142         //      gw->setLabel( nObjets_[drift]->incr());
    143         gw->updateLabelWidget();
    144         nObjets_[drift]->incr();
    145         beamLayout_->addWidget(gw->getWidget());
    146         break;
    147       }
    148     case cell :
    149       {
    150         GWt_cell* gw = new GWt_cell(pspa_,ptr,string("icons/cell.jpg"));
    151         //      gw->setLabel(nObjets_[cell]->incr());
    152         gw->updateLabelWidget();
    153         nObjets_[cell]->incr();
    154         beamLayout_->addWidget(gw->getWidget());
    155         break;
    156       }
    157     case soleno :
    158       {
    159         GWt_soleno* gw = new GWt_soleno(pspa_,ptr,string("icons/lens.jpg"));
    160         //      gw->setLabel(nObjets_[soleno]->incr());
    161         gw->updateLabelWidget();
    162         nObjets_[soleno]->incr();
    163         beamLayout_->addWidget(gw->getWidget());
    164         break;
    165       }
    166     case bend :
    167       {
    168         GWt_bend* gw = new GWt_bend(pspa_,ptr,string("icons/bend.jpg"));
    169         //      gw->setLabel(nObjets_[bend]->incr());
    170         gw->updateLabelWidget();
    171         nObjets_[bend]->incr();
    172         beamLayout_->addWidget(gw->getWidget());
    173         break;
    174       }
    175     default :
    176       {
    177         cerr << "GWt_LigneFaisceau::restaure element type " << nom << " inconnu " << endl;
    178         break;
    179       }
    180     }   
    181   }
     196     
     197      gw->updateLabelWidget();
     198      nObjets_[eType].incr();
     199      beamLayout_->addWidget(gw->getWidget());
     200    }
     201
    182202  pspa_->updateSelections();
    183 
    184 }
     203}
  • Interface_Web/trunk/pspaWT/src/GWt_abstractElement.cc

    r118 r125  
    11
    22#include "GWt_abstractElement.h"
     3#include "GWt_initialBeam.h"
     4#include "GWt_drift.h"
     5#include "GWt_cell.h"
     6#include "GWt_bend.h"
     7#include "GWt_soleno.h"
     8
     9#include "mixedTools.h"
     10#include "nomdElements.h"
     11
    312#include <Wt/WText>
    413
    514GWt_abstractElement::GWt_abstractElement(PspaApplication* ps,abstractElement* elem,string image)
    615{
     16  cout << "GWt_abstractElement::GWt_abstractElement()" << endl;
    717
    818  pspa_ = ps;
    9   // pspa_->updateSelections();
    1019
    1120  element_ = elem;
     
    6877  return wc_;
    6978}
     79
     80GWt_abstractElement* GWt_abstractElement::ajoute(PspaApplication* ps,abstractElement* ptr,const string& type)
     81{
     82  nomdElements e(type);
     83  typedElement eType = e.getElementType();
     84  if(eType == inconnu) return NULL;
     85
     86  if(eType == initialBeam) return new GWt_initialBeam(ps,ptr,type);
     87  if(eType == drift) return new GWt_drift(ps,ptr,type);
     88  if(eType == cell) return new GWt_cell(ps,ptr,type);
     89  if(eType == bend) return new GWt_bend(ps,ptr,type);
     90  if(eType == soleno) return new GWt_soleno(ps,ptr,type);
     91}
     92
  • Interface_Web/trunk/pspaWT/src/abstractElement.cc

    r114 r125  
    6363}
    6464
    65 nomdElement abstractElement::getName() const
     65typedElement abstractElement::getName() const
    6666{
    6767  return elementName_;
  • Interface_Web/trunk/pspaWT/src/dataManager.cc

    r118 r125  
    55#include <fstream>
    66
    7 abstractElement* dataManager::addElement(nomdElement elemType)
     7abstractElement* dataManager::addElement(typedElement elemType)
    88{
    99  return elementsGallery_.addElement(elemType);
     
    442442
    443443  elementsGallery_.raz();
    444   nomdElement elem;
     444  typedElement elem;
    445445  while (infile >> ielem) {
    446     elem = (nomdElement)ielem;
     446    elem = (typedElement)ielem;
    447447    abstractElement* nouveau = addElement(elem);
    448448    nouveau->FileInput(infile);
  • Interface_Web/trunk/pspaWT/src/elementsCollection.cc

    r118 r125  
    3030}
    3131 
    32 abstractElement* elementsCollection::addElement(nomdElement elemType)
     32abstractElement* elementsCollection::addElement(typedElement elemType)
    3333{
    3434  switch ( elemType )
Note: See TracChangeset for help on using the changeset viewer.