]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxGimmickReaderDialog.cpp
#3123creaImageIO Bug New Normal - branch changestoITK3and4
[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( boost::bind( &WxGimmickReaderDialog::OnValid , this, _1 ) );
84     }
85     catch (crea::Exception e)
86     {
87       e.Print();
88       return;
89     }
90
91     mtopsizer->Add( mView,1,wxGROW,0);
92
93     wxSizer* bsizer = this->CreateSeparatedButtonSizer(wxOK|wxCANCEL);
94         /*mOkButton = new wxButton(this, wxID_OK, _T("OK"), wxPoint(170,50));
95         mCancelButton = new wxButton(this, wxID_CANCEL, _T("CANCEL"), wxPoint(210,50));
96         */      mOkButton = (wxButton*)FindWindowById(GetAffirmativeId(), this);
97     mCancelButton = (wxButton*)FindWindowById(GetEscapeId(),      this);
98
99     mOkButton->Enable(false);
100     mtopsizer->Add ( bsizer, 0, wxGROW );
101
102     SetSizer( mtopsizer );     
103  
104     Layout(); 
105   }
106
107   /// Destructor
108   WxGimmickReaderDialog::~WxGimmickReaderDialog()
109   {
110     GimmickDebugMessage(1,"WxGimmickReaderDialog::~WxGimmickReaderDialog"
111                         <<std::endl);
112     if (mView) 
113       {
114         delete mView;
115       }
116     if (mGimmick) 
117       {
118                 mGimmick->Finalize();
119       }
120
121   }
122
123   ///Callback method on a selection
124   void WxGimmickReaderDialog::OnValid(bool t)
125   {
126     mOkButton->Enable(t);
127   }
128
129   //================================================================
130   //BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog)
131   //END_EVENT_TABLE()
132   //================================================================
133
134 } // EO namespace creaImageIO
135