+ _actualPkgBrowserPkgName = packageName;
+ _actualPkgBrowserBoxName = boxName;
+
+ BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxName);
+ _pkgBrowser->WxGUIBlackBoxListUserOnSelected(descriptor.get());
+ }
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::editBlackBox(GBlackBoxModel *bbmodel)
+ {
+ wxBlackBoxEditionDialog* dialog = new wxBlackBoxEditionDialog(this,bbmodel);
+ dialog->Show();
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::editDiagramParameters(wxVtkSceneManager* scene)
+ {
+ wxBlackBoxEditionDialog* dialog = new wxBlackBoxEditionDialog(this,scene);
+ dialog->Show();
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::updateStatusBar(std::string textStatus)
+ {
+ SetStatusText(crea::std2wx(textStatus));
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::executeScript(std::string script)
+ {
+ std::string separator = ConfigurationFile::GetInstance().Get_file_separator ();
+ std::string dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
+ std::string filename = dir + separator + "tmp_bbtk.bbs";
+
+ ofstream tempFile;
+ tempFile.open(filename.c_str());
+ tempFile << script;
+ tempFile.close();
+
+ std::string command = "\"";
+
+ #ifdef WIN32
+ command += "\"";
+ #endif
+
+ //command += ConfigurationFile::GetInstance().Get_bin_path();
+ command +="C:/temp/bbtkBIN/RelWithDebInfo//";
+
+ #ifdef MACOSX
+ command += separator + "bbi.app/Contents/MacOS/bbi\" ";
+ #else
+ command += separator + "bbi\" ";
+ #endif
+ command += "\""+filename + "\"";
+
+ #ifdef WIN32
+ command += "\"";
+ #endif
+
+ command += " & ";
+
+ printf ("RaC wxGUIEditorGraphicBBS::executeScript %s \n" , command.c_str() );
+ system( command.c_str() );
+ }
+
+ //=========================================================================
+ // EVENT HANDLERS
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnCreateNewTab(wxCommandEvent& event)
+ {
+ _tabsMgr->addNewTab();
+ refreshGUIControls();
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event)
+ {
+ std::string script = _tabsMgr->getActualDiagramBBS();
+ cout<<"RaC wxGUIEditorGraphicBBS::executeActualDiagram SCRIPT"<<endl;
+ cout<<script<<endl;
+
+ executeScript(script);
+ }
+
+ //=========================================================================
+ // HANDLERS
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnSaveActualBBS(wxCommandEvent& event)
+ {
+ wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save actual BBS"),wxEmptyString,"NewBBS","*.bbs",wxSAVE|wxOVERWRITE_PROMPT);
+ if (saveFileDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = saveFileDialog->GetPath();
+
+ ofstream file;
+ file.open(fileName.c_str());
+
+ std::string content="";
+
+ // writing file header
+ content += "# ----------------------------------\n";
+ content += "# - BBTKGEditor v 1.0 BBS BlackBox Script\n";
+ content += "# ----------------------------------\n";
+ content += "\n";
+ content += _tabsMgr->getActualDiagramBBS();
+ file << content;
+ file.close();
+ }
+
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnSaveActualComplexBox(wxCommandEvent& event)
+ {
+ wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,wxT("Name of complex box"));
+ std::string cbName="";
+ if (nameDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = nameDialog->GetValue();
+ cbName=fileName;
+ }
+
+ if(!cbName.empty())
+ {
+ wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save Complex Box BBS"),wxEmptyString,cbName,"*.bbs",wxSAVE|wxOVERWRITE_PROMPT);
+ if (saveFileDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = saveFileDialog->GetPath();
+
+ ofstream file;
+ file.open(fileName.c_str());
+
+ std::string content="";
+
+ // writing file header
+ content += "# ----------------------------------\n";
+ content += "# - BBTKGEditor v 1.1 BBS BlackBox Script (Complex Box)\n";
+ content += "# ----------------------------------\n";
+ content += "\n";
+ content += _tabsMgr->getActualComplexBoxBBS(cbName);
+ file << content;
+ file.close();
+ }
+ }
+
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnSaveActualDiagram(wxCommandEvent& event)
+ {
+ wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save actual diagram"),wxEmptyString,"NewDiagram","*.bbd",wxSAVE|wxOVERWRITE_PROMPT);
+ if (saveFileDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = saveFileDialog->GetPath();
+
+ ofstream file;
+ file.open(fileName.c_str());
+
+ std::string content="";
+
+ // writing file header
+ content += "# ----------------------------------\n";
+ content += "# - BBTKGEditor v 1.0 BBD BlackBox Diagram file\n";
+ content += "# - ";
+ content += fileName;
+ content += "\n";
+ content += "# ----------------------------------\n";
+ content += "\n";
+ content += "APP_START\n";
+ _tabsMgr->saveActualDiagram(content);
+ content += "APP_END\n";
+ file << content;
+ file.close();
+ }
+
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::refreshGUIControls()
+ {
+ wxToolBar* toolbar = GetToolBar();
+ if(_tabsMgr->isActualDiagramComplexBox())
+ {
+ toolbar->ToggleTool(ID_BTNCOMPLEXBOX,true);
+ toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,true);
+ toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,true);
+
+ GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX,true);
+ GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS,false);
+ }
+ else
+ {
+ toolbar->ToggleTool(ID_BTNCOMPLEXBOX,false);
+ toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,false);
+ toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,false);
+
+ GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX,false);
+ GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS,true);
+ }
+
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram(wxCommandEvent& event)
+ {
+ wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Are you sure to delete all boxes of the diagram?"), wxT("Delete all boxes"), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);
+ if(dial->ShowModal() == wxID_YES)
+ {
+ _tabsMgr->deleteAllBoxesActualDiagram();
+ }
+ }
+
+ //=========================================================================
+
+ void wxGUIEditorGraphicBBS::OnCenterViewActualDiagram(wxCommandEvent& event)
+ {
+ _tabsMgr->centerViewActualDiagram();
+ }
+
+ //=========================================================================
+
+
+ void wxGUIEditorGraphicBBS::OnOpenDiagram(wxCommandEvent& event)
+ {
+ wxFileDialog * openFileDialog = new wxFileDialog(this,wxT("Open diagram"),wxEmptyString,"","*.bbd",wxOPEN|wxFILE_MUST_EXIST);
+ if (openFileDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = openFileDialog->GetPath();
+
+ ifstream inputStream;
+ inputStream.open(fileName.c_str());
+