]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h
Feature #1666
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / bbtkwxGUIEditorGraphicBBS.h
index a1b3878d127890ce2eac5624f8e00338a06f9cd6..ee35ab0f39ae0c921b19dbb1e34635f221e16e5c 100644 (file)
@@ -1,4 +1,4 @@
-/*=========================================================================                                                                               
+/*=========================================================================
   Program:   bbtk
   Module:    $RCSfile$
   Language:  C++
 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
 *
-*  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 
+*  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. 
+*  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.
-* ------------------------------------------------------------------------ */                                                                         
+* ------------------------------------------------------------------------ */
 
 
 
 /**
- *  \file 
- *  \brief Class bbtk::BlackBox : abstract black-box interface. 
+ *  \file
+ *  \brief Class bbtk::BlackBox : abstract black-box interface.
  */
 
-/**
- * \class bbtk::WxGUIEditorGraphicBBS
- * \brief 
- */
+/****
+* Design and Developpement of BBTK GEditor
+* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+* RaC - 2010
+****/
+
 #ifndef __WxGUIEditorGraphicBBS_h__
 #define __WxGUIEditorGraphicBBS_h__
 
 //Includes same project
 #include "wxTabPanelsManager.h"
-#include "wxart_new.xpm"
+#include "wxBlackBoxEditionDialog.h"
+#include "wxVtkSceneManager.h"
+#include "GlobalConstants.h"
+
+
+#include "wxart_new.xpm" // JPR
+#include "wxart_open.xpm"
+#include "wxart_save.xpm"
+#include "wxart_run.xpm"
+#include "wxart_delete.xpm"
+#include "wxart_centerview.xpm"
+#include "wxart_box.xpm"
+#include "wxart_executablebox.xpm"
+#include "wxart_complexbox.xpm"
+#include "wxart_complexinputport.xpm"
+#include "wxart_complexoutputport.xpm"
+#include "wxart_undo.xpm"
+#include "wxart_redo.xpm"
 
 //Includes creaMaracasVisu
 
@@ -53,6 +71,9 @@
 #include <bbtkWxGUIPackageBrowser2.h>
 #include <bbtkWxGUIHtmlBrowser.h>
 #include <bbtkBlackBoxDescriptor.h>
+#include <bbtkUtilities.h>
+#include <bbtkConfigurationFile.h>
+#include <bbtkSystemTools.h>
 
 //Includes vtk
 
 #include <wx/bitmap.h>
 #include <wx/menu.h>
 #include <wx/dnd.h>
+#include <wx/grid.h>
+
+//Includes std
+#include <iostream>
+#include <fstream>
 
 namespace bbtk
 {
-  
-       class  wxGUIEditorGraphicBBS : public wxFrame
-  {
-  public: 
-         wxGUIEditorGraphicBBS(wxFrame *parent );
-         ~wxGUIEditorGraphicBBS();
+       //RaC: It is important if it exists a double relation
+       //e.g. wxTabPanelsManager includes wxGUIEditorGraphicBBS, and wxGUIEditorGraphicBBS includes wxTabPanelsManager
+       class wxTabPanelsManager;
+       class wxVtkSceneManager;
 
-               void initToolbar(); 
-               void initMenu();
-               void initTabPanelsManager();
-               void initPackageBrowser();
-               void initHelpHTMLBrowser();
-
-               void OnToolLeftClick(wxCommandEvent& event);
-               void OnExit(wxCommandEvent& event);
-
-
-       private:
-               wxAuiManager                                            *_frameAUIMgr;
-               wxTabPanelsManager                                      *_tabsMgr;
-               wxAuiNotebook                                           *_notebook;
-               WxGUIPackageBrowser2                            *_pkgBrowser;
-               WxGUIHtmlBrowser                                        *_helpHtmlBrowser;
-
-               std::string _dataDir;
+       class  wxGUIEditorGraphicBBS : public wxFrame
+       {
+               public:
+                       wxGUIEditorGraphicBBS(wxFrame *parent);
+                       ~wxGUIEditorGraphicBBS();
+
+                       void initToolbar();
+                       void initMenu();
+                       void initTabPanelsManager();
+                       void initPackageBrowser();
+                       void initHelpHTMLBrowser();
+                       wxAuiNotebook* getAuiNotebook();
+
+                       // Display the info of the black box highlighted in the PackageBrowser
+                       void displayBlackBoxInfo(std::string packageName, std::string boxName);
+
+                       // Shows the textStatus in the wxFrame status bar
+                       void updateStatusBar(std::string textStatus);
+
+                       // Executes the BBS script in parameter
+                       void executeScript(std::string script);
+
+                       // Shows the dialog to change the parameters and values of the black box
+                       void editBlackBox(GBlackBoxModel *bbmodel);
+
+                       bool boxNameExists(std::string boxname);
+
+                       // Checks and adds if necessary the .bbg/.bbs extensions
+                       std::string CheckExtension (std::string filename, std::string extension);                       
+                       // Method that can be used to refresh the help and package browser
+                       // RaC TOFIX!!!
+                       void RegenerateAll();
+                       void DoRegeneratePackageDoc(const std::string& pack);
+                       void DoRegenerateBoxesLists();
+
+                       // Refresh the state of buttons and menus when changing for example the mode to edit complex box
+                       void refreshGUIControls();
+                       
+            void SaveActualBBS(std::string filename);
+            void AskComplexBoxConfiguration();
+            void SaveActualComplexBox(std::string filename);
+            void SaveActualDiagram(std::string filename);
+                       void SaveCurrentDiagramAs( ); //DFCH
+                       void SaveTempActualDiagram(const std::string &);//FCY
+
+
+                       // File menu and toolbar events
+                       void OnCreateNewTab(wxCommandEvent& event);
+                       void OnOpenDiagram(wxCommandEvent& event);
+                       void OnSaveActualDiagram(wxCommandEvent& event); //DFCH
+                       void OnSaveAsActualDiagram(wxCommandEvent& event); //DFCH
+                       void OnOpenBBS(wxCommandEvent& event);
+                       void OnSaveActualBBS(wxCommandEvent& event);
+                       void OnSaveActualComplexBox(wxCommandEvent& event);
+                       void OnExecuteActualDiagram(wxCommandEvent& event);
+                       void OnClickBtnExecutableBox(wxCommandEvent& event);
+                       void OnDeleteAllBoxesActualDiagram(wxCommandEvent& event);
+                       void OnCenterViewActualDiagram(wxCommandEvent& event);
+                       void OnClickBtnBox(wxCommandEvent& event);
+                       void OnClickBtnComplexBox(wxCommandEvent& event);
+                       void OnAddComplexBoxInput(wxCommandEvent& event);
+                       void OnAddComplexBoxOutput(wxCommandEvent& event);
+                       void OnExit(wxCommandEvent& event);
+                       void OnHelpBBeditor(wxCommandEvent& event);
+                       void OnUndo(wxCommandEvent& event);
+                       void OnRedo(wxCommandEvent& event);
+                       void OnChangeName(wxCommandEvent& event);
+
+                       // Edit menu events
+                       void OnCopySelectedToComplexDiagram(wxCommandEvent& event);                   
+                       
+
+                       // Tool menu events
+                       void OnCreatePackage(wxCommandEvent& event);
+                       void OnCreateBlackBox(wxCommandEvent& event);
+                       void OnPlugPackage(wxCommandEvent& event);
+                       void OnEditConfig(wxCommandEvent& event);
+                       void OnShowHTMLDoc(wxCommandEvent& event);
+                       void OnCreateIndex(wxCommandEvent& event);
+               
+               
+               
+               
+               private:
+
+                       //AuiManager for the wxWindow
+                       wxAuiManager                                            *_frameAUIMgr;
+
+                       //Class that manages all the tabs in the window
+                       wxTabPanelsManager                                      *_tabsMgr;
+
+                       //Notebook managed by the wxTabPanelsManager
+                       wxAuiNotebook                                           *_notebook;
+
+                       //Instance to the BBTK Package Browser
+                       WxGUIPackageBrowser2                            *_pkgBrowser;
+
+                       //Instance to the BBTK Help Browser
+                       WxGUIHtmlBrowser                                        *_helpHtmlBrowser;
+
+                       //Name of the box and its package that is shown in the browser
+                       std::string                         _actualPkgBrowserBoxName;
+                       std::string                         _actualPkgBrowserPkgName;
+
+               protected:
 
-       protected:
 
-         
  };