From 9c270766f2c28346e128543a8b7c24fb7f4f5b85 Mon Sep 17 00:00:00 2001 From: davila <> Date: Tue, 16 Oct 2012 07:32:46 +0000 Subject: [PATCH] Bug #1689 Limite the size of characters to be readed for the value in the bbg file Support #1691 Clean and correct use of bbtkFactory wxVtkSceneManager --- appli/bbEditor/bbEditor.cxx | 3 - .../GObjectsMVCFactory.cxx | 28 +-- .../GObjectsMVCFactory.h | 17 +- .../bbtkwxGUIEditorGraphicBBS.cxx | 44 +++- .../bbtkwxGUIEditorGraphicBBS.h | 2 + .../wxBlackBoxEditionDialog.cxx | 3 +- .../wxGEditorTabPanel.cxx | 16 +- .../bbsWxGUIEditorGraphic/wxGEditorTabPanel.h | 5 +- .../wxTabPanelsManager.cxx | 7 +- .../wxVtkSceneManager.cxx | 231 ++++++++++-------- .../bbsWxGUIEditorGraphic/wxVtkSceneManager.h | 11 +- 11 files changed, 196 insertions(+), 171 deletions(-) diff --git a/appli/bbEditor/bbEditor.cxx b/appli/bbEditor/bbEditor.cxx index efd0123..88dd4c1 100644 --- a/appli/bbEditor/bbEditor.cxx +++ b/appli/bbEditor/bbEditor.cxx @@ -38,12 +38,9 @@ bool wxBBEditorApp::OnInit( ) #endif bbtk::wxGUIEditorGraphicBBS *iegbbs; -printf("EED wxBBEditorApp::OnInit 0\n"); iegbbs = new bbtk::wxGUIEditorGraphicBBS(NULL); -printf("EED wxBBEditorApp::OnInit 1\n"); SetTopWindow(iegbbs); iegbbs->Show(true); -printf("EED wxBBEditorApp::OnInit 2\n"); return true; } diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.cxx index 41b3fe0..881ef46 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.cxx @@ -44,14 +44,7 @@ namespace bbtk GObjectsMVCFactory* GObjectsMVCFactory:: instance = NULL; GObjectsMVCFactory::GObjectsMVCFactory() - { - _interpreter =Interpreter::New(); - _interpreter->SetCommandLine(true); - std::stringstream* buf = new std::stringstream; - *buf << "exec freeze_no_error" << std::endl; - *buf << "message max 0" << std::endl; - *buf << "include *" << std::endl; - _interpreter->InterpretBuffer(buf); + { } //========================================================================= @@ -61,24 +54,7 @@ namespace bbtk } //========================================================================= - BlackBoxDescriptor::Pointer GObjectsMVCFactory::getBlackBoxDescriptor(std::string packageName, std::string boxName) - { - Factory::Pointer factory; - Package::Pointer k; - std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc; - try{ - factory = _interpreter->GetExecuter()->GetFactory(); - k = factory->GetPackage(packageName); - mapDesc = k->GetDescriptorMap(); - }catch(Exception e){ - printf("SCP: Exception in BlackBoxDescriptor::Pointer GObjectsMVCFactory::getBlackBoxDescriptor for package %s\n", packageName.c_str()); - printf("SCP: ERROR package %s probably does not exist\n", packageName.c_str()); - } - - - return mapDesc[boxName]; - } - + //========================================================================= GObjectsMVCFactory* GObjectsMVCFactory :: getInstance() { diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.h index 099e7a6..1140310 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.h @@ -88,20 +88,14 @@ namespace bbtk //Public methods // Singleton to access to the Factory - static GObjectsMVCFactory* getInstance(); + static GObjectsMVCFactory *getInstance(); static void destroyInstance(); - // Access to the BBTK library to get the descriptor of a box with the package and box names - BlackBoxDescriptor::Pointer getBlackBoxDescriptor(std::string packageName, std::string boxName); - // Creates the MVC of the graphical objects depending on the object type - vtkGObjectView* createGObjectView(int type); - GObjectController* createGObjectController(int type); - GObjectModel* createGObjectModel(int type); - - //Public attributes - Interpreter::Pointer _interpreter; - + vtkGObjectView *createGObjectView(int type); + GObjectController *createGObjectController(int type); + GObjectModel *createGObjectModel(int type); + private: //Private Methods @@ -109,7 +103,6 @@ namespace bbtk //Private Attributes static GObjectsMVCFactory* instance; - protected: }; diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx index af3e5ce..a26f9dd 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx @@ -45,10 +45,10 @@ namespace bbtk { //========================================================================= -wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent) : - wxFrame(parent, -1, _T("bbtkGEditor"), wxDefaultPosition, wxSize( - 1200, 800)) { - +wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent) + : wxFrame( parent, -1, _T("bbtkGEditor"), wxDefaultPosition, wxSize(1200,800) ) +{ + _pkgBrowser = NULL; _frameAUIMgr = new wxAuiManager(this); /*std::string datadir( crea::System::GetExecutablePath() ); @@ -69,8 +69,8 @@ wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent) : initMenu(); initToolbar(); - initTabPanelsManager(); initPackageBrowser(); + initTabPanelsManager(); // JGGR & CM initHelpHTMLBrowser(); _helpHtmlBrowser = NULL; CreateStatusBar(); @@ -430,16 +430,22 @@ wxAuiNotebook* wxGUIEditorGraphicBBS::getAuiNotebook() { //================================================================ -void wxGUIEditorGraphicBBS::displayBlackBoxInfo(std::string packageName, - std::string boxName) { - if (_actualPkgBrowserPkgName != packageName || _actualPkgBrowserBoxName - != boxName) { +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); +//EED 15 oct 2012 BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxName); + + Package::Pointer k; + BlackBoxDescriptor::Pointer descriptor; + std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc; + k = _pkgBrowser->GetFactory()->GetPackage(packageName); + mapDesc = k->GetDescriptorMap(); + descriptor = mapDesc[boxName]; + _pkgBrowser->WxGUIBlackBoxListUserOnSelected(descriptor.get()); } } @@ -1004,7 +1010,9 @@ void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event) { if (pnl != NULL) { wxVtkSceneManager *scn = pnl->getSceneManager(); +printf("EED wxGUIEditorGraphicBBS::OnClickBtnBox 1.\n"); scn->createGBlackBox(50, 50, packageName, typeName); +printf("EED wxGUIEditorGraphicBBS::OnClickBtnBox 2.\n"); scn->refresh(); } @@ -1183,7 +1191,16 @@ void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event) { Close(true); } -//========================================================================= +Factory::Pointer wxGUIEditorGraphicBBS::GetBBTKFactory() +{ + if (_pkgBrowser==NULL) + { + printf ("EED ERROR! wxGUIEditorGraphicBBS::GetBBTKFactory _pkgBrowser = NULL\n"); + } + return _pkgBrowser->GetFactory(); +} + + //========================================================================= void wxGUIEditorGraphicBBS::enableComplexBox() { _tabsMgr->setActualDiagramComplexBox(true); @@ -1240,6 +1257,7 @@ std::string wxGUIEditorGraphicBBS::getCurrentDiagramCategory() return _tabsMgr->GetCategory(); } + //========================================================================= bool wxGUIEditorGraphicBBS::isCurrentDiagramComplexBox() diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h index 54a604c..1d9872f 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h @@ -185,6 +185,8 @@ namespace bbtk void OnShowHTMLDoc(wxCommandEvent& event); void OnCreateIndex(wxCommandEvent& event); + Factory::Pointer GetBBTKFactory(); + // RaC-2012 void enableComplexBox(); void disableComplexBox(); diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.cxx index ab134cb..1f56883 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.cxx @@ -40,7 +40,8 @@ namespace bbtk { //========================================================================= - wxBlackBoxEditionDialog::wxBlackBoxEditionDialog(wxGUIEditorGraphicBBS *parent,GBlackBoxModel *model):wxDialog(parent,wxID_ANY,_T(""), wxDefaultPosition, wxSize(520, 640),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + wxBlackBoxEditionDialog::wxBlackBoxEditionDialog(wxGUIEditorGraphicBBS *parent,GBlackBoxModel *model) + :wxDialog(parent,wxID_ANY,_T(""), wxDefaultPosition, wxSize(520, 640),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { _model=model; _parent = parent; diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx index 0a7261b..00f669b 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx @@ -47,15 +47,17 @@ namespace bbtk } //========================================================================= - wxGEditorTabPanel::wxGEditorTabPanel(wxWindow *parent,int id):wxPanel(parent),wxTextDropTarget() + wxGEditorTabPanel::wxGEditorTabPanel(wxWindow *parent,int id, Factory::Pointer bbtkfactory) + : wxPanel(parent),wxTextDropTarget() { printf("EED wxGEditorTabPanel::wxGEditorTabPanel 0\n"); printf ("EED %p wxGEditorTabPanel 2 ()\n" , this ); _id=id; - _panelAUIMgr = new wxAuiManager(this); - _sceneManager = NULL; - _actualdo = states.begin(); - _sactualdo = sstates.begin(); + _panelAUIMgr = new wxAuiManager(this); + _sceneManager = NULL; + _actualdo = states.begin(); + _sactualdo = sstates.begin(); + _bbtkfactory = bbtkfactory; initWxVtkCanvas(); printf("EED wxGEditorTabPanel::wxGEditorTabPanel 1\n"); } @@ -72,7 +74,6 @@ printf ("EED %p ~wxGEditorTabPanel() START \n" , this ); delete _sceneManager; printf ("EED %p ~wxGEditorTabPanel() END\n" , this ); - } //========================================================================= @@ -81,7 +82,8 @@ printf ("EED %p ~wxGEditorTabPanel() START \n" , this ); printf("EED wxGEditorTabPanel::initWxVtkCanvas 0\n"); wxVtk3DBaseView *baseview = new wxVtk3DBaseView(this); baseview->Configure(); - _sceneManager=new wxVtkSceneManager(this,baseview,_id); +//EED 15 oct 2012 _sceneManager=new wxVtkSceneManager(this,baseview,_id); + _sceneManager=new wxVtkSceneManager(this,baseview,_id, _bbtkfactory); //EED02JUIN2010 diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.h index 59d615e..955ca81 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.h @@ -79,7 +79,7 @@ namespace bbtk { public: wxGEditorTabPanel(); - wxGEditorTabPanel(wxWindow *parent, int id); + wxGEditorTabPanel(wxWindow *parent, int id, Factory::Pointer bbtkfactory); ~wxGEditorTabPanel(); void initWxVtkCanvas(); @@ -184,8 +184,9 @@ namespace bbtk wxTabPanelsManager *_panelsManager; std::string _fullPath; std::string _fileName; - + protected: + Factory::Pointer _bbtkfactory; }; diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx index 6548a8d..7c29eae 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx @@ -60,13 +60,14 @@ namespace bbtk //========================================================================= void wxTabPanelsManager::addNewTab(wxString tabName) { - _lastId++; - wxGEditorTabPanel *newPanel = new wxGEditorTabPanel(_notebook,_lastId); + + //EED 13/10/2012 wxGEditorTabPanel *newPanel = new wxGEditorTabPanel( _notebook,_lastId ); + wxGEditorTabPanel *newPanel = new wxGEditorTabPanel( _notebook,_lastId, _parent->GetBBTKFactory() ); + newPanel->setPanelsManager(this); _panels[_lastId] = newPanel; _actual = newPanel; - _notebook->AddPage(newPanel, tabName ,true); } diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx index 62ecce3..b5e431c 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx @@ -41,20 +41,25 @@ namespace bbtk { //========================================================================= -wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, - wxVtk3DBaseView *baseView, int idManager) { - _cbName = "ComplexBoxName"; - _cbPackageName = "PackageName"; - _Author = "Author ??"; - _Category = ""; - _Description = "Description ??"; - - _parent = parent; - _numBoxes = 0; - _idManager = idManager; - _baseView = baseView; - _startDragging = false; - _isComplexBox = false; + +// EED 15 oct 2012 wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory) + +wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory) +{ + _cbName = "ComplexBoxName"; + _cbPackageName = "PackageName"; + _Author = "Author ??"; + _Category = ""; + _Description = "Description ??"; + + _parent = parent; + _numBoxes = 0; + _idManager = idManager; + _baseView = baseView; + _bbtkfactory = bbtkfactory; + + _startDragging = false; + _isComplexBox = false; if (_baseView != NULL) { //EED02JUIN2010 @@ -70,14 +75,15 @@ wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, registerController(this); } - _idConnectionInCreation = -1; - _contLastId = 0; + _idConnectionInCreation = -1; + _contLastId = 0; } //========================================================================= -void wxVtkSceneManager::disconnectDrop() { +void wxVtkSceneManager::disconnectDrop() +{ printf("EED %p ~wxVtkSceneManager::disconnectDrop()\n", this); //EED02JUIN2010 _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL); // _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget( new tmpClasswxTextDropTarget() ); @@ -85,7 +91,8 @@ void wxVtkSceneManager::disconnectDrop() { //========================================================================= -wxVtkSceneManager::~wxVtkSceneManager() { +wxVtkSceneManager::~wxVtkSceneManager() +{ //FCY memory leaks printf("EED %p ~wxVtkSceneManager() START\n", this); disconnectDrop(); @@ -95,16 +102,15 @@ wxVtkSceneManager::~wxVtkSceneManager() { //========================================================================= -void wxVtkSceneManager::configureBaseView() { +void wxVtkSceneManager::configureBaseView() +{ printf("EED wxVtkSceneManager::configureBaseView 0\n"); - vtkInteractorStyleBaseView2D *interactorstylebaseview = - vtkInteractorStyleBaseView2D::New(); + vtkInteractorStyleBaseView2D *interactorstylebaseview = vtkInteractorStyleBaseView2D::New(); _baseView->SetInteractorStyleBaseView(interactorstylebaseview); // Important to activate the 2D interaction system - wxVTKRenderWindowInteractor *iren = - _baseView->GetWxVTKRenderWindowInteractor(); + wxVTKRenderWindowInteractor *iren = _baseView->GetWxVTKRenderWindowInteractor(); interactorstylebaseview->SetInteractor(iren); iren->SetInteractorStyle(interactorstylebaseview); interactorstylebaseview->SetwxVtkBaseView(_baseView); @@ -123,8 +129,7 @@ void wxVtkSceneManager::configureBaseView() { _textActor->SetInput(""); _textActor->GetTextProperty()->SetFontSize(60); _textActor->GetTextProperty()->BoldOn(); - _textActor->GetTextProperty()->SetColor(PORTTEXT_NH_R, PORTTEXT_NH_G, - PORTTEXT_NH_B); + _textActor->GetTextProperty()->SetColor(PORTTEXT_NH_R, PORTTEXT_NH_G,PORTTEXT_NH_B); _baseView->GetRenderer()->AddActor(_textActor); @@ -232,31 +237,39 @@ void wxVtkSceneManager::configGBlackBox(int idBox, double xIn, double yIn, //========================================================================= -int wxVtkSceneManager::createGBlackBox(int x, int y, std::string packageName, - std::string boxType) { - _worldState = NOTHING_HAPPENS; - //EED int windowWidth = _baseView->GetRenWin()->GetSize()[0]; - int windowHeight = _baseView->GetRenWin()->GetSize()[1]; - - int type = GBLACKBOX; - +int wxVtkSceneManager::createGBlackBox(int x, int y, std::string packageName,std::string boxType) +{ + _worldState = NOTHING_HAPPENS; + int windowHeight = _baseView->GetRenWin()->GetSize()[1]; + int type = GBLACKBOX; //Create the MVC Objects + GBlackBoxModel *model = (GBlackBoxModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type); + vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); + GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); - GBlackBoxModel - *model = - (GBlackBoxModel*) GObjectsMVCFactory::getInstance()->createGObjectModel( - type); - vtkGObjectView *view = - GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController* controller = - GObjectsMVCFactory::getInstance()->createGObjectController(type); +//EED 15 oct 2012 BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxType); + + Package::Pointer k; + std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc; + try{ + k = _bbtkfactory->GetPackage(packageName); + mapDesc = k->GetDescriptorMap(); + }catch(Exception e){ + printf("EED. ERROR!: Exception in wxVtkSceneManager::createGBlackBox for package %s, NOT EXIST\n", packageName.c_str()); + } - BlackBoxDescriptor::Pointer descriptor = - GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor( - packageName, boxType); - if (descriptor == NULL){ + BlackBoxDescriptor::Pointer descriptor; + try{ + descriptor = mapDesc[boxType]; + }catch(Exception e){ + printf("EED. ERROR!: Exception in wxVtkSceneManager::createGBlackBox for box %s of package %s, NOT EXIST\n", boxType.c_str(),packageName.c_str()); + } + + if (descriptor == NULL) + { printf("SCP: ERROR in wxVtkSceneManager::createGBlackBox, box %s probably does not exist.\n", boxType.c_str()); - } + } + //Prepares the initial model //The coordinates obtained are the following. Top-Left:x=0,y=0 Bottom-Right:x=width,y=height @@ -337,14 +350,9 @@ int wxVtkSceneManager::createGComplexBoxInputPort(std::string inputName) { //Create the MVC Objects - GComplexBoxPortModel - *model = - (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel( - type); - vtkGObjectView *view = - GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController* controller = - GObjectsMVCFactory::getInstance()->createGObjectController(type); + GComplexBoxPortModel *model = (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type); + vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); + GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); //Prepares the initial model @@ -395,14 +403,9 @@ int wxVtkSceneManager::createGComplexBoxOutputPort(std::string outputName) { //Create the MVC Objects - GComplexBoxPortModel - *model = - (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel( - type); - vtkGObjectView *view = - GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController *controller = - GObjectsMVCFactory::getInstance()->createGObjectController(type); + GComplexBoxPortModel *model = (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type); + vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); + GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); //Prepares the initial model @@ -445,8 +448,8 @@ int wxVtkSceneManager::createGComplexBoxOutputPort(std::string outputName) { //========================================================================= -int wxVtkSceneManager::createGInputPort(int portType, int posinBox, - GBoxModel *blackBox, BlackBoxInputDescriptor *desc) { +int wxVtkSceneManager::createGInputPort(int portType, int posinBox, GBoxModel *blackBox, BlackBoxInputDescriptor *desc) +{ GPortController* portController = createGPort(portType, desc->GetName(), desc->GetTypeName(), desc->GetDescription(), posinBox, blackBox); blackBox->addInputPort((GPortModel*) portController->getModel()); @@ -455,8 +458,8 @@ int wxVtkSceneManager::createGInputPort(int portType, int posinBox, //========================================================================= -int wxVtkSceneManager::createGOutputPort(int portType, int posinBox, - GBoxModel *blackBox, BlackBoxOutputDescriptor *desc) { +int wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GBoxModel *blackBox, BlackBoxOutputDescriptor *desc) + { GPortController* portController = createGPort(portType, desc->GetName(), desc->GetTypeName(),desc->GetDescription(), posinBox, blackBox); blackBox->addOutputPort((GPortModel*) portController->getModel()); @@ -465,9 +468,8 @@ int wxVtkSceneManager::createGOutputPort(int portType, int posinBox, //========================================================================= -GPortController* wxVtkSceneManager::createGPort(int portType, - std::string bbtkName, std::string bbtkType, std::string bbtkDescription, int posInBox, - GBoxModel *blackBox) { +GPortController* wxVtkSceneManager::createGPort(int portType,std::string bbtkName, std::string bbtkType, std::string bbtkDescription, int posInBox,GBoxModel *blackBox) +{ int type = GPORT; //Create the MVC Objects @@ -509,9 +511,6 @@ GPortController* wxVtkSceneManager::createGPort(int portType, int wxVtkSceneManager::createGConnector(GPortModel* startPort) { - - - int type = GCONNECTOR; manualConnectorContourController *manContourControl = new manualConnectorContourController(); @@ -587,41 +586,44 @@ int wxVtkSceneManager::createGConnector(GPortModel* startPort) //========================================================================= -void wxVtkSceneManager::registerController(InteractorStyleMaracas *param) { - vtkInteractorStyleBaseView - * baseViewControlManager = - (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); +void wxVtkSceneManager::registerController(InteractorStyleMaracas *param) +{ + vtkInteractorStyleBaseView * baseViewControlManager = (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); baseViewControlManager->AddInteractorStyleMaracas(param); } //========================================================================= -void wxVtkSceneManager::unregisterController(InteractorStyleMaracas *param) { - vtkInteractorStyleBaseView - * baseViewControlManager = - (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); +void wxVtkSceneManager::unregisterController(InteractorStyleMaracas *param) +{ + vtkInteractorStyleBaseView *baseViewControlManager = (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); baseViewControlManager->RemoveInteractorStyleMaracas(param); } //========================================================================= -vtkRenderer* wxVtkSceneManager::getRenderer() { +vtkRenderer* wxVtkSceneManager::getRenderer() +{ return _baseView->GetRenderer(); } //========================================================================= -vtkRenderWindow* wxVtkSceneManager::getRenderWindow() { +vtkRenderWindow* wxVtkSceneManager::getRenderWindow() +{ return _baseView->GetRenWin(); } //========================================================================= //========================================================================= -int wxVtkSceneManager::GetIndexInSelected(int idControler) { +int wxVtkSceneManager::GetIndexInSelected(int idControler) +{ int index = -1; - for (int i = 0; i < (int) _selectedObjects.size(); i++) { - if (_selectedObjects[i] == idControler) { + for (int i = 0; i < (int) _selectedObjects.size(); i++) + { + if (_selectedObjects[i] == idControler) + { index = i; break; } @@ -632,18 +634,21 @@ int wxVtkSceneManager::GetIndexInSelected(int idControler) { void wxVtkSceneManager::update(int idController, int command) { - if (command != NO_COMMAND) { - if (command == ADD_TO_SELECTED) { - if (GetIndexInSelected(idController) == -1) { + if (command != NO_COMMAND) + { + if (command == ADD_TO_SELECTED) + { + if (GetIndexInSelected(idController) == -1) + { _selectedObjects.push_back(idController); } } else if (command == REMOVE_FROM_SELECTED) { int index = GetIndexInSelected(idController); - if (index >= 0) { + if (index >= 0) + { _selectedObjects.erase(_selectedObjects.begin() + index); } } else if (command == INIT_CREATION_CONTOUR) { - // JGRR & CM WH typedef std::map::iterator TIterator ; TIterator iter ; @@ -683,12 +688,14 @@ void wxVtkSceneManager::update(int idController, int command) { // The last one is the controller of the connector std::map::iterator it2; - - for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) { + for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) + { GObjectController *cont = it2->second; - if (cont->getGObjectType() == GPORT) { + if (cont->getGObjectType() == GPORT) + { GPortModel* port = (GPortModel*) cont->getModel(); - if (port->getPortType() == GINPUTPORT) { + if (port->getPortType() == GINPUTPORT) + { cont->SetActive(true); } else { cont->getView()->setState(NOTHING_HAPPENS); @@ -710,7 +717,8 @@ void wxVtkSceneManager::update(int idController, int command) { GConnectorModel *modelContour = (GConnectorModel*) cont->getModel(); GObjectController *finPort = _controllers[idController]; - if (finPort->getGObjectType() == GPORT) { + if (finPort->getGObjectType() == GPORT) + { GPortModel* modelPort = (GPortModel*) finPort->getModel(); modelContour->setEndPort(modelPort); @@ -745,7 +753,8 @@ void wxVtkSceneManager::update(int idController, int command) { std::map::iterator it2; - for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) { + for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) + { GObjectController *cont = it2->second; if (cont->getView() != NULL) { cont->getView()->setState(NOTHING_HAPPENS); @@ -1840,11 +1849,14 @@ void wxVtkSceneManager::getCleanLine(stringstream &inputStream, std::string &lin //========================================================================= void wxVtkSceneManager::loadDiagram(stringstream &inputStream) { + printf("EED wxVtkSceneManager::loadDiagram Start \n"); int size; std::string version = ""; std::string line = ""; char delims[] = ":"; char *result = NULL; + int MAX_LINE_SIZE=1500; + char poort[MAX_LINE_SIZE]; getCleanLine(inputStream, line); @@ -2181,13 +2193,26 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) //---------- getCleanLine(inputStream, line);//PORT o FIN_BOX std::string port = line.substr(0, 4); - while (port == "PORT") { + while (port == "PORT") + { getCleanLine(inputStream, line);//name:value - char poort[150]; + if (line.length()>=MAX_LINE_SIZE-1) + { + line=line.substr(0, MAX_LINE_SIZE-1); + } + strcpy(poort, line.c_str()); result = strtok(poort, delims);//name std::string name(result); + + //EED 16 oct 2012 Adding at the end character " if necesary in the value definition result = strtok(NULL, delims);//value + if (( result[0]=='"' ) && ( result[ strlen(result)-1 ]!='"' ) ) + { + std::string tmpString=" "; + tmpString[0]=34; // character " + strcat(result,tmpString.c_str()); + } std::string value(result); bbmod->setValueToInput(name, value); @@ -2273,6 +2298,8 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) } // for numConns } // start + +printf("EED wxVtkSceneManager::loadDiagram End \n"); } //========================================================================= @@ -2641,8 +2668,7 @@ void wxVtkSceneManager::addObjects(std::map objectsMap) double xInic, yInic, zInic; GBlackBoxModel* copyBox = (GBlackBoxModel*) cont->getModel(); copyBox->getInicPoint(xInic, yInic, zInic); - int idBox = createGBlackBox(0, 0, copyBox->getBBTKPackage(), - copyBox->getBBTKType()); + int idBox = createGBlackBox(0, 0, copyBox->getBBTKPackage(),copyBox->getBBTKType()); int idcB = copyBox->getObjectId(); oldIdNewIdBoxes[idcB] = idBox; @@ -2650,9 +2676,10 @@ void wxVtkSceneManager::addObjects(std::map objectsMap) GBlackBoxModel* newbox = (GBlackBoxModel*) cont->getModel(); newbox->setInicPoint(xInic, yInic, zInic); int num = newbox->getNumInputPorts(); - for (int j = 0; j < num; j++) { + for (int j = 0; j < num; j++) + { newbox->setValueToInputPort(j, copyBox->getValueInputPort(j)); - } + }// for j newbox->notifyObservers(_idManager); } else if (type == GCONNECTOR) { int idCon = cont->getId(); diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h index f92b906..2c18b09 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h @@ -93,8 +93,10 @@ namespace bbtk class wxVtkSceneManager : public InteractorStyleMaracas , public Observer { public: - - wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager); + +//EED 15 oct 2012 wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager); + wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory); + ~wxVtkSceneManager(); void disconnectDrop(); @@ -264,11 +266,16 @@ namespace bbtk vtkActor *_fillObjectActor; vtkDataSetMapper *_aPolygonMapper; + Factory::Pointer _bbtkfactory; + + std::string LineNumber(bool withLineNumber, int &value); int GetIndexInSelected(int idControler); void UnSelectBlackBoxes(); GObjectController *GetGBlackBoxControlerPointedByMouse(); void CancelConnection(); + + protected: -- 2.47.1