]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMMainFrame.cpp
Feature #1711
[crea.git] / lib / creaDevManagerLib / wxCDMMainFrame.cpp
index 94a7a38cd77f1569e217b4fb9160e9ec21d6d0f7..98ff113ef689c82150b9145d44fd993bef9ce14f 100755 (executable)
@@ -47,6 +47,7 @@
 #include "wxCDMCMakeListsDescriptionPanel.h"
 #include "wxCDMFolderDescriptionPanel.h"
 #include "wxCDMFileDescriptionPanel.h"
+#include "wxCDMPackageManagerPanel.h"
 
 #include "wxCDMProjectActionsPanel.h"
 #include "wxCDMNewProjectDialog.h"
@@ -115,6 +116,11 @@ bool wxCDMMainFrame::Create(
   return TRUE;
 }
 
+modelCDMMain* wxCDMMainFrame::GetModel() const
+{
+  return this->model;
+}
+
 void wxCDMMainFrame::RefreshProject()
 {
   std::string* result;
@@ -607,6 +613,13 @@ void wxCDMMainFrame::OnMenuAboutCreatis(wxCommandEvent& event)
 void wxCDMMainFrame::OnTreeSelectionChanged(wxTreeEvent& event)
 {
   std::cout << "New Tree Selection" << std::endl;
+
+  if(event.GetId() != 0)
+    {
+      event.Skip();
+    }
+
+
   //get selected element
   wxTreeItemId elementId = event.GetItem();
 
@@ -833,7 +846,69 @@ void wxCDMMainFrame::OnTreeSelectionChanged(wxTreeEvent& event)
 
 void wxCDMMainFrame::OnCreationComplete(wxCommandEvent& event)
 {
-  std::cout << "inMainFrame " << event.GetInt() << std::endl;
-  this->tree_Projects->SelectItem(event.GetInt());
+  std::cout << "inMainFrame id: " << event.GetId() << ", tree element: "<< event.GetInt() << std::endl;
+  switch(event.GetId() != 0)
+  {
+  case 0:
+    this->tree_Projects->SelectItem(event.GetInt(), false);
+    this->tree_Projects->SelectItem(event.GetInt(), true);
+    break;
+  case 1:
+    wxPanel* description = NULL;
+    if(event.GetString() == wxT("manage_packages"))
+      {
+        description = new wxCDMPackageManagerPanel(
+            this,
+            this->model->GetProject(),
+            ID_WINDOW_PROPERTIES,
+            wxT("Description Panel"),
+            wxDefaultPosition,
+            wxSize(600, 400),
+            0
+        );
+      }
+    else if(event.GetString() == wxT("manage_libraries"))
+      {
+        description = new wxCDMLibDescriptionPanel(
+            this,
+            this->model->GetProject()->GetLib(),
+            ID_WINDOW_PROPERTIES,
+            wxT("Description Panel"),
+            wxDefaultPosition,
+            wxSize(600, 400),
+            0
+        );
+      }
+    else if(event.GetString() == wxT("manage_applications"))
+      {
+        description = new wxCDMAppliDescriptionPanel(
+            this,
+            this->model->GetProject()->GetAppli(),
+            ID_WINDOW_PROPERTIES,
+            wxT("Description Panel"),
+            wxDefaultPosition,
+            wxSize(600, 400),
+            0
+        );
+      }
+
+    if(this->panel_Properties!= NULL)
+      this->panel_Properties->Hide();
+
+    auiManager.AddPane(description, wxAuiPaneInfo().Center().Name(wxT("panel_Properties")).Caption(wxT("Properties")).BestSize(600,400));
+    auiManager.Update();
+
+    //delete old view
+    if(this->panel_Properties!= NULL)
+      {
+        this->panel_Properties->Destroy();
+        auiManager.DetachPane(this->panel_Properties);
+      }
+    //set new view
+
+    this->panel_Properties = description;
+    auiManager.Update();
+    break;
+  }
   event.Skip();
 }