+ if (_tabsMgr->isActualDiagramComplexBox() == false) {
+ std::string name = _tabsMgr->GetNameTabPanel();
+ if(name[name.length() - 1] == '*')
+ {
+ name =name.substr(0,name.length()-1);
+ }
+ _tabsMgr->SetNameTabPanel(wxString (name.c_str(), wxConvUTF8));
+ SaveActualDiagram(pathfilename);
+ SaveActualBBS(pathfilenamebbs);
+ } else {
+ AskComplexBoxConfiguration();
+ SaveActualDiagram(pathfilename);
+ SaveActualComplexBox(pathfilenamebbs);
+ } //if isActualDiagramComplexBox
+ }
+}
+//=========================================================================
+//DFCH
+void wxGUIEditorGraphicBBS::OnSaveAsActualDiagram(wxCommandEvent& event) {
+ SaveCurrentDiagramAs();
+}
+//=========================================================================
+
+void wxGUIEditorGraphicBBS::refreshGUIControls() {
+ std::string stundo;
+ std::string stredo;
+ //RaC2012 2ndHackFest Next line seems weird ... To keep in mind for other devels
+ 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);
+ }
+
+ //RaC2012 2ndHackFest
+ GetToolBar()->EnableTool(ID_EDITPROPERTIES,true);
+
+ GetToolBar()->EnableTool(ID_UNDO,_tabsMgr->getUndoState(stundo));
+ GetToolBar()->SetToolShortHelp(ID_UNDO,crea::std2wx(stundo));
+ GetToolBar()->EnableTool(ID_REDO,_tabsMgr->getRedoState(stredo));
+ GetToolBar()->SetToolShortHelp(ID_REDO,crea::std2wx(stredo));
+
+ if (_tabsMgr->getNumActualSelectedObjects() > 0) {
+ GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM, true);
+ } else {
+ ///TODO Fix the possibility to say from the SceneManager to the GUI to refresh the options
+ GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM, 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, wxT(""), wxT("*.bbg"), wxOPEN | wxFILE_MUST_EXIST);
+ printf("SCP: wxGUIEditorGraphicBBS::OnOpenDiagram \n");
+ if (openFileDialog->ShowModal() == wxID_OK) {
+ wxString fileName = openFileDialog->GetPath();
+ ifstream inputStream;
+ std::string fName = (const char*) (fileName.mb_str());
+
+ inputStream.open(fName.c_str());
+ assert(inputStream.good()); // fails
+ _tabsMgr->addNewTab(openFileDialog->GetFilename());
+ _tabsMgr->loadDiagram(inputStream, fName);
+ _tabsMgr->saveTempActualDiagram("load diagram");
+ GetToolBar()->EnableTool(ID_UNDO, false);
+ GetToolBar()->EnableTool(ID_UNDO, false);
+ inputStream.close();
+ }
+ refreshGUIControls();
+}
+
+//=========================================================================
+
+
+void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event) {
+ BlackBoxDescriptor *bbDes = _pkgBrowser->GetActualSelected();
+ if (bbDes != NULL) {
+ std::string typeName = bbDes->GetTypeName();
+ std::string packageName = bbDes->GetPackage()->GetName();
+
+ wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
+
+
+ if (pnl != NULL) {
+ wxVtkSceneManager *scn = pnl->getSceneManager();
+ scn->createGBlackBox(50, 50, packageName, typeName);
+ scn->refresh();
+ }
+
+ SaveTempActualDiagram("New Box");
+ // if pnl
+ }// if bbDes
+}
+
+//=========================================================================
+
+void wxGUIEditorGraphicBBS::OnClickBtnExecutableBox(wxCommandEvent& event) {
+ //DFCH
+ wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
+
+ if (pnl != NULL) {
+ wxVtkSceneManager *scn = pnl->getSceneManager();
+ if( scn->MakeBoxExecutable() )
+ std::cout<<"DFCH: wxGUIEditorGraphicBBS::OnClickBtnExecutableBox...successful"<<std::endl;
+ else
+ std::cout<<"DFCH: wxGUIEditorGraphicBBS::OnClickBtnExecutableBox...Error!!"<<std::endl;
+ }
+ //DFCH
+
+}
+
+//=========================================================================
+
+void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event) {
+ wxToolBar* toolbar = GetToolBar();
+ bool temp = toolbar->GetToolState(ID_BTNCOMPLEXBOX);
+ if (temp) {
+ enableComplexBox();
+ } else {
+ disableComplexBox();
+ }
+}
+
+//=========================================================================
+
+void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event) {
+ wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
+ wxT("Name of input port"));
+ if (nameDialog->ShowModal() == wxID_OK) {
+ wxString fileName = nameDialog->GetValue();
+ if (!fileName.IsEmpty()) {
+ std::string portName = (const char*) (fileName.mb_str());
+ _tabsMgr->addActualDiagramComplexInputPort(portName);
+ }
+ }
+}
+
+//=========================================================================
+
+void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event) {
+ wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
+ wxT("Name of output port"));
+ if (nameDialog->ShowModal() == wxID_OK) {
+ wxString fileName = nameDialog->GetValue();
+ if (!fileName.IsEmpty()) {
+ std::string portName = (const char*) (fileName.mb_str());
+ _tabsMgr->addActualDiagramComplexOutputPort(portName);
+ }