2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
8 # This software is governed by the CeCILL-B license under French law and
9 # abiding by the rules of distribution of free software. You can use,
10 # modify and/ or redistribute the software under the terms of the CeCILL-B
11 # license as circulated by CEA, CNRS and INRIA at the following URL
12 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
13 # or in the file LICENSE.txt.
15 # As a counterpart to the access to the source code and rights to copy,
16 # modify and redistribute granted by the license, users are provided only
17 # with a limited warranty and the software's author, the holder of the
18 # economic rights, and the successive licensors have only limited
21 # The fact that you are presently reading this means that you have had
22 # knowledge of the CeCILL-B license and that you accept its terms.
23 # ------------------------------------------------------------------------
26 /*=========================================================================
32 =========================================================================*/
34 /* ---------------------------------------------------------------------
36 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
37 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
39 * This software is governed by the CeCILL-B license under French law and
40 * abiding by the rules of distribution of free software. You can use,
41 * modify and/ or redistribute the software under the terms of the CeCILL-B
42 * license as circulated by CEA, CNRS and INRIA at the following URL
43 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
44 * or in the file LICENSE.txt.
46 * As a counterpart to the access to the source code and rights to copy,
47 * modify and redistribute granted by the license, users are provided only
48 * with a limited warranty and the software's author, the holder of the
49 * economic rights, and the successive licensors have only limited
52 * The fact that you are presently reading this means that you have had
53 * knowledge of the CeCILL-B license and that you accept its terms.
54 * ------------------------------------------------------------------------ */
60 * \brief Class bbtk::BlackBox : abstract black-box interface.
64 * Design and Developpement of BBTK GEditor
65 * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
69 #ifndef __wxTabPanelsManager_h__
70 #define __wxTabPanelsManager_h__
72 #include <wx/aui/auibook.h>
74 #include <wx/string.h>
79 #include "wxGEditorTabPanel.h"
80 #include "wxVtkSceneManager.h"
81 #include "bbtkwxGUIEditorGraphicBBS.h"
89 class wxVtkSceneManager;
90 class wxGEditorTabPanel;
91 class wxGUIEditorGraphicBBS;
93 class wxTabPanelsManager : public wxEvtHandler
98 wxTabPanelsManager(wxGUIEditorGraphicBBS *parent);
99 ~wxTabPanelsManager();
101 wxGUIEditorGraphicBBS* GetParentGUIEditorGraphicBBS() const;
103 void addNewTab(wxString tabName=_T("new_tab"));
104 wxAuiNotebook* getAuiNotebook();
105 wxGEditorTabPanel* getActualTabPanel();
107 void displayBlackBoxInfo(std::string packageName, std::string boxName);
108 void updateStatusBar(std::string textStatus);
110 std::string getActualDiagramBBS(bool wln=false);
111 std::string getActualComplexBoxBBS();
113 void editBlackBox(GBlackBoxModel *bbmodel);
114 void deleteAllBoxesActualDiagram();
115 void centerViewActualDiagram();
116 void saveActualDiagram(std::string &content, const std::string &path); //DFCH
117 void loadDiagram(ifstream &inputStream, const std::string &path); //DFCH
119 void saveTempActualDiagram(const std::string &); //FCY
120 void saveTempandUpdate(const std::string &);
121 void loadTempDiagram(unsigned short un); //FCY
122 unsigned short getUndoState(std::string &);
123 unsigned short getRedoState(std::string &);
124 bool isActualDiagramComplexBox();
125 void setActualDiagramComplexBox(bool val);
126 void addActualDiagramComplexInputPort(std::string portName);
127 void addActualDiagramComplexOutputPort(std::string portName);
128 void copySelectedBBoxesToComplexDiagram();
129 int getNumActualSelectedObjects();
131 void OnTabChanged(wxAuiNotebookEvent& event);
133 // Event handler. Runs in the moment of closing but not closed yet (for that exists the CLOSED event, but not working at all)
134 void OnTabClose(wxAuiNotebookEvent& event);
136 void VerifyLastTabPanel();
138 // Getters and Setters of current diagram
139 void SetCbName(std::string cbName);
140 void SetCbPackageName(std::string packagename);
141 void SetAuthor(std::string author);
142 void SetCategory(std::string category);
143 void SetDescription(std::string description);
144 void SetMessageKind(std::string kind);
145 void SetMessageLevel(std::string level);
146 std::string GetCbName();
147 std::string GetCbPackageName();
148 std::string GetAuthor();
149 std::string GetDescription();
150 std::string GetCategory();
151 std::string GetMessageKind();
152 std::string GetMessageLevel();
154 void SetNameTabPanel(wxString tabpanelname);
155 std::string GetNameTabPanel();
156 std::string GetCurrentTabPanelPath( ); //DFCH
157 int FindTab(std::string filename);
158 bool TryToOpenScriptApplication(std::string packageName ,std::string boxType);
159 void SelectBoxWithPossibleName(std::string nameFilter );
163 // Private Attributes
164 wxGUIEditorGraphicBBS *_parent;
165 map<int, wxGEditorTabPanel*> _panels;
166 wxGEditorTabPanel *_actual;
167 wxAuiNotebook *_notebook;