+ wxTextEntryDialog* appDlg = new wxTextEntryDialog(
+ this,
+ wxT("Enter the new application name (NO white spaces)"),
+ wxT("New Application - creaDevManager"),
+ wxT(""),
+ wxOK | wxCANCEL
+ );
+
+ if (appDlg->ShowModal() == wxID_OK)
+ {
+ std::string applicationName = crea::wx2std(appDlg->GetValue());
+ //check name
+ if(applicationName.size() > 0)
+ {
+ wxArrayString types;
+ types.Add(wxT("Console Application"));
+ types.Add(wxT("GUI Application (wxWidgets)"));
+ int applicationType = wxGetSingleChoiceIndex(
+ wxT("Select the application type"),
+ wxT("New Application - creaDevManager"),
+ types
+ );
+
+ if (applicationType != -1)
+ {
+ std::string* result;
+ //create library
+ modelCDMIProjectTreeNode* application = this->appli->CreateApplication(applicationName, applicationType ,result);
+ //check library created
+ if(application == NULL)
+ {
+ wxMessageBox(crea::std2wx(*result),_T("New Application - Error!"),wxOK | wxICON_ERROR);
+ event.Skip();
+ return;
+ }
+ wxMessageBox(crea::std2wx("Application successfully created."),_T("New Application - Success!"),wxOK | wxICON_INFORMATION);
+
+ //refreshing tree and description
+ //send event instead of calling parent to avoid crashing
+
+ ((wxCDMMainFrame*)this->GetParent())->RefreshProject();
+
+ wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_DISPLAY_CHANGED);
+ newEvent->SetClientData(application);
+ wxPostEvent(this->GetParent(), *newEvent);
+ event.Skip();
+ }
+ }
+ else
+ {
+ wxMessageBox(crea::std2wx("Invalid application name, please try again with a valid name."),_T("New Application - Error!"),wxOK | wxICON_INFORMATION);
+ }
+ }
+}
+
+void wxCDMAppliDescriptionPanel::OnBtnEditCMakeLists(wxCommandEvent& event)
+{
+ std::string* result;
+ if(!this->appli->OpenCMakeListsFile(result))
+ wxMessageBox(crea::std2wx(*result),_T("Open CMakeLists File - Error!"),wxOK | wxICON_ERROR);
+
+ wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
+
+ if(this->appli->GetCMakeLists() != NULL)
+ {
+ newEvent->SetClientData(this->appli->GetCMakeLists());
+ newEvent->SetId(0);
+ wxPostEvent(this->GetParent(), *newEvent);
+ }
+}
+
+void wxCDMAppliDescriptionPanel::OnLnkApplicationSelect(wxHyperlinkEvent& event)
+{
+ modelCDMApplication* applicationFound = NULL;
+ std::vector<modelCDMApplication*> applications = this->appli->GetApplications();
+ for (int i = 0; i < (int)(applications.size()); i++)