]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxGUIScriptingInterface.cxx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWxGUIScriptingInterface.cxx
index 4bde5cbe221519ef4ac00a8d0683b59571261378..ad1d963e75d1ea9d1ddc14c3d1a4c48d56a67542 100644 (file)
@@ -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 '"<<command<<"'"<<std::endl);
     
     if ( ! system ( command.c_str() ) )
@@ -471,7 +473,7 @@ namespace bbtk
     std::string command;
     command = ConfigurationFile::GetInstance().Get_bin_path();
     command += ConfigurationFile::GetInstance().Get_file_separator();
-    command += "bbRegenerateBoxesLists";
+    command += "bbRegenerateBoxesLists -q";
        bbtkMessage("debug",1,"Executing system command '"<<command<<"'"<<std::endl);
 
        if ( ! system ( command.c_str() ) )
@@ -494,10 +496,10 @@ namespace bbtk
     std::string command;
     command = ConfigurationFile::GetInstance().Get_bin_path();
     command += ConfigurationFile::GetInstance().Get_file_separator();
-    command += "bbRegeneratePackageDoc -a && ";
+    command += "bbRegeneratePackageDoc -a -q && ";
     command += ConfigurationFile::GetInstance().Get_bin_path();
     command += ConfigurationFile::GetInstance().Get_file_separator();
-    command += "bbRegenerateBoxesLists";
+    command += "bbRegenerateBoxesLists -q ";
        bbtkMessage("debug",1,"Executing system command '"<<command<<"'"<<std::endl);
 
        if ( ! system ( command.c_str() ) )
@@ -515,6 +517,62 @@ namespace bbtk
   //================================================================
 
  
+  //================================================================
+  void WxGUIScriptingInterface::OnMenuPlugPackage(wxCommandEvent& WXUNUSED(event))
+  {
+    long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
+    wxDirDialog* FD = 
+      new wxDirDialog( 0, 
+                      _T("Select package directory"),
+                      _T(""),
+                      style);
+    
+    if (FD->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 '"<<command<<"'"<<std::endl);
+       
+       if ( ! system ( command.c_str() ) )
+         {
+           std::string mess("Package '");
+           mess += pname + "' successfully plugged in";
+           wxMessageBox(std2wx(mess),_T("Plug package"),
+                        wxOK | wxICON_INFORMATION);
+         }
+       else 
+         {
+           wxString err(_T("An error occured while running '"));
+           err +=  bbtk::std2wx(command) + _T("'");
+           wxMessageBox(err,_T("Regenerate all"),wxOK | wxICON_ERROR);      
+         }
+      }
+
+  }
+  //================================================================
 
   //================================================================
   void WxGUIScriptingInterface::InterpreterUserViewHtmlPage(const std::string& page)
@@ -682,6 +740,7 @@ namespace bbtk
     EVT_MENU(ID_Menu_RegeneratePackageDoc, WxGUIScriptingInterface::OnMenuRegeneratePackageDoc)
     EVT_MENU(ID_Menu_RegenerateBoxesLists, WxGUIScriptingInterface::OnMenuRegenerateBoxesLists)
     EVT_MENU(ID_Menu_RegenerateAll, WxGUIScriptingInterface::OnMenuRegenerateAll)
+    EVT_MENU(ID_Menu_PlugPackage, WxGUIScriptingInterface::OnMenuPlugPackage)
     EVT_MENU(ID_Menu_Windows_Files, WxGUIScriptingInterface::OnMenuWindowsFiles)
     EVT_MENU(ID_Menu_Windows_Help, WxGUIScriptingInterface::OnMenuWindowsHelp)
     EVT_MENU(ID_Menu_Windows_Messages, WxGUIScriptingInterface::OnMenuWindowsMessages)