]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
#2692 bbGEditor Feature New Normal - Name of the package in the box type for BBS...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxVtkSceneManager.cxx
index ca8d541dcb63085981ecc1708557ecbb9487488d..d334129e967a9914b7ba8011441538ad2a30d7bf 100644 (file)
@@ -74,19 +74,24 @@ namespace bbtk {
 wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory) 
 {
        _cbName                 = "ComplexBoxName";
-       _cbPackageName  = "PackageName";
+       _cbPackageName          = "PackageName";
        _Author                 = "Author ??";
        _Category               = "<VOID>";
-       _Description    = "Description ??";
+       _Description            = "Description ??";
+       _MessageKind = " ";
+       _MessageLevel = " ";
+
+       _bugTextActor_text      = "void";
+       _bugTextActor_status    = 0;
 
        _parent                 = parent;
        _numBoxes               = 0;
        _idManager              = idManager;
        _baseView               = baseView;
-       _bbtkfactory    = bbtkfactory;
+       _bbtkfactory            = bbtkfactory;
        
-       _startDragging  = false;
-       _isComplexBox   = false;
+       _startDragging          = false;
+       _isComplexBox           = false;
 
        if (_baseView != NULL) {
                //EED02JUIN2010
@@ -151,6 +156,7 @@ void wxVtkSceneManager::configureBaseView()
 
        // Actos Port_Text
        _textActor = vtkTextActor3D::New();
+//     _textActor = vtkTextActor::New();
        _textActor->SetPosition(-9999, -9999, GPOSITION_Z);
        _textActor->SetInput("<void>");
        _textActor->GetTextProperty()->SetFontSize(60);
@@ -800,7 +806,7 @@ bool wxVtkSceneManager::OnMouseMove()
 {
        int X, Y;
        bool okStatusMessage    = false;
-       bool okPortMessage              = false;
+       bool okPortMessage      = false;
        wxVTKRenderWindowInteractor *wxVTKiren;
        wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
        wxVTKiren->GetEventPosition(X, Y);
@@ -842,7 +848,7 @@ bool wxVtkSceneManager::OnMouseMove()
                        if ((state == HIGHLIGHTED) || (state == SELECTED_POSSIBLE_CONNECTION )) 
                        {
                         // EO JGRR & CM    
-                               okStatusMessage = true;
+                               okStatusMessage         = true;
                                updateStatusBar(desc->getStatusText());
                                if (type == GBLACKBOX) 
                                {
@@ -852,32 +858,43 @@ bool wxVtkSceneManager::OnMouseMove()
                                if (type == GPORT) 
                                {
                                        // PortText
-                                       okPortMessage = true;
-                                       py = py + 5;
-                                       _textActor->SetInput(desc->getStatusText().c_str());
-                                       _textActor->SetScale(0.1);
-                                       _textActor->SetPosition(px - 25, py + 1, pz + 2);
-
-                                       // FillPortText
-                                       px = px - 33;
-                                       //py = py;
-                                       _fillObjectActor->SetScale(1);
-                                       _fillObjectActor->GetProperty()->SetOpacity(0.50);
-                                       _fillObjectActor->SetPosition(px, py, 1);
-                                       _aPolygonMapper->Modified();
-                               } // if GPORT
+                                       if ( ( _bugTextActor_text==desc->getStatusText() ) || (_bugTextActor_status==0) )
+                                       {
+                                               _bugTextActor_status    = 1;
+                                               okPortMessage           = true;
+                                               py                      = py + 5;
+                                               _textActor->SetScale(0.1);
+                                               std::string tmp = desc->getStatusText()+"\n";
+                                               _textActor->SetInput( tmp.c_str() );
+                                               _textActor->SetPosition(px - 25, py + 1, pz + 2);
+                                               _textActor->Modified();
+                                               // FillPortText
+                                               px                      = px - 33;
+                                               //py = py;
+                                               _fillObjectActor->SetScale(1);
+                                               _fillObjectActor->GetProperty()->SetOpacity(0.50);
+                                               _fillObjectActor->SetPosition(px, py, 1);
+                                               _aPolygonMapper->Modified();
+                                       } else {
+                                               _bugTextActor_status    = 2;
+                                       } //  _bugTextActor_tex
+                                       _bugTextActor_text              = desc->getStatusText();
 
-                       } // for controllers it
-               }
+                               } // if GPORT
+                       }  //if state
+               } // for controllers it
        }
        if (okStatusMessage == false) 
        {
                updateStatusBar("");
        }
 
-       if (okPortMessage == false) 
+       if ((okPortMessage == false) || (_bugTextActor_status== 2 ) )
        {
+               _bugTextActor_status    = 0; 
                _textActor->SetScale(0.0001);
+               _textActor->SetInput("a\n");
+               _textActor->Modified();
                _fillObjectActor->SetScale(0.0001);
        }
        return true;
@@ -1337,6 +1354,7 @@ bool wxVtkSceneManager::MakeBoxExecutable() {
 //=========================================================================
 
 std::string wxVtkSceneManager::getDiagramBBS(bool wln) {
+       std::cout << "wxVtkSceneManager::getDiagramBBS" << std::endl;
        bool existsExec = false;
 
        std::vector<std::string> packages;
@@ -1394,7 +1412,7 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) {
                script += "\n";
 
                //ups2
-
+               
                script += LineNumber(wln, lnNmbr);
                script += "author \"";
                script += _Author;
@@ -1419,9 +1437,10 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) {
                        script += LineNumber(wln, lnNmbr);
                        script += "new ";
                        int id = boxes[i];
-                       GObjectController *control = _controllers[id];
-                       GBlackBoxModel *model = (GBlackBoxModel*) control->getModel();
+                       GObjectController *control      = _controllers[id];
+                       GBlackBoxModel *model           = (GBlackBoxModel*) control->getModel();
 
+                       script += model->getBBTKPackage()+":";
                        script += model->getBBTKType();
                        script += " ";
                        script += model->getBBTKName();
@@ -1510,6 +1529,15 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) {
                script += "# Complex input ports\n";
                script += complexInputs;
 
+               if((_MessageKind!=" ")&&(_MessageLevel!=" ")){
+                       script += LineNumber(wln, lnNmbr);
+                       script += "message ";
+                       script += _MessageKind;
+                       script += " ";
+                       script += _MessageLevel;
+                       script += "\n";
+               }
+
                for (i = 0; i < (int) execBoxes.size(); i++) {
                        script += LineNumber(wln, lnNmbr);
                        script += "exec ";
@@ -1529,6 +1557,7 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) {
 //=========================================================================
 
 std::string wxVtkSceneManager::saveComplexBoxBBS() {
+       std::cout<<"wxVtkSceneManager::saveComplexBoxBBS"<<std::endl;
        std::vector<std::string> packages;
        std::vector<int> boxes;
        std::vector<int> connections;
@@ -1695,6 +1724,12 @@ std::string wxVtkSceneManager::saveComplexBoxBBS() {
 
        script += "\n";
 
+       script += "message ";
+       script += _MessageKind;
+       script += " ";
+       script += _MessageLevel;
+       script += "\n";
+
        for (i = 0; i < (int) execBoxes.size(); i++) {
                script += "exec ";
                int id = execBoxes[i];
@@ -1834,10 +1869,17 @@ void wxVtkSceneManager::saveDiagram(std::string &content) {
        sprintf(buffer, "%d", bsize);
        content += buffer;
        content += "\n";
-
+       
        for (int i = 0; i < bsize; i++) {
                int id = boxes[i];
+               std::cout<<"id "<<id<<std::endl;//CFT
                GObjectController *cont = _controllers[id];
+               std::cout<<"nombre: "<<cont->getStatusText()<<std::endl;//CFT
+               std::cout<<"tipo: "<<cont->getModel()->getBBTKType()<<std::endl;//CFT
+               //boxesDiagram[i] = cont->getModel()->getBBTKType();//CFT
+               std::cout<<"nname: "<<cont->getModel()->getBBTKName()<<std::endl;//CFT
+               std::cout<<"categorie: "<<GetCategory()<<std::endl;//CFT
+               std::cout<<"type: "<<cont->getModel()->getGObjectType()<<std::endl;//CFT
                cont->getModel()->save(content);
        }
 
@@ -2918,6 +2960,31 @@ std::string wxVtkSceneManager::GetDescription() {
 
 //=========================================================================
 
+void wxVtkSceneManager::SetMessageKind(std::string kind) {
+               _MessageKind = kind;
+       
+}
+                               
+//=========================================================================
+
+std::string wxVtkSceneManager::GetMessageKind(){
+               return _MessageKind;
+}
+
+//=========================================================================
+
+void wxVtkSceneManager::SetMessageLevel(std::string Level){
+               _MessageLevel = Level;
+}
+
+//=========================================================================
+
+std::string wxVtkSceneManager::GetMessageLevel(){
+               return _MessageLevel;
+}
+
+//=========================================================================
+
 std::vector< std::string> wxVtkSceneManager::GetExternalInputsNames()
 {