+ //================================================================
+
+ wxAuiNotebook* wxGUIEditorGraphicBBS::getAuiNotebook()
+ {
+ return _notebook;
+ }
+
+ //================================================================
+
+ void wxGUIEditorGraphicBBS::displayBlackBoxInfo(std::string packageName, std::string boxName)
+ {
+ if(_actualPkgBrowserPkgName != packageName || _actualPkgBrowserBoxName != boxName )
+ {
+ _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::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 = "\""+ crea::System::GetExecutablePath();
+
+
+#ifdef MACOSX
+ command += separator + "../../../bbi.app/Contents/MacOS";
+#endif
+
+ #ifdef WIN32
+ command += "\"";
+ #endif
+
+ /*
+
+ //command += ConfigurationFile::GetInstance().Get_bin_path();
+//EED command +="C:/temp/bbtkBIN/RelWithDebInfo//";
+//EED command +="C:/Program Files/CreaTools/bbtk-0.9.5/bin";
+
+
+ #ifdef MACOSX
+ command += separator + "usr/local/bin/bbi.app/Contents/MacOS/bbi\" ";
+ #else
+ command +=".";
+ command += separator + "bbi\" ";
+ #endif
+ */
+ command += separator + "bbi\" ";
+ 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 script1 = _tabsMgr->getActualDiagramBBS(true);
+ cout<<endl<<"RaC wxGUIEditorGraphicBBS::executeActualDiagram SCRIPT"<<endl<<endl;
+ cout<<script1<<endl;
+
+ std::string script2 = _tabsMgr->getActualDiagramBBS(false);
+ executeScript(script2);
+ }
+
+
+ //=========================================================================
+ // HANDLERS
+ //=========================================================================
+ void wxGUIEditorGraphicBBS::OnOpenBBS(wxCommandEvent& event)
+ {
+ wxFileDialog * openFileDialog = new wxFileDialog(this,wxT("Open BBS"),wxEmptyString,wxT("NewBBS"),wxT("*.bbs"),wxOPEN);
+ if (openFileDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = openFileDialog->GetPath( );
+
+
+ _tabsMgr->addNewTab();
+
+ bbtk::InterpreterBBS::Pointer I = bbtk::InterpreterBBS::New( this->_tabsMgr->getActualTabPanel()->getSceneManager() , _pkgBrowser->GetFactory());
+
+ // We tell the interpreter to throw exceptions on error
+ I->SetThrow(true);
+ // Interpret the file supposed to define a box called 'Processing'
+ I->InterpretFile( (const char*) (fileName.mb_str()) );
+ }
+ refreshGUIControls();
+ }
+
+ void wxGUIEditorGraphicBBS::OnSaveActualBBS(wxCommandEvent& event)
+ {
+ wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save actual BBS"),wxEmptyString,wxT("NewBBS"),wxT("*.bbs"),wxSAVE|wxOVERWRITE_PROMPT);
+ if (saveFileDialog->ShowModal() == wxID_OK)
+ {
+ wxString fileName = saveFileDialog->GetPath( );
+
+ ofstream file;
+
+//EED file.open(fileName.c_str());
+ file.open( (const char*) (fileName.mb_str()) );
+
+ std::string content="";
+
+ // writing file header
+ content += "# ----------------------------------\n";
+ content += "# - BBTKGEditor v 1.1 BBS BlackBox Script\n";
+ content += "# ----------------------------------\n";
+ content += "\n";
+ content += _tabsMgr->getActualDiagramBBS();
+ file << content;
+ file.close();
+ }