]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx
The creation of a panel which enables the user to set in a basic way the values of...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / wxVtkSceneManager.cxx
index c4efe5605d986f87da642f9bbcd499ea122c47e3..8107b8ec6bd48d4e10e30b8e3325b7953b9c9864 100644 (file)
@@ -197,19 +197,21 @@ namespace bbtk
 
        void wxVtkSceneManager::createGInputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxInputDescriptor *desc)
        {
-               createGPort(portType,desc->GetName(),desc->GetTypeName(),posinBox,blackBox);
+               GPortController* portController = createGPort(portType,desc->GetName(),desc->GetTypeName(),posinBox,blackBox);
+               blackBox->addInputPort((GPortModel*)portController->getModel());
        }
 
        //=========================================================================
 
        void wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxOutputDescriptor *desc)
        {
-               createGPort(portType,desc->GetName(),desc->GetTypeName(),posinBox,blackBox);
+               GPortController* portController = createGPort(portType,desc->GetName(),desc->GetTypeName(),posinBox,blackBox);
+               blackBox->addOutputPort((GPortModel*)portController->getModel());
        }
 
        //=========================================================================
 
-       void wxVtkSceneManager::createGPort(int portType,std::string bbtkName, std::string bbtkType, int posInBox,GBlackBoxModel *blackBox)
+       GPortController* wxVtkSceneManager::createGPort(int portType,std::string bbtkName, std::string bbtkType, int posInBox,GBlackBoxModel *blackBox)
        {
                int type = GPORT;
 
@@ -244,6 +246,8 @@ namespace bbtk
                int newId = _controllers.size();
                controller->setId(newId);
                _controllers[newId] = controller;
+
+               return (GPortController*)controller;
        }
 
        //=========================================================================
@@ -436,6 +440,22 @@ namespace bbtk
                                        cont->SetActive(true);                                                          
                                }
                        }
+                       else if(command == EDIT_BLACKBOX)
+                       {
+                               GObjectController* cont = _controllers[idController];
+
+                               for (int i=0; i<_selectedObjects.size(); i++)
+                               {
+                                       int id = _selectedObjects[i];
+                                       GObjectController* cont = _controllers[id];
+                                       cont->getView()->setState(NOTHING_HAPPENS);
+                               }
+                               _selectedObjects.clear();
+
+                               GBlackBoxModel *bbmodel = (GBlackBoxModel*)cont->getModel();
+                               _parent->editBlackBox(bbmodel);
+
+                       }
                }
        }
 
@@ -708,6 +728,8 @@ namespace bbtk
                                script+="\n";
                        }
 
+                       script+="load std\n";
+
                        for(i = 0; i<boxes.size();i++)
                        {
                                script+="new ";
@@ -719,6 +741,23 @@ namespace bbtk
                                script+=" ";
                                script+=model->getBBTKName();
                                script+="\n";
+
+                               std::vector<GPortModel*> inputs = model->getInputPorts();
+                               for(int j = 0; j<inputs.size();j++)
+                               {
+                                       GPortModel* inputPort = inputs[j];
+                                       if(inputPort->isValueSet())
+                                       {
+                                               script+="set ";
+                                               script+=model->getBBTKName();
+                                               script+=".";
+                                               script+=inputPort->getBBTKName();
+                                               script+=" ";
+                                               script+=inputPort->getValue();
+                                               script+="\n";
+                                       }
+                               }
+
                        }
 
                        for(i = 0; i<connections.size();i++)