From cf155931d4fded21cd2aaaeb0f3ead82067d2bef Mon Sep 17 00:00:00 2001 From: guigues Date: Wed, 15 Oct 2008 13:02:11 +0000 Subject: [PATCH] *** empty log message *** --- kernel/cmake/BBTKConfigurePackage.cmake | 16 ++++- kernel/cmake/bbtkPackage.in | 1 + kernel/src/bbtkConfigurationFile.cxx | 57 ++++++++++++++- kernel/src/bbtkConfigurationFile.h | 8 ++- kernel/src/bbtkWxGUIScriptingInterface.cxx | 81 +++++++++++++++++++--- kernel/src/bbtkWxGUIScriptingInterface.h | 5 +- 6 files changed, 149 insertions(+), 19 deletions(-) create mode 100644 kernel/cmake/bbtkPackage.in diff --git a/kernel/cmake/BBTKConfigurePackage.cmake b/kernel/cmake/BBTKConfigurePackage.cmake index 0d3953f..d2aa0c0 100644 --- a/kernel/cmake/BBTKConfigurePackage.cmake +++ b/kernel/cmake/BBTKConfigurePackage.cmake @@ -1,4 +1,18 @@ - +#--------------------------------------------------------------------------- +# CREATES THE bbtkPackage TEXT FILE +CONFIGURE_FILE( + ${BBTK_CMAKE_DIR}/bbtkPackage.in + ${PROJECT_BINARY_DIR}/bbtkPackage + @ONLY +) + +IF (WIN32) + + INSTALL ( FILES ${PROJECT_BINARY_DIR}/bbtkPackage + DESTINATION "" ) + +ENDIF (WIN32) +#--------------------------------------------------------------------------- #--------------------------------------------------------------------------- diff --git a/kernel/cmake/bbtkPackage.in b/kernel/cmake/bbtkPackage.in new file mode 100644 index 0000000..620f5ac --- /dev/null +++ b/kernel/cmake/bbtkPackage.in @@ -0,0 +1 @@ +@BBTK_PACKAGE_NAME@ diff --git a/kernel/src/bbtkConfigurationFile.cxx b/kernel/src/bbtkConfigurationFile.cxx index 082f2a3..f19f507 100644 --- a/kernel/src/bbtkConfigurationFile.cxx +++ b/kernel/src/bbtkConfigurationFile.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkConfigurationFile.cxx,v $ Language: C++ - Date: $Date: 2008/09/10 07:25:23 $ - Version: $Revision: 1.15 $ + Date: $Date: 2008/10/15 13:02:14 $ + Version: $Revision: 1.16 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -469,6 +469,59 @@ namespace bbtk } //========================================================================= + //========================================================================= + bool ConfigurationFile::AddPackagePathsAndWrite( const std::string& path ) + { + bbtkDebugMessageInc("Config",9, + "ConfigurationFile::AddPackagePathsAndWrite(" + <error != eXMLErrorNone ) + { + std::string mess = GetErrorMessage(res,Get_config_xml_full_path()); + delete res; + bbtkDebugMessage("Config",1,mess<< std::endl); + bbtkError(mess); + } + delete res; + +#ifdef _WIN32 + std::string bbs_path = path + "/bbs"; +#else + std::string bbs_path = path + "/share/bbtk/bbs" ; +#endif + XMLNode BBSPATH = BB.addChild((XMLCSTR)"bbs_path"); + BBSPATH.addText((XMLCSTR)bbs_path.c_str()); + Utilities::replace(bbs_path, INVALID_FILE_SEPARATOR, VALID_FILE_SEPARATOR); + mBbs_paths.push_back(bbs_path); + +#ifdef _WIN32 + std::string pack_path = path + "/bin"; + std::string pack_path = path + "/lib"; +#else + std::string pack_path = path ; +#endif + XMLNode PACKPATH = BB.addChild((XMLCSTR)"package_path"); + PACKPATH.addText((XMLCSTR)pack_path.c_str()); + Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR); + mPackage_paths.push_back(pack_path); + + XMLError err = BB.writeToFile((XMLCSTR)Get_config_xml_full_path().c_str()); + if ( err != eXMLErrorNone ) + { + std::string mess = GetErrorMessage(res,Get_config_xml_full_path()); + bbtkDebugMessage("Config",1,mess<< std::endl); + bbtkError(mess); + } + + return true; + } + //========================================================================= //========================================================================= void ConfigurationFile::GetHelp(int level) const diff --git a/kernel/src/bbtkConfigurationFile.h b/kernel/src/bbtkConfigurationFile.h index 94992f8..47521d9 100644 --- a/kernel/src/bbtkConfigurationFile.h +++ b/kernel/src/bbtkConfigurationFile.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkConfigurationFile.h,v $ Language: C++ - Date: $Date: 2008/09/10 07:25:23 $ - Version: $Revision: 1.8 $ + Date: $Date: 2008/10/15 13:02:14 $ + Version: $Revision: 1.9 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -61,7 +61,7 @@ namespace bbtk { public: - static ConfigurationFile const &GetInstance() + static ConfigurationFile& GetInstance() { static ConfigurationFile f; return f; @@ -104,6 +104,8 @@ namespace bbtk { return mConfig_xml_full_path;} inline const std::string& Get_default_temp_dir() const { return mDefault_temp_dir;} + + bool AddPackagePathsAndWrite( const std::string& package_root_path ); private: void Read(const std::string& fileName); diff --git a/kernel/src/bbtkWxGUIScriptingInterface.cxx b/kernel/src/bbtkWxGUIScriptingInterface.cxx index 4bde5cb..ad1d963 100644 --- a/kernel/src/bbtkWxGUIScriptingInterface.cxx +++ b/kernel/src/bbtkWxGUIScriptingInterface.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIScriptingInterface.cxx,v $ Language: C++ - Date: $Date: 2008/10/09 14:38:57 $ - Version: $Revision: 1.25 $ + Date: $Date: 2008/10/15 13:02:14 $ + Version: $Revision: 1.26 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -57,6 +57,7 @@ namespace bbtk ID_Menu_RegeneratePackageDoc, ID_Menu_RegenerateBoxesLists, ID_Menu_RegenerateAll, + ID_Menu_PlugPackage, ID_Menu_Windows_Files, ID_Menu_Windows_Help, ID_Menu_Windows_Messages, @@ -94,12 +95,13 @@ namespace bbtk wxMenu *menuTools = new wxMenu; menuTools->Append( ID_Menu_CreatePackage, _T("Create &package") ); menuTools->Append( ID_Menu_CreateBlackBox, _T("Create &black box") ); - menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last image graph") ); + menuTools->Append( ID_Menu_PlugPackage, _T("&Plug package") ); menuTools->AppendSeparator(); - menuTools->Append( ID_Menu_RegeneratePackageDoc,_T("&Regenerate package doc") ); - menuTools->Append( ID_Menu_RegenerateBoxesLists,_T("&Regenerate boxes lists") ); - menuTools->Append( ID_Menu_RegenerateAll,_T("&Regenerate all") ); - + menuTools->Append( ID_Menu_RegeneratePackageDoc,_T("Regenerate package &doc") ); + menuTools->Append( ID_Menu_RegenerateBoxesLists,_T("Regenerate boxes &lists") ); + menuTools->Append( ID_Menu_RegenerateAll,_T("Regenerate &all") ); + menuTools->AppendSeparator(); + menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last image graph") ); wxMenu *menuWindows = new wxMenu; menuWindows->AppendCheckItem(ID_Menu_Windows_Files, @@ -448,7 +450,7 @@ namespace bbtk std::string command; command = ConfigurationFile::GetInstance().Get_bin_path(); command += ConfigurationFile::GetInstance().Get_file_separator(); - command += "bbRegeneratePackageDoc " + pack; + command += "bbRegeneratePackageDoc " + pack + " -q"; bbtkMessage("debug",1,"Executing system command '"<ShowModal()==wxID_OK) + { + std::string path = wx2std (FD->GetPath()) ; + std::string fname = path + "/bbtkPackage"; + if ( ! Utilities::FileExists( fname ) ) + { + wxString err(_T("The directory does not contain a 'bbtkPackage' file")); + wxMessageBox(err,_T("Plug package"),wxOK | wxICON_ERROR); + return; + } + + std::ifstream f; + f.open(fname.c_str()); + std::string pname; + f >> pname; + f.close(); + + + bbtk::ConfigurationFile::GetInstance().AddPackagePathsAndWrite( path ); + + std::string command; + command = ConfigurationFile::GetInstance().Get_bin_path(); + command += ConfigurationFile::GetInstance().Get_file_separator(); + command += "bbRegeneratePackageDoc " + pname + " -q && "; + command += ConfigurationFile::GetInstance().Get_bin_path(); + command += ConfigurationFile::GetInstance().Get_file_separator(); + command += "bbRegenerateBoxesLists -q "; + bbtkMessage("debug",1,"Executing system command '"<