+ void wxGEditorTabPanel::setPanelsManager(wxTabPanelsManager* panelsManager)
+ {
+ _panelsManager = panelsManager;
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::displayBlackBoxInfo(std::string packageName, std::string boxName)
+ {
+ _panelsManager->displayBlackBoxInfo(packageName,boxName);
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::updateStatusBar(std::string textStatus)
+ {
+ _panelsManager->updateStatusBar(textStatus);
+ }
+
+ //=========================================================================
+
+ std::string wxGEditorTabPanel::getDiagramBBS(bool wln)
+ {
+ return _sceneManager->getDiagramBBS(wln);
+ }
+
+ //=========================================================================
+
+ std::string wxGEditorTabPanel::saveComplexBoxBBS()
+ {
+ return _sceneManager->saveComplexBoxBBS();
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::editBlackBox(GBlackBoxModel *bbmodel)
+ {
+ _panelsManager->editBlackBox(bbmodel);
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::deleteAllBoxes()
+ {
+ _sceneManager->deleteAllBoxes();
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::centerView()
+ {
+ if(_sceneManager)
+ {
+ _sceneManager->centerView();
+ }
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::saveDiagram(std::string &content, const std::string &path) //DFCH
+ {
+ this->SetFullPath(path);
+ _sceneManager->saveDiagram(content);
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::saveTempDiagram(const std::string &action) //FCY
+ {
+ std::string content = "";
+ // writing file header
+ content += "# ----------------------------------\n";
+ content += "# - BBTKGEditor v 1.3 BBG BlackBox Diagram file\n";
+ content += "# - ";
+ content += "temp";
+ content += "\n";
+ content += "# ----------------------------------\n";
+ content += "\n";
+ content += "APP_START\n";
+ _sceneManager->saveDiagram(content);
+ content += "APP_END\n"; //put here to avoid mistakes
+ if(_actualdo == states.end() ) // same size, write to the end
+ {
+ states.push_back (content);
+ saveStringAction(action);
+ }
+ else
+ {
+ std::vector<std::string>::iterator it = _actualdo+1;
+ states.erase(it, states.end());
+ states.push_back(content);
+
+ std::vector<std::string>::iterator sit = _sactualdo+1;
+ sstates.erase(sit, sstates.end());
+ saveStringAction(action);
+ }
+ _actualdo = states.end();
+ _sactualdo = sstates.end();
+
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::loadDiagram(ifstream &inputStream, const std::string &path) //DFCH
+ {
+ this->SetFullPath(path);
+ stringstream ss;
+ ss << inputStream.rdbuf() ;
+ _sceneManager->loadDiagram(ss);
+ }
+
+ //=========================================================================
+ unsigned short wxGEditorTabPanel::getUndoState( std::string &stun)
+ {
+ stun = "Undo";
+ if(sstates.size()>0)
+ {
+ if(_actualdo == states.begin() )
+// if(sstates.size()==1 )
+ {
+// _sactualdo=sstates.begin();
+ return 0;
+ } else {
+ stun +=" - ";
+printf("EED wxGEditorTabPanel::getUndoState This mecanisme is not working ?????? _sactualdo sstates _actualdo state \n");
+// stun += _sactualdo->substr(0,(--_sactualdo)->find_last_of("."));
+ _sactualdo++;
+ return 1;
+ }
+ }
+ return 0;
+ }
+
+ unsigned short wxGEditorTabPanel::getRedoState( std::string &stre)
+ {
+ stre = "Redo";
+ if(states.size()>0)
+ {
+ if(_actualdo == --states.end() || states.size() == 1 || _actualdo == states.end())
+ return 0;
+ else
+ {
+ stre +=" - ";
+ stre += _sactualdo->substr(0,(++_sactualdo)->find_last_of("."));
+ --_sactualdo;
+ return 1;
+ }
+ }
+ }
+
+ //=========================================================================
+ void wxGEditorTabPanel::loadTempDiagram(unsigned short un) //FCY
+ {
+ unsigned short res = 1;
+ deleteAllBoxes();
+ std::stringstream ss;
+ if (un == 0) //undo
+ {
+ if(_actualdo == states.end() ) // same size, write to the end
+ {
+ (_actualdo--);
+ (_sactualdo--);
+ }
+ if(_actualdo != states.begin() )
+ {
+ ss << *(--_actualdo);
+ _sactualdo--;
+ }
+ else
+ {
+ ss << *_actualdo;
+ res = 0;
+ }
+ }
+ else //redo
+ {
+ _actualdo++;
+ _sactualdo++;
+ if(_actualdo != states.end())
+ {
+ ss << *_actualdo;
+ }
+ else
+ {
+ res = 0;
+ }
+ }
+ _sceneManager->loadDiagram(ss);
+
+ }
+
+ void wxGEditorTabPanel::saveStringAction(const std::string &action)
+ {
+ char temp[50];
+ sprintf(temp,".%d", sstates.size());
+ sstates.push_back(action + temp);
+ }
+
+ //=========================================================================
+
+ int wxGEditorTabPanel::getPanelId()
+ {
+ return _id;
+ }
+
+
+
+ //=========================================================================
+
+ bool wxGEditorTabPanel::isComplexBox()
+ {
+ return _sceneManager->isComplexBox();
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::setComplexBox(bool val)
+ {
+ _sceneManager->setComplexBox(val);
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::addComplexInputPort(std::string portName)
+ {
+ _sceneManager->createGComplexBoxInputPort(portName);
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::addComplexOutputPort(std::string portName)
+ {
+ _sceneManager->createGComplexBoxOutputPort(portName);
+ }
+
+ //=========================================================================
+
+ std::map<int,GObjectController*> wxGEditorTabPanel::getSelectedObjects()
+ {
+ return _sceneManager->getSelectedObjects();
+ }
+
+ //=========================================================================
+
+ void wxGEditorTabPanel::addObjects(std::map<int,GObjectController*> objectsMap)
+ {
+ _sceneManager->addObjects(objectsMap);
+ }
+
+ //=========================================================================
+
+ int wxGEditorTabPanel::getNumSelectedObjects()
+ {
+ return _sceneManager->getNumSelectedObjects();
+ }
+
+ //=========================================================================
+
+
+ wxVtkSceneManager* wxGEditorTabPanel::getSceneManager()
+ {
+ return _sceneManager;
+ }
+
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetCbName()
+ {
+ return _sceneManager->GetCbName();
+ }
+
+
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetCbPackageName()
+ {
+ return _sceneManager->GetCbPackageName();
+ }
+
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetAuthor()
+ {
+ return _sceneManager->GetAuthor();
+ }
+
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetDescription()
+ {
+ return _sceneManager->GetDescription();
+ }
+
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetCategory()
+ {
+ return _sceneManager->GetCategory();
+ }
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetMessageKind()
+ {
+ return _sceneManager->GetMessageKind();
+ }
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetMessageLevel()
+ {
+ return _sceneManager->GetMessageLevel();
+ }
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetCbName(std::string cbName)
+ {
+ _sceneManager->SetCbName( cbName );
+ }
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetCbPackageName(std::string packagename)
+ {
+ _sceneManager->SetCbPackageName( packagename );
+ }
+
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetAuthor(std::string author)
+ {
+ _sceneManager->SetAuthor( author );
+ }
+
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetCategory(std::string category)
+ {
+ _sceneManager->SetCategory( category );
+ }
+
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetDescription(std::string description)
+ {
+ _sceneManager->SetDescription( description );
+ }
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetMessageKind(std::string kind)
+ {
+ _sceneManager->SetMessageKind( kind );
+ }
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetMessageLevel(std::string level)
+ {
+ _sceneManager->SetMessageLevel( level );
+ }
+ //=========================================================================
+ //DFCH
+ void wxGEditorTabPanel::SetFullPath( const std::string& fullpath )
+ {
+ this->_fullPath = fullpath;
+ }
+ //=========================================================================
+ //DFCH
+ void wxGEditorTabPanel::SetFileName( const std::string& filename )
+ {
+ this->_fileName = filename;
+ }
+ //=========================================================================
+ //DFCH
+ std::string wxGEditorTabPanel::GetFullPath( )
+ {
+ return( this->_fullPath );
+ }
+ //=========================================================================
+ //DFCH
+ std::string wxGEditorTabPanel::GetFileName( )
+ {
+ return( this->_fileName );
+ }
+
+
+
+