#include <wxBlackBoxEditionDialog.h>
Public Member Functions | |
wxBlackBoxEditionDialog (wxGUIEditorGraphicBBS *parent, GBlackBoxModel *model) | |
~wxBlackBoxEditionDialog () | |
void | constructBlackBoxEditionDialog () |
bool | isValidNameForABox (std::string boxname) |
void | onClickOk (wxCommandEvent &event) |
void | onClickClose (wxCommandEvent &event) |
Private Member Functions | |
void | addDoubleQuotes (std::string &text) |
void | removeDoubleQuotes (std::string &text) |
Private Attributes | |
wxAuiManager * | _dialogAUIMgr |
wxPanel * | _panel |
wxGUIEditorGraphicBBS * | _parent |
std::vector< wxTextCtrl * > | _lstValues |
std::vector< wxStaticText * > | _lstTypes |
std::vector< wxStaticText * > | _lstNames |
std::string | _initBoxName |
wxTextCtrl * | _boxName |
GBlackBoxModel * | _model |
Definition at line 70 of file wxBlackBoxEditionDialog.h.
bbtk::wxBlackBoxEditionDialog::wxBlackBoxEditionDialog | ( | wxGUIEditorGraphicBBS * | parent, | |
GBlackBoxModel * | model | |||
) |
Definition at line 43 of file wxBlackBoxEditionDialog.cxx.
References _model, _parent, constructBlackBoxEditionDialog(), bbtk::GObjectModel::getBBTKName(), bbtk::GBlackBoxModel::getBBTKPackage(), and bbtk::GObjectModel::getBBTKType().
00043 :wxDialog(parent,wxID_ANY,_T(""), wxDefaultPosition, wxSize(520, 640),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) 00044 { 00045 _model=model; 00046 _parent = parent; 00047 std::string title("BlackBox Editing - "); 00048 title+=_model->getBBTKPackage(); 00049 title+=":"; 00050 title+=_model->getBBTKType(); 00051 title+=":"; 00052 title+=_model->getBBTKName(); 00053 SetTitle(std2wx(title)); 00054 00055 constructBlackBoxEditionDialog(); 00056 }
bbtk::wxBlackBoxEditionDialog::~wxBlackBoxEditionDialog | ( | ) |
void bbtk::wxBlackBoxEditionDialog::addDoubleQuotes | ( | std::string & | text | ) | [private] |
Definition at line 236 of file wxBlackBoxEditionDialog.cxx.
Referenced by constructBlackBoxEditionDialog().
00237 { 00238 00239 //We add the double quotes at the beginning 00240 if(text[0] != '"' ) 00241 text = "\"" + text; 00242 00243 //We add the double quotes at the end 00244 if(text[text.length()-1] != '"') 00245 text+= "\""; 00246 00247 }
void bbtk::wxBlackBoxEditionDialog::constructBlackBoxEditionDialog | ( | ) |
Definition at line 82 of file wxBlackBoxEditionDialog.cxx.
References _boxName, _initBoxName, _lstNames, _lstTypes, _lstValues, _model, addDoubleQuotes(), bbtk::GObjectModel::getBBTKName(), bbtk::GObjectModel::getBBTKType(), bbtk::GBoxModel::getInputPorts(), bbtk::GPortModel::getValue(), bbtk::GPortModel::isConnected(), onClickClose(), and onClickOk().
Referenced by wxBlackBoxEditionDialog().
00083 { 00084 wxBoxSizer *sizerDialog = new wxBoxSizer(wxVERTICAL); 00085 00086 wxScrolledWindow *scrollWin = new wxScrolledWindow( this, -1, wxDefaultPosition, wxSize(200,200), wxVSCROLL); 00087 00088 wxStaticText *textBoxName = new wxStaticText(scrollWin, -1, wxT("Box Name")); 00089 wxTextCtrl *valueBoxName = new wxTextCtrl(scrollWin, -1, _T(""), wxDefaultPosition,wxSize(300,25)); 00090 _initBoxName = _model->getBBTKName(); 00091 valueBoxName->SetValue(crea::std2wx(_initBoxName)); 00092 _boxName = valueBoxName ; 00093 00094 wxStaticText *text = new wxStaticText(scrollWin, -1, wxT("Input Ports")); 00095 wxFont font(11, wxDEFAULT, wxNORMAL, wxBOLD); 00096 text->SetFont(font); 00097 textBoxName->SetFont(font); 00098 00099 00100 std::vector<GPortModel*> lstInputs = _model->getInputPorts(); 00101 wxFlexGridSizer *sizer = new wxFlexGridSizer(lstInputs.size(),3,5,5); 00102 sizer->AddGrowableCol(0); 00103 sizer->AddGrowableCol(1); 00104 sizer->AddGrowableCol(2); 00105 00106 for(int i = 0;i<(int)lstInputs.size();i++) 00107 { 00108 sizer->AddGrowableRow(i); 00109 GPortModel* port = lstInputs[i]; 00110 std::string type = port->getBBTKType(); 00111 wxStaticText *lblName = new wxStaticText(scrollWin, -1, std2wx(port->getBBTKName()),wxDefaultPosition,wxSize(100,25)); 00112 wxStaticText *lblType = new wxStaticText(scrollWin, -1, std2wx(type),wxDefaultPosition,wxSize(250,25)); 00113 wxTextCtrl *txtValue = new wxTextCtrl(scrollWin, -1, _T(""),wxDefaultPosition,wxSize(300,25)); 00114 00115 if(port->getValue()!="") 00116 { 00117 std::string text = port->getValue(); 00118 if(text.length()>0) 00119 addDoubleQuotes(text); 00120 txtValue->SetValue(crea::std2wx(text)); 00121 } 00122 00123 if(port->isConnected()) 00124 { 00125 std::string connected("--Port Connected--"); 00126 txtValue->SetValue(crea::std2wx(connected)); 00127 txtValue->SetEditable(false); 00128 } 00129 00130 char et = '*'; 00131 if(type.find(et)!=-1) 00132 { 00133 std::string noEditable("--No editable--"); 00134 txtValue->SetValue(crea::std2wx(noEditable)); 00135 txtValue->SetEditable(false); 00136 } 00137 00138 _lstNames.push_back(lblName); 00139 _lstValues.push_back(txtValue); 00140 _lstTypes.push_back(lblType); 00141 00142 sizer->Add(lblName,1,wxEXPAND,5); 00143 sizer->Add(txtValue,1,wxEXPAND,5); 00144 sizer->Add(lblType,1,wxCENTRE|wxEXPAND,5); 00145 } 00146 00147 00148 wxBoxSizer *buts = new wxBoxSizer(wxHORIZONTAL); 00149 wxButton *okButton = new wxButton(scrollWin, -1, _T("Ok"),wxDefaultPosition, wxSize(70, 30)); 00150 wxButton *closeButton = new wxButton(scrollWin, -1, _T("Close"), wxDefaultPosition, wxSize(70, 30)); 00151 00152 // connect command event handlers 00153 Connect(okButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxBlackBoxEditionDialog::onClickOk)); 00154 Connect(closeButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxBlackBoxEditionDialog::onClickClose)); 00155 00156 buts->Add(okButton,0,wxCENTRE|wxEXPAND,5); 00157 buts->Add(closeButton,0,wxCENTRE|wxEXPAND,5); 00158 00159 sizerDialog->AddSpacer(10); 00160 sizerDialog->Add(textBoxName,0,wxALIGN_TOP|wxALIGN_CENTER); 00161 sizerDialog->AddSpacer(10); 00162 sizerDialog->Add(valueBoxName, wxSizerFlags(0).Align(0).Border(wxLEFT, 100)); 00163 sizerDialog->AddSpacer(10); 00164 sizerDialog->Add(text,0,wxALIGN_TOP|wxALIGN_CENTER); 00165 sizerDialog->AddSpacer(15); 00166 sizerDialog->Add(sizer,0,wxALIGN_CENTER| wxEXPAND); 00167 sizerDialog->AddSpacer(15); 00168 sizerDialog->Add(buts,0,wxALIGN_CENTER | wxTOP | wxBOTTOM); 00169 00170 scrollWin->SetSizer(sizerDialog); 00171 scrollWin->Centre(); 00172 00173 00174 scrollWin->SetVirtualSize(400,400); 00175 scrollWin->SetSize(300,300); 00176 scrollWin->SetScrollbars(10, 10, 50, 50); 00177 // scrollWin->SetSizer(sizer); 00178 00179 00180 ShowModal(); 00181 Destroy(); 00182 }
bool bbtk::wxBlackBoxEditionDialog::isValidNameForABox | ( | std::string | boxname | ) |
Definition at line 68 of file wxBlackBoxEditionDialog.cxx.
Referenced by onClickOk().
00068 { 00069 00070 int i=0; 00071 for (i = 0; i < boxname.size() ; i++) { 00072 if ( (isalnum(boxname[i])==0) && (boxname.compare(i, 1, "-") != 0) && ( boxname.compare(i, 1, "_") != 0) ){ 00073 return false; 00074 } 00075 } // for 00076 00077 return true; 00078 }
void bbtk::wxBlackBoxEditionDialog::onClickClose | ( | wxCommandEvent & | event | ) |
Definition at line 226 of file wxBlackBoxEditionDialog.cxx.
Referenced by constructBlackBoxEditionDialog().
void bbtk::wxBlackBoxEditionDialog::onClickOk | ( | wxCommandEvent & | event | ) |
Definition at line 186 of file wxBlackBoxEditionDialog.cxx.
References _boxName, _initBoxName, _lstValues, _model, _parent, bbtk::wxGUIEditorGraphicBBS::boxNameExists(), isValidNameForABox(), bbtk::wxGUIEditorGraphicBBS::SaveTempActualDiagram(), bbtk::GObjectModel::setBBTKName(), and bbtk::GBlackBoxModel::setValueToInputPort().
Referenced by constructBlackBoxEditionDialog().
00187 { 00188 int closeok = 1; 00189 for(int i=0;i<(int)_lstValues.size();i++) 00190 { 00191 std::string text = wx2std(_lstValues[i]->GetValue()); 00192 //TOFIX Search a better alternative 00193 if(text!="--No editable--" && text!="--Port Connected--") 00194 { 00195 _model->setValueToInputPort(i,text); 00196 } 00197 } 00198 //handle box name 00199 std::string boxname = wx2std(_boxName->GetValue()); 00200 if( boxname.compare(_initBoxName) != 0 ){ 00201 if (isValidNameForABox(boxname) == true){ 00202 if( _parent->boxNameExists(boxname) == true ){ 00203 closeok=0; 00204 wxMessageDialog *dial = new wxMessageDialog(NULL, 00205 wxT("The name already exists. Please provide another name"), 00206 wxT("Change name: name already exists"), wxOK | wxICON_EXCLAMATION | wxSTAY_ON_TOP); 00207 dial->ShowModal(); 00208 }else{ 00209 _model->setBBTKName(boxname); 00210 } 00211 }else{ 00212 closeok=0; 00213 wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Please provide a valide name for your box (no spaces and only leters, digits, \"_\" or \"-\" allowed)"), wxT("Change name: invalid name"), wxOK | wxICON_EXCLAMATION | wxSTAY_ON_TOP); 00214 dial->ShowModal(); 00215 } 00216 } 00217 00218 if( closeok==1 ){ 00219 _parent->SaveTempActualDiagram("edit values"); 00220 Close(true); 00221 } 00222 }
void bbtk::wxBlackBoxEditionDialog::removeDoubleQuotes | ( | std::string & | text | ) | [private] |
Definition at line 251 of file wxBlackBoxEditionDialog.cxx.
00252 { 00253 if(text[0]== '"' ) 00254 text.replace(0, 1,""); 00255 if(text[text.length()-1] == '"') 00256 text.replace(text.length()-1, 1,""); 00257 00258 }
wxTextCtrl* bbtk::wxBlackBoxEditionDialog::_boxName [private] |
Definition at line 90 of file wxBlackBoxEditionDialog.h.
Referenced by constructBlackBoxEditionDialog(), and onClickOk().
wxAuiManager* bbtk::wxBlackBoxEditionDialog::_dialogAUIMgr [private] |
Definition at line 83 of file wxBlackBoxEditionDialog.h.
std::string bbtk::wxBlackBoxEditionDialog::_initBoxName [private] |
Definition at line 89 of file wxBlackBoxEditionDialog.h.
Referenced by constructBlackBoxEditionDialog(), and onClickOk().
std::vector<wxStaticText*> bbtk::wxBlackBoxEditionDialog::_lstNames [private] |
Definition at line 88 of file wxBlackBoxEditionDialog.h.
Referenced by constructBlackBoxEditionDialog().
std::vector<wxStaticText*> bbtk::wxBlackBoxEditionDialog::_lstTypes [private] |
Definition at line 87 of file wxBlackBoxEditionDialog.h.
Referenced by constructBlackBoxEditionDialog().
std::vector<wxTextCtrl*> bbtk::wxBlackBoxEditionDialog::_lstValues [private] |
Definition at line 86 of file wxBlackBoxEditionDialog.h.
Referenced by constructBlackBoxEditionDialog(), and onClickOk().
Definition at line 92 of file wxBlackBoxEditionDialog.h.
Referenced by constructBlackBoxEditionDialog(), onClickOk(), and wxBlackBoxEditionDialog().
wxPanel* bbtk::wxBlackBoxEditionDialog::_panel [private] |
Definition at line 84 of file wxBlackBoxEditionDialog.h.
Definition at line 85 of file wxBlackBoxEditionDialog.h.
Referenced by onClickOk(), and wxBlackBoxEditionDialog().