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 # ------------------------------------------------------------------------ */
27 * wxCDMNewProjectDialog.cpp
29 * Created on: 13/11/2012
33 #include "wxCDMNewProjectDialog.h"
35 #include "creaDevManagerIds.h"
37 BEGIN_EVENT_TABLE(wxCDMNewProjectDialog, wxDialog)
38 EVT_BUTTON(ID_BUTTON_NEXT, wxCDMNewProjectDialog::OnCreateProject)
39 EVT_BUTTON(ID_BUTTON_CANCEL, wxCDMNewProjectDialog::OnCancel)
40 EVT_BUTTON(ID_BUTTON_CHOOSE, wxCDMNewProjectDialog::OnChooseLocation)
43 wxCDMNewProjectDialog::wxCDMNewProjectDialog(
46 const wxString& caption,
47 const wxPoint& position,
52 wxCDMNewProjectDialog::Create(parent, id, caption, position, size, style);
55 wxCDMNewProjectDialog::~wxCDMNewProjectDialog()
59 bool wxCDMNewProjectDialog::Create(
62 const wxString& caption,
63 const wxPoint& position,
68 wxDialog::Create(parent, id, caption, position, size, style);
70 this->CreateControls();
75 const wxString wxCDMNewProjectDialog::GetProjectLocation()
77 return this->projectLocation->GetLabel();
79 const wxString wxCDMNewProjectDialog::GetProjectName()
81 return this->projectName->GetValue();
83 const wxString wxCDMNewProjectDialog::GetPackageAuthor()
85 return this->packageAuthor->GetValue();
87 const wxString wxCDMNewProjectDialog::GetPackageDescription()
89 return this->packageDescription->GetValue();
92 void wxCDMNewProjectDialog::CreateControls()
94 wxBoxSizer* v_sizer1 = new wxBoxSizer(wxVERTICAL);
97 wxStaticText* title = new wxStaticText(this, wxID_ANY, wxString("Create a new project"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);//new wxRichTextCtrl(this,wxID_ANY, wxString("Create a new project"), wxDefaultPosition, wxDefaultSize, wxRE_READONLY);
98 v_sizer1->Add(title, 0, wxALIGN_LEFT | wxALL | wxALIGN_CENTER_VERTICAL, 5);
100 wxStaticText* instruction = new wxStaticText(this, wxID_ANY, wxString("Please fill the following details."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
101 v_sizer1->Add(instruction, 0, wxALIGN_LEFT | wxALL | wxALIGN_CENTER_VERTICAL, 5);
103 wxFlexGridSizer* formItems = new wxFlexGridSizer(4,2,9,15);
105 wxStaticText *stxtPrjLoc = new wxStaticText(this, -1, wxT("Project Location"));
106 wxStaticText *stxtPrjName = new wxStaticText(this, -1, wxT("Project Name"));
107 wxStaticText *stxtPrjAuth = new wxStaticText(this, -1, wxT("Default Package's Author (1 word)"));
108 wxStaticText *stxtPrjPkg = new wxStaticText(this, -1, wxT("Default Package's Description (HTML)"));
110 wxBoxSizer* h_sizer1 = new wxBoxSizer(wxHORIZONTAL);
111 wxButton *ddPrjLocBtn = new wxButton(this, ID_BUTTON_CHOOSE, wxString("Choose directory..."));
112 this->projectLocation = new wxStaticText(this, -1, wxString(""));
113 h_sizer1->Add(ddPrjLocBtn,0,wxALIGN_LEFT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5);
114 h_sizer1->Add(this->projectLocation,0,wxALIGN_LEFT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5);
115 h_sizer1->SetMinSize(wxSize(150, 20));
117 this->projectName = new wxTextCtrl(this, -1);
118 this->packageAuthor = new wxTextCtrl(this, -1);
119 this->packageDescription = new wxTextCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
121 formItems->Add(stxtPrjLoc, 0, wxALIGN_CENTER_VERTICAL);
122 formItems->Add(h_sizer1, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
123 formItems->Add(stxtPrjName, 0, wxALIGN_CENTER_VERTICAL);
124 formItems->Add(this->projectName, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
125 formItems->Add(stxtPrjAuth, 0, wxALIGN_CENTER_VERTICAL);
126 formItems->Add(this->packageAuthor, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
127 formItems->Add(stxtPrjPkg);
128 formItems->Add(this->packageDescription, 1, wxEXPAND);
130 formItems->AddGrowableCol(1,1);
131 formItems->AddGrowableRow(3,1);
133 v_sizer1->Add(formItems, 1, wxEXPAND | wxALL, 15);
135 wxBoxSizer* h_sizer2 = new wxBoxSizer(wxHORIZONTAL);
136 h_sizer2->Add(new wxButton(this, ID_BUTTON_NEXT, wxString("Create Project")), 0, wxALL | wxALIGN_CENTER_VERTICAL, 5);
137 h_sizer2->Add(new wxButton(this, ID_BUTTON_CANCEL, wxString("Cancel")), 0, wxALL | wxALIGN_CENTER_VERTICAL, 5);
139 v_sizer1->Add(h_sizer2, 0, wxALIGN_RIGHT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, 30);
142 v_sizer1->SetSizeHints(this);
145 void wxCDMNewProjectDialog::OnCreateProject(wxCommandEvent& event)
149 if(ready && this->projectName->GetValue() == wxString(""))
151 wxMessageBox(wxString("The project name cannot be empty"),_T("Error"),wxOK | wxICON_ERROR);
154 if(ready && this->projectLocation->GetLabel() == wxString(""))
156 wxMessageBox(wxString("The project location cannot be empty"),_T("Error"),wxOK | wxICON_ERROR);
159 if(ready && this->packageAuthor->GetValue() == wxString(""))
161 wxMessageBox(wxString("The project's author cannot be empty"),_T("Error"),wxOK | wxICON_ERROR);
167 this->EndModal(wxID_FORWARD);
173 void wxCDMNewProjectDialog::OnCancel(wxCommandEvent& event)
175 this->EndModal(wxID_CANCEL);
179 void wxCDMNewProjectDialog::OnChooseLocation(wxCommandEvent& event)
181 wxDirDialog* dialog = new wxDirDialog(this, "Choose the location of the new project");
183 this->projectLocation->SetLabel(dialog->GetPath());