2 * wxCDMNewProjectDialog.cpp
4 * Created on: 13/11/2012
8 #include "wxCDMNewProjectDialog.h"
10 #include "creaDevManagerIds.h"
12 BEGIN_EVENT_TABLE(wxCDMNewProjectDialog, wxDialog)
13 EVT_BUTTON(ID_BUTTON_NEXT, wxCDMNewProjectDialog::OnCreateProject)
14 EVT_BUTTON(ID_BUTTON_CANCEL, wxCDMNewProjectDialog::OnCancel)
15 EVT_BUTTON(ID_BUTTON_CHOOSE, wxCDMNewProjectDialog::OnChooseLocation)
18 wxCDMNewProjectDialog::wxCDMNewProjectDialog(
21 const wxString& caption,
22 const wxPoint& position,
27 wxCDMNewProjectDialog::Create(parent, id, caption, position, size, style);
30 wxCDMNewProjectDialog::~wxCDMNewProjectDialog()
34 bool wxCDMNewProjectDialog::Create(
37 const wxString& caption,
38 const wxPoint& position,
43 wxDialog::Create(parent, id, caption, position, size, style);
45 this->CreateControls();
50 const wxString wxCDMNewProjectDialog::GetProjectLocation()
52 return this->projectLocation->GetLabel();
54 const wxString wxCDMNewProjectDialog::GetProjectName()
56 return this->projectName->GetValue();
58 const wxString wxCDMNewProjectDialog::GetPackageAuthor()
60 return this->packageAuthor->GetValue();
62 const wxString wxCDMNewProjectDialog::GetPackageDescription()
64 return this->packageDescription->GetValue();
67 void wxCDMNewProjectDialog::CreateControls()
69 wxBoxSizer* v_sizer1 = new wxBoxSizer(wxVERTICAL);
72 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);
73 v_sizer1->Add(title, 0, wxALIGN_LEFT | wxALL | wxALIGN_CENTER_VERTICAL, 5);
75 wxStaticText* instruction = new wxStaticText(this, wxID_ANY, wxString("Please fill the following details."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
76 v_sizer1->Add(instruction, 0, wxALIGN_LEFT | wxALL | wxALIGN_CENTER_VERTICAL, 5);
78 wxFlexGridSizer* formItems = new wxFlexGridSizer(4,2,9,15);
80 wxStaticText *stxtPrjLoc = new wxStaticText(this, -1, wxT("Project Location"));
81 wxStaticText *stxtPrjName = new wxStaticText(this, -1, wxT("Project Name"));
82 wxStaticText *stxtPrjAuth = new wxStaticText(this, -1, wxT("Default Package's Author (1 word)"));
83 wxStaticText *stxtPrjPkg = new wxStaticText(this, -1, wxT("Default Package's Description (HTML)"));
85 wxBoxSizer* h_sizer1 = new wxBoxSizer(wxHORIZONTAL);
86 wxButton *ddPrjLocBtn = new wxButton(this, ID_BUTTON_CHOOSE, wxString("Choose directory..."));
87 this->projectLocation = new wxStaticText(this, -1, wxString(""));
88 h_sizer1->Add(ddPrjLocBtn,0,wxALIGN_LEFT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5);
89 h_sizer1->Add(this->projectLocation,0,wxALIGN_LEFT | wxLEFT | wxALIGN_CENTER_VERTICAL, 5);
90 h_sizer1->SetMinSize(wxSize(150, 20));
92 this->projectName = new wxTextCtrl(this, -1);
93 this->packageAuthor = new wxTextCtrl(this, -1);
94 this->packageDescription = new wxTextCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
96 formItems->Add(stxtPrjLoc, 0, wxALIGN_CENTER_VERTICAL);
97 formItems->Add(h_sizer1, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
98 formItems->Add(stxtPrjName, 0, wxALIGN_CENTER_VERTICAL);
99 formItems->Add(this->projectName, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
100 formItems->Add(stxtPrjAuth, 0, wxALIGN_CENTER_VERTICAL);
101 formItems->Add(this->packageAuthor, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
102 formItems->Add(stxtPrjPkg);
103 formItems->Add(this->packageDescription, 1, wxEXPAND);
105 formItems->AddGrowableCol(1,1);
106 formItems->AddGrowableRow(3,1);
108 v_sizer1->Add(formItems, 1, wxEXPAND | wxALL, 15);
110 wxBoxSizer* h_sizer2 = new wxBoxSizer(wxHORIZONTAL);
111 h_sizer2->Add(new wxButton(this, ID_BUTTON_NEXT, wxString("Create Project")), 0, wxALL | wxALIGN_CENTER_VERTICAL, 5);
112 h_sizer2->Add(new wxButton(this, ID_BUTTON_CANCEL, wxString("Cancel")), 0, wxALL | wxALIGN_CENTER_VERTICAL, 5);
114 v_sizer1->Add(h_sizer2, 0, wxALIGN_RIGHT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, 30);
117 v_sizer1->SetSizeHints(this);
120 void wxCDMNewProjectDialog::OnCreateProject(wxCommandEvent& event)
124 if(ready && this->projectName->GetValue() == wxString(""))
126 wxMessageBox(wxString("The project name cannot be empty"),_T("Error"),wxOK | wxICON_ERROR);
129 if(ready && this->projectLocation->GetLabel() == wxString(""))
131 wxMessageBox(wxString("The project location cannot be empty"),_T("Error"),wxOK | wxICON_ERROR);
134 if(ready && this->packageAuthor->GetValue() == wxString(""))
136 wxMessageBox(wxString("The project's author cannot be empty"),_T("Error"),wxOK | wxICON_ERROR);
142 this->EndModal(wxID_FORWARD);
148 void wxCDMNewProjectDialog::OnCancel(wxCommandEvent& event)
150 this->EndModal(wxID_CANCEL);
154 void wxCDMNewProjectDialog::OnChooseLocation(wxCommandEvent& event)
156 wxDirDialog* dialog = new wxDirDialog(this, "Choose the location of the new project");
158 this->projectLocation->SetLabel(dialog->GetPath());