]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
Feature #1347
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxVtkSceneManager.cxx
index c482711cc67ee0e3547f57ded274ce4408b2443c..645d959e12e38b7e2dcbe18bd699ecb206bb2772 100644 (file)
@@ -685,6 +685,7 @@ void wxVtkSceneManager::update(int idController, int command) {
                        if (finPort->getGObjectType() == GPORT) {
                                GPortModel* modelPort = (GPortModel*) finPort->getModel();
                                modelContour->setEndPort(modelPort);
+                               _parent->saveTempDiagram();
                        }
 
                        manualConnectorContourController
@@ -819,6 +820,7 @@ bool wxVtkSceneManager::OnLeftButtonDown() {
                        CancelConnection();
                        UnSelectBlackBoxes();
                } // isOverPort
+       
 
        } else { //_worldState
 
@@ -845,7 +847,7 @@ bool wxVtkSceneManager::OnLeftButtonDown() {
                        cont->getView()->setState(DRAG);
                        cont->getModel()->notifyObservers(_idManager);
                } // for
-
+               
        } // if _selectedObjects.size
 
 
@@ -1104,6 +1106,7 @@ void wxVtkSceneManager::deleteObject(int id) {
                        _controllers.erase(it);
                }//if
        }// for
+       _parent->saveTempDiagram();
 }
 
 //=========================================================================
@@ -1141,26 +1144,27 @@ std::string wxVtkSceneManager::LineNumber(bool withLineNumber, int &value) {
 //DFCH
 bool wxVtkSceneManager::MakeBoxExecutable() {
        std::map<int, GObjectController*> selected = getSelectedObjects();
-
-       std::map<int, GObjectController*>::iterator it = selected.end();
-       it--;
-       GObjectController* lastSelected = it->second;
-       //GObjectController* lastSelected = selected[selected.size()-1];
-       if( lastSelected )
-       {
-               vtkGObjectView* view = (vtkGObjectView*) lastSelected->getView();
-               GBlackBoxModel *bbmodel = (GBlackBoxModel*) lastSelected->getModel();
-               view->setState(HIGHLIGHTED);
-               if (bbmodel->isExecutable()) {
-                       bbmodel->setExecutable(false);
-               } else {
-                       bbmodel->setExecutable(true);
+       if( selected.empty() )
+               return false;
+       bool ret = false;
+       std::map<int, GObjectController*>::iterator it;
+       for (it = selected.begin(); it != selected.end(); ++it) {
+               GObjectController* lastSelected = it->second;
+               if (lastSelected) {
+                       vtkGObjectView* view = (vtkGObjectView*) lastSelected->getView();
+                       GBlackBoxModel *bbmodel =
+                                       (GBlackBoxModel*) lastSelected->getModel();
+                       view->setState(HIGHLIGHTED);
+                       if (bbmodel->isExecutable()) {
+                               bbmodel->setExecutable(false);
+                       } else {
+                               bbmodel->setExecutable(true);
+                       }
+                       bbmodel->notifyObservers(lastSelected->getId());
+                       ret = true;
                }
-               bbmodel->notifyObservers(lastSelected->getId());
-               return true;
        }
-       else
-               return( false );
+       return ret;
 }
 //DFCH
 
@@ -1640,12 +1644,13 @@ void wxVtkSceneManager::saveDiagram(std::string &content) {
 
 //=========================================================================
 
-void wxVtkSceneManager::loadDiagram(ifstream &inputStream) {
+void wxVtkSceneManager::loadDiagram(stringstream &inputStream) {
 
        std::string version = "<void>";
        std::string line = "";
        char delims[] = ":";
        char *result = NULL;
+
        getline(inputStream, line);
 
        bool start = false;