]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxGimmickReaderDialog.cpp
#3185 creaImageIO Feature New Normal - Clean code
[creaImageIO.git] / src / creaImageIOWxGimmickReaderDialog.cpp
1 /*
2 # ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
5 #                        pour la Santé)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and 
11 #  abiding by the rules of distribution of free software. You can  use, 
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
13 #  license as circulated by CEA, CNRS and INRIA at the following URL 
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability. 
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------
26 */
27
28
29 #include <creaImageIOWxGimmickReaderDialog.h>
30 #include <creaImageIOSystem.h>
31 #include <creaImageIOGimmick.h>
32 #ifdef _DEBUG
33 #define new DEBUG_NEW
34 #endif
35 namespace creaImageIO
36 {
37   // CTor
38   WxGimmickReaderDialog::WxGimmickReaderDialog(wxWindow *parent, 
39                                                wxWindowID id,
40                                                const std::string i_namedescp, 
41                                                const std::string i_namedb,
42                                                wxString title,
43                                                const wxPoint& pos,
44                                                const wxSize& size,
45                                                int min_dim,
46                                                int max_dim,
47                                                int output_dim,  // never used ?!? // JPR
48                                                int threads)
49  :   wxDialog( parent, 
50                   id, 
51                   title,
52                   pos,
53                   size,
54                   wxRESIZE_BORDER | 
55                   wxSYSTEM_MENU   |
56                   wxCLOSE_BOX     |
57                   wxMAXIMIZE_BOX  | 
58                   wxMINIMIZE_BOX  | 
59                   wxCAPTION  
60                ),
61  //   mGimmick(0),
62      mView(0)
63   {
64     GimmickDebugMessage(1,"WxGimmickReaderDialog::WxGimmickReaderDialog"
65                         <<std::endl);
66     mtopsizer = new wxBoxSizer(wxVERTICAL);
67
68     try {
69
70         mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
71         mGimmick->Initialize(i_namedescp,i_namedb);
72
73         mView = new WxGimmickView(mGimmick,
74                                 this,
75                                 TVID,
76                                 wxDefaultPosition,
77                                 size,
78                                 min_dim,
79                                 max_dim,
80                                 threads);
81         mView->Initialize();
82            // Connect the AddProgress callback
83         mView->ConnectValidationObserver
84                 ( boost::bind( &WxGimmickReaderDialog::OnValid , this, _1 ) );
85     }
86     catch (crea::Exception e)
87     {
88       e.Print();
89       return;
90     }
91     mtopsizer->Add( mView,1,wxGROW,0);
92     wxSizer* bsizer = this->CreateSeparatedButtonSizer(wxOK|wxCANCEL);
93         /*mOkButton = new wxButton(this, wxID_OK, _T("OK"), wxPoint(170,50));
94         mCancelButton = new wxButton(this, wxID_CANCEL, _T("CANCEL"), wxPoint(210,50));
95         */      mOkButton = (wxButton*)FindWindowById(GetAffirmativeId(), this);
96     mCancelButton = (wxButton*)FindWindowById(GetEscapeId(),      this);
97     mOkButton->Enable(false);
98     mtopsizer->Add ( bsizer, 0, wxGROW );
99     SetSizer( mtopsizer );
100     Layout(); 
101   }
102
103   /// Destructor
104   WxGimmickReaderDialog::~WxGimmickReaderDialog()
105   {
106     GimmickDebugMessage(1,"WxGimmickReaderDialog::~WxGimmickReaderDialog"
107                         <<std::endl);
108     if (mView) 
109       {
110         delete mView;
111       }
112     if (mGimmick) 
113       {
114                 mGimmick->Finalize();
115       }
116   }
117
118   ///Callback method on a selection
119   void WxGimmickReaderDialog::OnValid(bool t)
120   {
121     mOkButton->Enable(t);
122   }
123
124   //================================================================
125   //BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog)
126   //END_EVENT_TABLE()
127   //================================================================
128
129 } // EO namespace creaImageIO
130