21
21
#include <wx/file.h>
22
22
#include <wx/dir.h>
23
23
#include <main/controllers/controladorextensiones.h>
24
#include <api/internationalization/internationalization.h>
25
#include <api/ientorno.h>
26
#include <api/icontextoestudio.h>
26
#include <api/ientorno.h>
27
#include <wx/dcbuffer.h>
28
#include <wx/aui/auibar.h>
31
PasoPefilImportacion::PasoPefilImportacion(wxWindow* pParent,IWizard* pWizard, GNC::GCS::IEntorno* pEntorno):PasoPerfilImportacionBase(pParent),IPasoWizard(pWizard)
33
m_pEntorno = pEntorno;
34
m_pControladorModulo = NULL;
33
class ImportProfileToolBar:public wxAuiToolBar
36
ImportProfileToolBar(PasoPefilImportacion* pParent, const wxColor& color = wxColor(255, 255, 255)): wxAuiToolBar(pParent,wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_TEXT),
40
SetToolBitmapSize(wxSize(64,64));
41
AUI_NAMESPACE wxAuiDefaultToolBarArt* pToolArt= new AUI_NAMESPACE wxAuiDefaultToolBarArt();
42
#if !defined(__WXOSX__) && defined(USE_PATCHED_LIBS)
43
pToolArt->SetBaseColor(color);
45
SetBackgroundColour(wxColour(255,255,255));
46
SetArtProvider(pToolArt);
48
this->Connect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ImportProfileToolBar::OnToolClick),NULL, this );
49
this->Connect( wxID_ANY, wxEVT_LEFT_DCLICK, wxCommandEventHandler(ImportProfileToolBar::OnToolDClick),NULL, this );
52
~ImportProfileToolBar()
54
this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ImportProfileToolBar::OnToolClick),NULL, this );
55
this->Disconnect( wxID_ANY, wxEVT_LEFT_DCLICK, wxCommandEventHandler(ImportProfileToolBar::OnToolDClick),NULL, this );
58
void AddTool(const std::string& toolTip, const wxBitmap& icon)
60
wxAuiToolBar::AddTool(idTool++, wxString::FromUTF8(toolTip.c_str()), icon, wxString::FromUTF8(toolTip.c_str()), wxITEM_CHECK);
63
void SelectTool(int defaultDicomizator)
65
for (int i = 1; i < idTool; ++i) {
66
ToggleTool(i, i == defaultDicomizator);
68
if ((defaultDicomizator <1 || defaultDicomizator > idTool) && idTool > 1)
75
void OnToolClick(wxCommandEvent& event)
77
for (int i = 1; i < idTool; ++i) {
78
ToggleTool(i, i == event.GetId());
85
void OnToolDClick(wxCommandEvent& /*event*/)
87
m_pParent->SiguientePaso();
92
for (int i = 1; i < idTool; ++i) {
93
if (wxAuiToolBar::GetToolToggled(i)) {
100
std::string GetNameSelected()
102
for (int i = 1; i < idTool; ++i) {
103
if (wxAuiToolBar::GetToolToggled(i)) {
104
return std::string(GetToolLabel(i).ToUTF8());
110
PasoPefilImportacion* m_pParent;
114
PasoPefilImportacion::PasoPefilImportacion(wxWindow* pParent,IWizard* pWizard):PasoPerfilImportacionBase(pParent),
115
IPasoWizard(pWizard),
116
m_pToolBar(new ImportProfileToolBar(this))
118
m_pControladorModulo = NULL;
120
GetSizer()->Add( 0, 0, 1, wxEXPAND, 5 );
121
GetSizer()->Add(m_pToolBar, 0, wxALIGN_CENTER_HORIZONTAL);
122
GetSizer()->Add( 0, 0, 1, wxEXPAND, 5 );
36
125
GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos();
37
126
for(GNC::ControladorExtensiones::IteradorListaModulos it=listaModulos.begin();it!=listaModulos.end();++it){
38
GNC::GCS::IControladorModulo* modulo = (*it).second;
39
if(modulo->SoportaImportacion()){
40
m_pListaModulos->Append(wxString::FromUTF8(modulo->GetImporterDescription().c_str()));
127
GNC::GCS::IModuleController* modulo = (*it).second;
128
if(modulo->SoportaImportacion()) {
129
m_pToolBar->AddTool(modulo->GetImporterDescription(), modulo->GetImporterIcon());
43
m_pListaModulos->Select(0);
46
134
int defaultDicomizator;
47
135
GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Importacion", "DefaultDicomizator", defaultDicomizator);
48
if (defaultDicomizator < (int)m_pListaModulos->GetCount()) {
49
m_pListaModulos->Select(defaultDicomizator);
136
m_pToolBar->SelectTool(defaultDicomizator);
139
m_pToolBar->Realize();
54
143
PasoPefilImportacion::~PasoPefilImportacion()
57
145
m_pControladorModulo = NULL;
82
170
bool PasoPefilImportacion::Validar(){
83
if(m_pListaModulos->GetSelection()<0){
172
if(m_pToolBar->GetIdSelected()<=0){
84
173
wxMessageBox(_("You must select the import profile"), _("Info"),
85
174
wxOK | wxICON_INFORMATION, this);
89
std::string nombreModulo(m_pListaModulos->GetStringSelection().ToUTF8());
178
std::string nombreModulo(m_pToolBar->GetNameSelected());
91
180
GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos();
92
181
for(GNC::ControladorExtensiones::IteradorListaModulos it=listaModulos.begin();it!=listaModulos.end();++it){
93
GNC::GCS::IControladorModulo* modulo=(*it).second;
182
GNC::GCS::IModuleController* modulo=(*it).second;
94
183
if(modulo->GetImporterDescription() == nombreModulo){
95
184
m_pControladorModulo = modulo;
97
GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Importacion", "DefaultDicomizator", m_pListaModulos->GetSelection());
186
GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Importacion", "DefaultDicomizator", m_pToolBar->GetIdSelected());