]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMMainFrame.cpp
Feature #1711
[crea.git] / lib / creaDevManagerLib / wxCDMMainFrame.cpp
index ad645b9bffed49b1505e2a134fb2f13c0161d243..775cfc75938dad5e5ee90cd1a3b63eed99d0cac0 100755 (executable)
@@ -31,6 +31,7 @@
 #include <iostream>
 
 #include <creaWx.h>
+#include "wx/treectrl.h"
 #include "CDMUtilities.h"
 
 #include "creaDevManagerIds.h"
@@ -65,6 +66,7 @@ EVT_MENU(ID_MENU_ABOUT_CREADEVMANAGER, wxCDMMainFrame::OnMenuAboutCreaDevManager
 EVT_MENU(ID_MENU_ABOUT_CREATIS, wxCDMMainFrame::OnMenuAboutCreatis)
 EVT_BUTTON(ID_BUTTON_NEWPROJECT, wxCDMMainFrame::OnMenuNewProject)
 EVT_BUTTON(ID_BUTTON_OPENPROJECT, wxCDMMainFrame::OnMenuOpenProject)
+EVT_TREE_SEL_CHANGED(ID_TREE_PROJECTS, wxCDMMainFrame::OnTreeSelectionChanged)
 END_EVENT_TABLE()
 
 wxCDMMainFrame::wxCDMMainFrame(
@@ -224,13 +226,18 @@ void wxCDMMainFrame::OnMenuNewProject(wxCommandEvent& event)
           result,
           crea::wx2std(dialog->GetPackageAuthor()),
           crea::wx2std(dialog->GetPackageDescription())
-          ))
+      ))
         {
           wxMessageBox(crea::std2wx(*result),_T("New Project - Error!"),wxOK | wxICON_ERROR);
+          event.Skip();
+          return;
         }
 
       //populate tree control
       tree_Projects->BuildTree(this->model->GetProject());
+      tree_Projects->SelectItem(this->model->GetProject()->GetId());
+      //TODO: change description panel
+      //TODO: change project's actions panel
       auiManager.Update();
 
       wxMessageBox(_T("New Project created!"),_T("New Project - Success!"), wxOK | wxICON_INFORMATION);
@@ -261,6 +268,7 @@ void wxCDMMainFrame::OnMenuOpenProject(wxCommandEvent& event)
 
       //populate tree control
       tree_Projects->BuildTree(this->model->GetProject());
+      tree_Projects->SelectItem(this->model->GetProject()->GetId());
       auiManager.Update();
     }
 
@@ -273,7 +281,11 @@ void wxCDMMainFrame::OnMenuOpenRecent(wxCommandEvent& event)
 }
 void wxCDMMainFrame::OnMenuCloseProject(wxCommandEvent& event)
 {
-  std::cerr << "Event OnMenuCloseProject not implemented" << std::endl;
+  std::string* result;
+  if(!this->model->CloseProject(result))
+    {
+      wxMessageBox( crea::std2wx(result->c_str()), wxT("Close Project - Error"), wxICON_ERROR);
+    }
   event.Skip();
 }
 void wxCDMMainFrame::OnMenuCloseAllProjects(wxCommandEvent& event)
@@ -296,7 +308,12 @@ void wxCDMMainFrame::OnMenuExit(wxCommandEvent& event)
 //Edit Menu
 void wxCDMMainFrame::OnMenuRefreshProject(wxCommandEvent& event)
 {
-  std::cerr << "Event OnMenuRefreshProject not implemented" << std::endl;
+  std::string* result;
+  if(!model->RefreshProject(result))
+    {
+      wxMessageBox( crea::std2wx(result->c_str()), wxT("Refresh Project - Error"), wxICON_ERROR);
+    }
+  //TODO: Show possible problems in CMakeLists files
   event.Skip();
 }
 void wxCDMMainFrame::OnMenuMenuCut(wxCommandEvent& event)
@@ -378,3 +395,9 @@ void wxCDMMainFrame::OnMenuAboutCreatis(wxCommandEvent& event)
   std::cerr << "Event OnMenuAboutCreatis not implemented" << std::endl;
   event.Skip();
 }
+
+void wxCDMMainFrame::OnTreeSelectionChanged(wxTreeEvent& event)
+{
+  std::cerr << "Event OnTreeSelectionChange not implemented" << std::endl;
+  event.Skip();
+}