]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx
Vestion inestable .... It works but it must be changed the connector creation ...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsVtkGUIEditorGraphic / GPortController.cxx
index b2f863be11d9c522f89e343c1e2a4b70b3e138f4..66106085a683f60769a45836828ee37fd2c217f4 100644 (file)
@@ -43,7 +43,7 @@ namespace bbtk
        //=========================================================================
        GPortController::GPortController()
        {
-               
+               _isLeftClickDown=false;
        }
 
        //=========================================================================
@@ -64,57 +64,54 @@ namespace bbtk
 
                        int state  = _view->getState();
                        
-                       int portType = ((GPortModel*)_model)->getPortType();
-
                        //Evaluate new state
-                       if(!_model->hasChanged() && state==HIGHLIGHTED && portType==GOUTPUTPORT )
+                       if(state == HIGHLIGHTED)
                        {
-                               _view->setState(CREATING_CONTOUR);
-                               _model->setChanged();
+                               _isLeftClickDown=true;
                        }
 
-                       _model->notifyObservers(_id);
-
                }
                return true;
        }
        //=========================================================================
        bool GPortController::OnLeftButtonUp()
        {
-               if ( _vtkInteractorStyleBaseView!=NULL )
+               int state  = _view->getState();
+               if(state == HIGHLIGHTED && _isLeftClickDown)
                {
-                       int X,Y;
-                       wxVTKRenderWindowInteractor *wxVTKiren;
-                       wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
-                       wxVTKiren->GetEventPosition(X,Y);
+                       _isLeftClickDown=false;                 
 
-                       int state  = _view->getState();
-                       
-                       //Evaluate new state
-                       if(!_model->hasChanged() && state==CREATING_CONTOUR)
+                       if ( _vtkInteractorStyleBaseView!=NULL )
                        {
-                               if(_view->isPointInside(X,Y))
+                               int X,Y;
+                               wxVTKRenderWindowInteractor *wxVTKiren;
+                               wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
+                               wxVTKiren->GetEventPosition(X,Y);
+
+                               int portType = ((GPortModel*)_model)->getPortType();
+
+                               //Evaluate new state
+                               if(portType==GOUTPUTPORT)
                                {
-                                       _view->setState(CREATING_CONTOUR);
                                        _model->setChanged();
                                        _model->notifyObservers(_id,INIT_CREATION_CONTOUR);
                                }
-                               else
+                               else if (portType==GINPUTPORT)
                                {
-                                       _view->setState(NOTHING_HAPPENS);
                                        _model->setChanged();
-                                       _model->notifyObservers(_id);
+                                       _model->notifyObservers(_id,FIN_CREATION_CONTOUR);
                                }
+                                       
                        }
-
-                       
-
                }
+
                return true;
        }
 
        //=========================================================================
 
+       
+
 }  // EO namespace bbtk
 
 // EOF