source: PSPA/Interface_Web/trunk/pspaWT/src/GWt_abstractElement.cc @ 248

Last change on this file since 248 was 248, checked in by garnier, 11 years ago

Grosse modifications pour une meilleur gestion des drag & drop (a terminer)

File size: 3.3 KB
Line 
1
2#include <iostream>
3#include <string>
4
5#include "GWt_abstractElement.h"
6#include "GWt_rfgun.h"
7#include "GWt_drift.h"
8#include "GWt_cell.h"
9#include "GWt_bend.h"
10#include "GWt_soleno.h"
11#include "GWt_beam.h"
12#include "GWt_fit.h"
13
14#include "mixedTools.h"
15#include "nomdElements.h"
16
17#include <Wt/WText>
18#include <Wt/WLineEdit>
19#include <Wt/WBreak>
20#include <Wt/WApplication>
21
22GWt_abstractElement::GWt_abstractElement(abstractElement* elem)
23  : WContainerWidget()
24{
25  //  pspa_ = ps;
26  element_ = elem;
27
28  dropped_ = new GWt_draggableImage(element_->getNomdElement().getElementImage());
29  dropped_->setObjectName("aPushButton");
30  //  dropped_->setIcon(element_->getNomdElement().getElementImage());
31  dropped_->setMaximumSize(50,37);
32  dropped_->clicked().connect(this,&GWt_abstractElement::clicked);
33
34  wc_ = new WContainerWidget();
35  wc_->setObjectName("aContainer");
36  wc_->addWidget(dropped_);
37
38  WBreak *bk= new WBreak();
39  bk->setObjectName("aBreak");
40  wc_->addWidget(bk);
41  //wc_->addWidget(new WBreak());
42}
43
44string* GWt_abstractElement::beginDialog()
45{
46  string* param = element_-> getParametersString();
47 
48  if ( param == NULL )
49    {
50      if ( static_cast<GWt_console*> (wApp->findWidget ("console"))) {
51        GWt_console* console = static_cast<GWt_console*> (wApp->findWidget ("console"));
52        console->addConsoleMessage(" GWt_abstractElement::beginDialog : empty parameter set for element " + element_->getNomdElement().getElementName());
53      }
54    }
55  //   int compteur = -1;
56
57  //  int nbparam = atoi(param[++compteur].c_str());
58  int nbparam = atoi(param->c_str());
59  if ( nbparam != element_->getNbParams()) 
60    {
61      if ( static_cast<GWt_console*> (wApp->findWidget ("console"))) {
62        GWt_console* console = static_cast<GWt_console*> (wApp->findWidget ("console"));
63      console->addConsoleMessage(" element seems not to be a " + element_->getNomdElement().getElementName());
64      }
65    }
66
67  dialog_ = new WDialog("element " + element_->getNomdElement().getElementName());
68  new WText(" label of the element : ",dialog_->contents());
69  //  labelEdit_ = new WLineEdit(param[++compteur].c_str(), dialog_->contents());
70
71  labelEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents());
72  new WBreak(dialog_->contents());
73  return ++param;
74}
75
76void GWt_abstractElement::updateLabelWidget()
77{
78  string str = element_->getLabel();
79  wc_item_->setText(str);
80}
81
82void GWt_abstractElement::setLabelWidget()
83{
84  string str = element_->getLabel();
85  wc_item_ = new WText(str);
86  wc_item_->setObjectName("aText");
87  wc_->addWidget(wc_item_);
88}
89
90void GWt_abstractElement::clicked()
91{
92  cout << "mouse key was clicked on this widget" << endl;
93  dialog_->show();
94}
95
96GWt_draggableImage* GWt_abstractElement::getImage() { 
97  return dropped_;
98}
99
100WContainerWidget* GWt_abstractElement::getWidget() {
101  return wc_;
102}
103
104abstractElement* GWt_abstractElement::getElement() {
105  return element_;
106}
107
108GWt_abstractElement* GWt_abstractElement::ajoute(abstractElement* ptr)
109{
110  typedElement eType = ptr->getNomdElement().getElementType();
111
112  switch (  eType ) {
113  case RFgun : return new GWt_rfgun(ptr);
114  case drift : return new GWt_drift(ptr);
115  case cell  : return new GWt_cell(ptr);
116  case bend  : return new GWt_bend(ptr);
117  case soleno  : return new GWt_soleno(ptr);
118  case beam  : return new GWt_beam(ptr);
119  case fit  : return new GWt_fit(ptr);
120  case inconnu : return NULL;
121  default : return NULL;
122  }
123}
124
Note: See TracBrowser for help on using the repository browser.