]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx
#3075 bbGEditor Bug New Normal - comboBox for message configuration
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxDiagramPropertiesEditionDialog.cxx
index 02b8a583b429ba7daf3e08d010b7724fe852bd62..8de199cb69e37fd9eee5055d2111db872e861966 100755 (executable)
@@ -61,13 +61,15 @@ Version:   $Revision$
 #include "wxDiagramPropertiesEditionDialog.h"
 #include "creaWx.h"
 
+
 namespace bbtk
 {
        //=========================================================================
 
-       wxDiagramPropertiesEditionDialog::wxDiagramPropertiesEditionDialog(wxGUIEditorGraphicBBS *parent):wxDialog(parent,wxID_ANY,_T("Diagram Properties"), wxDefaultPosition, wxSize(320, 280),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
+       wxDiagramPropertiesEditionDialog::wxDiagramPropertiesEditionDialog(wxGUIEditorGraphicBBS *parent, NodeTreeC tree):wxDialog(parent,wxID_ANY,_T("Diagram Properties"), wxDefaultPosition, wxSize(500, 650),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
        {
                _parent = parent;
+               _tree = tree;
                constructDiagramPropertiesEditionDialog();
        }
 
@@ -80,6 +82,21 @@ namespace bbtk
        }
 
        //=========================================================================
+       
+       void wxDiagramPropertiesEditionDialog::constructBoxTree(NodeTreeC nodeTree, wxTreeItemId itemId)
+       {
+               
+               for(int i = 0 ; i < nodeTree.childs.size() ; i++)
+               {
+                       string spc = nodeTree.childs[i].data;
+                       const char* ccc = spc.c_str();
+                       wxString pc = wxString::FromUTF8 (ccc);
+                       wxTreeItemId iId = _treeBox->AppendItem(itemId, pc, -1, -1, NULL);
+                       constructBoxTree(nodeTree.childs[i], iId );
+               }
+       }
+
+  //==================================================================================
 
        void wxDiagramPropertiesEditionDialog::constructDiagramPropertiesEditionDialog()
        {
@@ -89,6 +106,92 @@ namespace bbtk
                wxFlexGridSizer *fgsizer = new wxFlexGridSizer(5, 2, 9, 25);
 
 
+               //CFT           
+
+               wxStaticText *tree = new wxStaticText(panel, -1, wxT("Tree of Box"));
+               
+               string sp = _tree.data;
+               const char* cc = sp.c_str();
+               wxString p = wxString::FromUTF8 (cc);
+
+               _treeBox = new wxTreeCtrl (this, wxID_ANY, wxPoint(0,0), wxSize(320,300), wxTR_HAS_BUTTONS | wxTR_SINGLE );
+               wxTreeItemId itemId = _treeBox->AddRoot(p, -1,-1,NULL);
+               
+               constructBoxTree(_tree, itemId);
+               _treeBox->ExpandAll();  
+               //_tree.treeTour(0);
+               //CFT END
+
+//CFT
+//COMBOBOX OF MESSAGE
+/*
+Kind         Level  Nature
+Interpreter  0 Messages of the interpreter
+all          0 Minimum level for all kind of messages
+change       0 Box i/o changes related messages
+code         0 If positive then codes of the messages are displayed
+config       0 Configuration related messages
+connection   0 Connections related messages
+data         0 Data related messages
+debug        0 Debug messages
+echo         1 Level>0 : Prints the output of the 'print' commands of the user.
+       Level>1 : Prints the command being interpreted
+error        0 Error messages
+gui          0 Graphical user interface related messages
+help         1 Help messages
+kernel       0 Messages generated by the core classes of the lib
+max          9 Maximum level for all kind of messages
+object       0 object memory related messages
+output       1 Output messages
+package      0 Packages related messages
+process      0 Messages related to box processing
+qt           0 Qt related messages
+warning      1 Warning messages
+widget       0 Widgets related messages
+wx   
+*/
+               _diagramMessageKind = new wxComboBox(panel, -1, wxT("-"), wxDefaultPosition, wxSize(100,-1) );
+               _diagramMessageKind->Append (wxT("-"));
+               _diagramMessageKind->Append (wxT("Interpreter"));
+               _diagramMessageKind->Append (wxT("all"));
+               _diagramMessageKind->Append (wxT("change"));
+               _diagramMessageKind->Append (wxT("code"));
+               _diagramMessageKind->Append (wxT("config"));
+               _diagramMessageKind->Append (wxT("connection"));
+               _diagramMessageKind->Append (wxT("data"));
+               _diagramMessageKind->Append (wxT("debug"));
+               _diagramMessageKind->Append (wxT("echo"));
+               _diagramMessageKind->Append (wxT("error"));
+               _diagramMessageKind->Append (wxT("gui"));
+               _diagramMessageKind->Append (wxT("help"));
+               _diagramMessageKind->Append (wxT("kernel"));
+               _diagramMessageKind->Append (wxT("max"));
+               _diagramMessageKind->Append (wxT("object"));
+               _diagramMessageKind->Append (wxT("output"));
+               _diagramMessageKind->Append (wxT("package"));
+               _diagramMessageKind->Append (wxT("process"));
+               _diagramMessageKind->Append (wxT("qt"));
+               _diagramMessageKind->Append (wxT("warning"));
+               _diagramMessageKind->Append (wxT("widget"));
+               _diagramMessageKind->Append (wxT("wx"));
+               _diagramMessageKind->SetEditable(false);
+
+               _diagramMessageLevel = new wxComboBox(panel, -1, wxT("-"), wxDefaultPosition, wxSize(100,-1) );
+               _diagramMessageLevel->Append (wxT("-"));                
+               _diagramMessageLevel->Append (wxT("0"));
+               _diagramMessageLevel->Append (wxT("1"));
+               _diagramMessageLevel->Append (wxT("2"));
+               _diagramMessageLevel->Append (wxT("3"));
+               _diagramMessageLevel->Append (wxT("4"));
+               _diagramMessageLevel->Append (wxT("5"));
+               _diagramMessageLevel->Append (wxT("6"));
+               _diagramMessageLevel->Append (wxT("7"));
+               _diagramMessageLevel->Append (wxT("8"));
+               _diagramMessageLevel->Append (wxT("9"));
+               _diagramMessageLevel->SetEditable(false);
+
+//CFT END
+
                // SELECTION CONSTANTS
                // 0 - Application
                // 1 - Complex box
@@ -103,11 +206,52 @@ namespace bbtk
 
                int currentType = (_parent->isCurrentDiagramComplexBox()==false)? 0 : 1;
                _diagramType->Select(currentType);
+               std::string currentKindStr = _parent->getCurrentDiagramMessageKind();
+               int currentKind=0;  // "-"
+                       if (currentKindStr =="Interpreter")     { currentKind = 1;      }
+                       if (currentKindStr == "all")            { currentKind = 2;      }
+                       if (currentKindStr == "change")         { currentKind = 3;  }
+                       if (currentKindStr == "code")           { currentKind = 4;  }
+                       if (currentKindStr == "config")         { currentKind = 5;  }
+                       if (currentKindStr == "connection") { currentKind = 6;  }
+                       if (currentKindStr == "data")           { currentKind = 7;  }
+                       if (currentKindStr == "debug")          { currentKind = 8;  }
+                       if (currentKindStr == "echo")           { currentKind = 9;  }
+                       if (currentKindStr == "error")          { currentKind = 10; }
+                       if (currentKindStr == "gui")            { currentKind = 11; }
+                       if (currentKindStr == "help")           { currentKind = 12; }
+                       if (currentKindStr == "kernel")         { currentKind = 13; }
+                       if (currentKindStr == "max")            { currentKind = 14; }
+                       if (currentKindStr == "object")         { currentKind = 15; }
+                       if (currentKindStr == "output")         { currentKind = 16; }
+                       if (currentKindStr == "package")        { currentKind = 17; }
+                       if (currentKindStr == "process")        { currentKind = 18; }
+                       if (currentKindStr == "qt" )            { currentKind = 19; }
+                       if (currentKindStr == "warning")        { currentKind = 20; }
+                       if (currentKindStr == "widget")         { currentKind = 21; }
+                       if (currentKindStr == "wx" )            { currentKind = 22; }
+               _diagramMessageKind->Select(currentKind);
+
+               std::string currentLevelStr = _parent->getCurrentDiagramMessageLevel();
+               int currentLevel = 0;
+               if (currentLevelStr == "0" )            { currentLevel = 1; }
+               if (currentLevelStr == "1" )            { currentLevel = 2; }
+               if (currentLevelStr == "2" )            { currentLevel = 3; }
+               if (currentLevelStr == "3" )            { currentLevel = 4; }
+               if (currentLevelStr == "4" )            { currentLevel = 5; }
+               if (currentLevelStr == "5" )            { currentLevel = 6; }
+               if (currentLevelStr == "6" )            { currentLevel = 7; }
+               if (currentLevelStr == "7" )            { currentLevel = 8; }
+               if (currentLevelStr == "8" )            { currentLevel = 9; }
+               if (currentLevelStr == "9" )            { currentLevel = 10;}
+               _diagramMessageLevel->Select(currentLevel);
 
                wxStaticText *type = new wxStaticText(panel, -1, wxT("Type"));
                wxStaticText *author = new wxStaticText(panel, -1, wxT("Author"));
                wxStaticText *category = new wxStaticText(panel, -1, wxT("Categories"));
                wxStaticText *description = new wxStaticText(panel, -1, wxT("Description"));
+               wxStaticText *messageKind = new wxStaticText(panel, -1, wxT("Message kind"));
+               wxStaticText *messageLevel = new wxStaticText(panel, -1, wxT("Message level"));
 
                _txtAuthor = new wxTextCtrl(panel, -1);
                _txtCategory = new wxTextCtrl(panel, -1);
@@ -133,6 +277,14 @@ namespace bbtk
                fgsizer->Add(_txtCategory, 1, wxEXPAND);
                fgsizer->Add(description, 1, wxEXPAND);
                fgsizer->Add(_txtDescription, 1, wxEXPAND);
+//cft
+               fgsizer->Add(messageKind);
+               fgsizer->Add(_diagramMessageKind, 1, wxEXPAND);
+               fgsizer->Add(messageLevel);
+               fgsizer->Add(_diagramMessageLevel, 1, wxEXPAND);
+               fgsizer->Add(tree);
+               fgsizer->Add(_treeBox, 1, wxEXPAND);
+//cft end              
                fgsizer->Add(okButton, 1, wxEXPAND);
                fgsizer->Add(closeButton, 1, wxEXPAND);
 
@@ -156,7 +308,7 @@ namespace bbtk
 
        void wxDiagramPropertiesEditionDialog::onClickOk(wxCommandEvent& event)
        {
-
+               printf("RaC wxDiagramPropertiesEditionDialog::onClickOk\n");
                std::string txtAuthor = wx2std(_txtAuthor->GetValue());
                std::string txtCategory = wx2std(_txtCategory->GetValue());
                std::string txtDescription = wx2std(_txtDescription->GetValue());
@@ -173,6 +325,12 @@ namespace bbtk
                else if (selection == 1)
                        _parent->enableComplexBox();
 
+
+               //Message
+               std::string kindSelected = wx2std(_diagramMessageKind->GetStringSelection());
+               std::string levelSelected = wx2std(_diagramMessageLevel->GetStringSelection());
+               _parent->setCurrentDiagramMessageKind(kindSelected);
+               _parent->setCurrentDiagramMessageLevel(levelSelected);
                Close(true);
        }