X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsWxGUIEditorGraphic%2FwxDiagramPropertiesEditionDialog.cxx;h=800ab3c9df88fe581969056abca5383aba444cd1;hb=bd1d3e715ef706b562ad87d08d8adb927824c32b;hp=2fd33a7bb40313d07ab9f75145c8ad9d1637080c;hpb=467d5db94f473d376c62e55faae77b0981c6d908;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx index 2fd33a7..800ab3c 100755 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx @@ -1,3 +1,28 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ + /*========================================================================= Program: bbtkGEditor Module: $RCSfile$ @@ -36,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(600, 750),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { _parent = parent; + _tree = tree; constructDiagramPropertiesEditionDialog(); } @@ -55,14 +82,115 @@ 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() { - const int ID_COMBO = 1; - wxPanel *panel = new wxPanel(this, -1); - wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL); - wxFlexGridSizer *fgsizer = new wxFlexGridSizer(5, 2, 9, 25); - + const int ID_COMBO = 1; + wxPanel *panel = new wxPanel(this, -1); + wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL); + wxFlexGridSizer *fgsizer = new wxFlexGridSizer(8, 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); + +//EED 2023-10-31 +// _treeBox = new wxTreeCtrl (this, wxID_ANY, wxPoint(0,0), wxSize(320,300), wxTR_HAS_BUTTONS | wxTR_SINGLE ); + _treeBox = new wxTreeCtrl (panel, 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 @@ -78,17 +206,58 @@ namespace bbtk int currentType = (_parent->isCurrentDiagramComplexBox()==false)? 0 : 1; _diagramType->Select(currentType); - - wxStaticText *type = new wxStaticText(panel, -1, wxT("Type")); - wxStaticText *author = new wxStaticText(panel, -1, wxT("Author")); - wxStaticText *category = new wxStaticText(panel, -1, wxT("Category")); - wxStaticText *description = new wxStaticText(panel, -1, wxT("Description")); - - _txtAuthor = new wxTextCtrl(panel, -1); - _txtCategory = new wxTextCtrl(panel, -1); - _txtDescription = new wxTextCtrl(panel, -1, wxT(""), wxPoint(-1, -1), wxSize(-1, -1), wxTE_MULTILINE); - wxButton *okButton = new wxButton(panel, -1, _T("Ok"),wxDefaultPosition, wxSize(-1, -1)); - wxButton *closeButton = new wxButton(panel, -1, _T("Close"), wxDefaultPosition, wxSize(-1, -1)); + 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); + _txtDescription = new wxTextCtrl(panel, -1, wxT(""), wxPoint(-1, -1), wxSize(-1, -1), wxTE_MULTILINE); + wxButton *okButton = new wxButton(panel, -1, _T("Ok"),wxDefaultPosition, wxSize(-1, -1)); + wxButton *closeButton = new wxButton(panel, -1, _T("Close"), wxDefaultPosition, wxSize(-1, -1)); // connect command event handlers Connect(okButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxDiagramPropertiesEditionDialog::onClickOk)); @@ -99,7 +268,6 @@ namespace bbtk _txtCategory->SetValue(crea::std2wx(_parent->getCurrentDiagramCategory())); _txtDescription->SetValue(crea::std2wx(_parent->getCurrentDiagramDescription())); - fgsizer->Add(type); fgsizer->Add(_diagramType, 1, wxEXPAND); fgsizer->Add(author); @@ -108,6 +276,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); @@ -131,7 +307,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()); @@ -148,6 +324,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); }