]> Creatis software - bbtkGEditor.git/commitdiff
Bug #1689
authordavila <>
Tue, 16 Oct 2012 07:32:46 +0000 (07:32 +0000)
committerdavila <>
Tue, 16 Oct 2012 07:32:46 +0000 (07:32 +0000)
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
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/GObjectsMVCFactory.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h

index efd01236d554b0d38a8b086e62f5bc19479c45b4..88dd4c1c78a395328ea6613e913f264d40e871b1 100644 (file)
@@ -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;
 }
index 41b3fe06aa57e36d987bb3976983363e52234b41..881ef466ad67eae51cb83f384ab86c0fd79942d0 100644 (file)
@@ -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()
        {
index 099e7a652ae7b2fd1d8cb24d7ac923f81d51341b..1140310274bb321da184fc8f2122e492f61d8d06 100644 (file)
@@ -88,20 +88,14 @@ namespace bbtk
                //Public methods
 
                // Singleton to access to the Factory
-               static GObjectsMVCFactorygetInstance();
+               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:
 
        };
index af3e5ce7d1e592f1ebddd3f15cc0c8e569f48a21..a26f9ddf12a32ba145b9b6f468d54cae00dd5c61 100644 (file)
 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()
index 54a604cc8ece19980d1ebfa668acd82a7dd3b386..1d9872f17a789d7ab6de606223aa9cae2d7d1fd8 100644 (file)
@@ -185,6 +185,8 @@ namespace bbtk
                        void OnShowHTMLDoc(wxCommandEvent& event);
                        void OnCreateIndex(wxCommandEvent& event);
                
+                       Factory::Pointer GetBBTKFactory();
+               
                        // RaC-2012
                        void enableComplexBox();
                        void disableComplexBox();
index ab134cb29e9e6e54befffd26caddb4a4f446ed91..1f5688306f53dcd211178fac626abd0d39f93558 100644 (file)
@@ -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;
index 0a7261beb6f51dacf2b3646e425e71af4ab6f638..00f669bc64f9c19a0c96d42d89934c5f7dea8a71 100644 (file)
@@ -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
index 59d615e3f6801f38bd451987dd5b4244352fb31e..955ca814d9c50227783961f8f4a07972f0c365f1 100644 (file)
@@ -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;
 
        };
 
index 6548a8d406b5317f12dc1bb081ce97d87de36b1c..7c29eaefb1e94f887567146803e76d81cec6c4ba 100644 (file)
@@ -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);
        }
 
index 62ecce36189b7f9a345cafd7db5e67e2cd59bbbc..b5e431c7c3816a5368d4ec88efde27a08bca5075 100644 (file)
 namespace bbtk {
 
 //=========================================================================
-wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent,
-               wxVtk3DBaseView *baseView, int idManager) {
-       _cbName = "ComplexBoxName";
-       _cbPackageName = "PackageName";
-       _Author = "Author ??";
-       _Category = "<VOID>";
-       _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               = "<VOID>";
+       _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("<void>");
        _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<int , GObjectController*>::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<int, GObjectController*>::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<int, GObjectController*>::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 = "<void>";
        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<int, GObjectController*> 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<int, GObjectController*> 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();
index f92b9064e057a733e11e12eaaedbeb68624881e3..2c18b092183331bae67fe632783787347298a24f 100644 (file)
@@ -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: