]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx
Display of the tree obtained in the information dialog window in BBEditor. 12/05...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxDiagramPropertiesEditionDialog.cxx
index c9479f19d4fe4d8bbb54e39977dfc83a5669c314..0e07133068d03096239d982956617ac8ace71a51 100755 (executable)
@@ -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(520, 640),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
+       wxDiagramPropertiesEditionDialog::wxDiagramPropertiesEditionDialog(wxGUIEditorGraphicBBS *parent, NodeTreeC tree):wxDialog(parent,wxID_ANY,_T("Diagram Properties"), wxDefaultPosition, wxSize(450, 580),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
        {
                _parent = parent;
+               _tree = tree;
                constructDiagramPropertiesEditionDialog();
        }
 
@@ -55,16 +82,65 @@ 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(4, 2, 9, 25);
+               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();
+               //CFT end
+
+
+               // SELECTION CONSTANTS
+               // 0 - Application
+               // 1 - Complex box
+               _diagramType = new wxComboBox(panel, -1, wxEmptyString, wxDefaultPosition, wxSize(100,-1) );
+               _diagramType->Append (wxT("Application"));
+               _diagramType->Append (wxT("Complex box"));
+               _diagramType->SetEditable(false);
+               //_diagramType->Enable(false);
 
+               Connect(ID_COMBO, wxEVT_COMMAND_COMBOBOX_SELECTED,
+                                       wxCommandEventHandler(wxDiagramPropertiesEditionDialog::OnComboBoxSelected));
+
+               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 *category = new wxStaticText(panel, -1, wxT("Categories"));
                wxStaticText *description = new wxStaticText(panel, -1, wxT("Description"));
 
                _txtAuthor = new wxTextCtrl(panel, -1);
@@ -77,28 +153,38 @@ namespace bbtk
                Connect(okButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxDiagramPropertiesEditionDialog::onClickOk));
                Connect(closeButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxDiagramPropertiesEditionDialog::onClickClose));
 
+               // Assign loaded values
+               _txtAuthor->SetValue(crea::std2wx(_parent->getCurrentDiagramAuthor()));
+               _txtCategory->SetValue(crea::std2wx(_parent->getCurrentDiagramCategory()));
+               _txtDescription->SetValue(crea::std2wx(_parent->getCurrentDiagramDescription()));
+
 
+               fgsizer->Add(type);
+               fgsizer->Add(_diagramType, 1, wxEXPAND);
                fgsizer->Add(author);
                fgsizer->Add(_txtAuthor, 1, wxEXPAND);
                fgsizer->Add(category);
                fgsizer->Add(_txtCategory, 1, wxEXPAND);
                fgsizer->Add(description, 1, wxEXPAND);
                fgsizer->Add(_txtDescription, 1, wxEXPAND);
-               fgsizer->Add(okButton, 1, wxEXPAND);
+//cft
+               fgsizer->Add(tree);
+               fgsizer->Add(_treeBox, 1, wxEXPAND);
+//cft end              
+       fgsizer->Add(okButton, 1, wxEXPAND);
                fgsizer->Add(closeButton, 1, wxEXPAND);
 
-               fgsizer->AddGrowableRow(2, 1);
+               fgsizer->AddGrowableRow(3, 1);
                fgsizer->AddGrowableCol(1, 1);
 
                hbox->Add(fgsizer, 1, wxALL | wxEXPAND, 15);
-               panel->SetSizer(hbox);
+               panel->SetSizerAndFit(hbox);
                Centre();
 
                ShowModal();
                Destroy();
 
                // Assign loaded values
-
                _txtAuthor->SetValue(crea::std2wx(_parent->getCurrentDiagramAuthor()));
                _txtCategory->SetValue(crea::std2wx(_parent->getCurrentDiagramCategory()));
                _txtDescription->SetValue(crea::std2wx(_parent->getCurrentDiagramDescription()));
@@ -115,6 +201,16 @@ namespace bbtk
                _parent->setCurrentDiagramAuthor(txtAuthor);
                _parent->setCurrentDiagramCategory(txtCategory);
                _parent->setCurrentDiagramDescription(txtDescription);
+
+               // SELECTION CONSTANTS
+               // 0 - Application
+               // 1 - Complex box
+               int selection = _diagramType->GetSelection();
+               if(selection == 0)
+                       _parent->disableComplexBox();
+               else if (selection == 1)
+                       _parent->enableComplexBox();
+
                Close(true);
        }
 
@@ -128,6 +224,11 @@ namespace bbtk
 
        //=========================================================================
 
+       void wxDiagramPropertiesEditionDialog::OnComboBoxSelected(wxCommandEvent& event)
+       {
+               // TODO Show info to edit complex boxes
+       }
+
        //=========================================================================