]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx
Display of the tree obtained in the information dialog window in BBEditor. 12/05...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / bbtkwxGUIEditorGraphicBBS.cxx
index 377f625fd6f7f914041541df17b8bc339830354d..c764296793200dfb68f9b2edfe258c903cf9121a 100644 (file)
@@ -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:   bbtk
  Module:    $RCSfile$
@@ -434,12 +459,49 @@ void wxGUIEditorGraphicBBS::displayBlackBoxInfo(std::string packageName, std::st
 //EED 15 oct 2012              BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxName);
                
                Package::Pointer k;
+//EED          ComplexBlackBoxDescriptor::Pointer descriptor;
                BlackBoxDescriptor::Pointer descriptor;
+
                std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc;
                k                       = _pkgBrowser->GetFactory()->GetPackage(packageName);
                mapDesc         = k->GetDescriptorMap();                
                descriptor      = mapDesc[boxName];
-               
+               std::vector<std::string> temp;
+               descriptor->GetBoxesInside(tree,temp,1);
+
+
+
+/*CFT
+               for(int i = 0 ; i < temp.size() ; i++){
+                                       std::cout<< "  "<< temp[i] << std::endl;
+               }       
+
+
+               if(temp.size()>=1){
+                               std::cout<< "CAJAS # " << (temp.size()- 3) << std::endl;                        
+                               for(int i = 0 ; i < temp.size()-1 ; i++){
+                                       if(i<3){std::cout<< "  "<< temp[i] << std::endl;}
+                                       else{std::cout<< i+1 << "  "<< temp[i] << " " <<temp[i+1] << std::endl;}
+                               }       
+                       }               
+               if (temp.size()==0){
+                               std::cout<< " Not Complex " << std::endl;
+                       }
+*/
+               /*
+               Package::Pointer k;
+               BlackBoxDescriptor::Pointer descriptor;
+               std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc;
+               k                       = _pkgBrowser->GetFactory()->GetPackage(packageName);
+               std::vector<std::string> temp;
+               _pkgBrowser->GetFactory()->GetPackagesList(temp);
+               for(int ii = 0 ; ii < temp.size() ; ii++)
+               {
+                               std::cout << " packs "<< temp[ii]<< std::endl;
+               }
+               mapDesc         = k->GetDescriptorMap();                
+               descriptor      = mapDesc[boxName];
+               */
                _pkgBrowser->WxGUIBlackBoxListUserOnSelected(descriptor.get());
        }
 }
@@ -571,7 +633,7 @@ void wxGUIEditorGraphicBBS::OnChangeName(wxCommandEvent& event){
 void wxGUIEditorGraphicBBS::OnEditDiagramProperties(wxCommandEvent& event)
 {
        wxDiagramPropertiesEditionDialog* dialog =
-                               new wxDiagramPropertiesEditionDialog(this);
+                               new wxDiagramPropertiesEditionDialog(this, tree);
        dialog->Show();
 }
 
@@ -1069,18 +1131,28 @@ void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event)
 }
 
 //=========================================================================
-
+//EED01
 void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event) 
 {
        wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
                        wxT("Name of input port"));
-       if (nameDialog->ShowModal() == wxID_OK) {
+       if (nameDialog->ShowModal() == wxID_OK) 
+        {
                wxString fileName = nameDialog->GetValue();
-               if (!fileName.IsEmpty()) {
+               if (!fileName.IsEmpty()) 
+                {
                        std::string portName = (const char*) (fileName.mb_str());
-                       _tabsMgr->addActualDiagramComplexInputPort(portName);
-               }
-       }
+                       if ( !boxNameExists(portName) )
+                       {
+                          _tabsMgr->addActualDiagramComplexInputPort(portName);
+                       } else {
+                          wxMessageDialog *dial = new wxMessageDialog(NULL,
+                                      wxT("Impossible to create Box. The name already exists. Please provide another name"),
+                                      wxT("Change name: name already exists"), wxOK | wxICON_EXCLAMATION | wxSTAY_ON_TOP);
+                          dial->ShowModal();
+                       }
+               } // if !fileName
+       } // if namaDialog
 }
 
 //=========================================================================
@@ -1088,13 +1160,24 @@ void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event)
 {
        wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
                        wxT("Name of output port"));
-       if (nameDialog->ShowModal() == wxID_OK) {
+       if (nameDialog->ShowModal() == wxID_OK) 
+        {
                wxString fileName = nameDialog->GetValue();
-               if (!fileName.IsEmpty()) {
+               if (!fileName.IsEmpty()) 
+                {
                        std::string portName = (const char*) (fileName.mb_str());
+                       if ( !boxNameExists(portName) )
+                       {
                        _tabsMgr->addActualDiagramComplexOutputPort(portName);
-               }
-       }
+                       } else {
+                          wxMessageDialog *dial = new wxMessageDialog(NULL,
+                                      wxT("Impossible to create Box. The name already exists. Please provide another name"),
+                                      wxT("Change name: name already exists"), wxOK | wxICON_EXCLAMATION | wxSTAY_ON_TOP);
+                          dial->ShowModal();
+                       }
+
+               } // if !filename
+       } // namaDialog
 }
 
 //=========================================================================
@@ -1139,7 +1222,12 @@ void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event)
                if(userResponse==wxID_OK)
                {
                        std::string path = wx2std (FD->GetPath()) ;
+                       #ifdef WIN32
+                       std::string fname = path + "\\bbtkPackage";
+                       #else
                        std::string fname = path + "/bbtkPackage";
+                       #endif
+                       
                        std::cout << "Path chosen = \"" << FD->GetPath() << "\"" << std::endl;
                        if ( Utilities::FileExists( fname ) )
                        {
@@ -1147,6 +1235,11 @@ void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event)
                                f.open(fname.c_str());
                                std::string pname;
                                f >> pname;
+                               while(pname[0] == '#')
+                               {
+                                       getline(f, pname, '\n');
+                                       f >> pname;
+                               }
                                f.close();
 
                                bbtk::ConfigurationFile::GetInstance().AddPackagePathsAndWrite( path );