#include <creaWx.h>
#include "wx/treectrl.h"
+#include "wx/treebase.h"
#include "CDMUtilities.h"
#include "creaDevManagerIds.h"
#include "wxCDMLibraryDescriptionPanel.h"
#include "wxCDMPackageDescriptionPanel.h"
#include "wxCDMBlackBoxDescriptionPanel.h"
+#include "wxCDMCMakeListsDescriptionPanel.h"
+#include "wxCDMFolderDescriptionPanel.h"
+#include "wxCDMFileDescriptionPanel.h"
#include "wxCDMProjectActionsPanel.h"
#include "wxCDMNewProjectDialog.h"
EVT_BUTTON(ID_BUTTON_NEWPROJECT, wxCDMMainFrame::OnMenuNewProject)
EVT_BUTTON(ID_BUTTON_OPENPROJECT, wxCDMMainFrame::OnMenuOpenProject)
EVT_TREE_SEL_CHANGED(ID_TREE_PROJECTS, wxCDMMainFrame::OnTreeSelectionChanged)
+EVT_COMMAND(wxID_ANY, wxEVT_DISPLAY_CHANGED, wxCDMMainFrame::OnCreationComplete)
END_EVENT_TABLE()
wxCDMMainFrame::wxCDMMainFrame(
return TRUE;
}
+void wxCDMMainFrame::RefreshProject()
+{
+ std::string* result;
+ std::cout << "refreshing project" << std::endl;
+ this->model->RefreshProject(result);
+ std::cout << "rebuilding project tree" << std::endl;
+ this->tree_Projects->BuildTree(this->model->GetModelElements(), this->model->GetProject());
+}
+
void wxCDMMainFrame::CreateMenus()
{
wxMenuBar* menuBar = new wxMenuBar;
}
void wxCDMMainFrame::OnMenuCloseProject(wxCommandEvent& event)
{
+ std::cout << "closing project" << std::endl;
std::string* result;
if(!this->model->CloseProject(result))
{
std::cout << "error closing project: " << *result << std::endl;
wxMessageBox( crea::std2wx(result->c_str()), wxT("Close Project - Error"), wxICON_ERROR);
}
+
tree_Projects->BuildTree(this->model->GetModelElements(), this->model->GetProject());
if(this->panel_Properties != NULL)
//delete old view
if(this->panel_Properties!= NULL)
{
+ auiManager.DetachPane(this->panel_Properties);
this->panel_Properties->Hide();
this->panel_Properties->Destroy();
- auiManager.DetachPane(this->panel_Properties);
-
}
+
//set new view
this->panel_Properties = description;
auiManager.AddPane(panel_Properties, wxCENTER, wxT("Properties"));
event.Skip();
return;
}
- //TODO: CMakeLists
- //TODO: folder
+ //CMakeLists
+ modelCDMCMakeListsFile* elementCMakeLists = dynamic_cast<modelCDMCMakeListsFile*>(element);
+ if(elementCMakeLists != NULL)
+ {
+ //create element description
+ wxCDMCMakeListsDescriptionPanel* description = new wxCDMCMakeListsDescriptionPanel(
+ this,
+ elementCMakeLists,
+ ID_WINDOW_PROPERTIES,
+ wxT("Description Panel"),
+ wxDefaultPosition,
+ wxSize(300, 400),
+ 0
+ );
+ //delete old view
+ if(this->panel_Properties!= NULL)
+ {
+ this->panel_Properties->Hide();
+ this->panel_Properties->Destroy();
+ auiManager.DetachPane(this->panel_Properties);
+
+ }
+ //set new view
+ this->panel_Properties = description;
+ auiManager.AddPane(panel_Properties, wxCENTER, wxT("Properties"));
+ auiManager.Update();
+ event.Skip();
+ return;
+ }
+ //folder
+ modelCDMFolder* elementFolder = dynamic_cast<modelCDMFolder*>(element);
+ if(elementFolder != NULL)
+ {
+ //create element description
+ wxCDMFolderDescriptionPanel* description = new wxCDMFolderDescriptionPanel(
+ this,
+ elementFolder,
+ ID_WINDOW_PROPERTIES,
+ wxT("Description Panel"),
+ wxDefaultPosition,
+ wxSize(300, 400),
+ 0
+ );
+ //delete old view
+ if(this->panel_Properties!= NULL)
+ {
+ this->panel_Properties->Hide();
+ this->panel_Properties->Destroy();
+ auiManager.DetachPane(this->panel_Properties);
+
+ }
+ //set new view
+ this->panel_Properties = description;
+ auiManager.AddPane(panel_Properties, wxCENTER, wxT("Properties"));
+ auiManager.Update();
+ event.Skip();
+ return;
+ }
//TODO: file
- //TODO: main
+ modelCDMFile* elementFile = dynamic_cast<modelCDMFile*>(element);
+ if(elementFile != NULL)
+ {
+ //create element description
+ wxCDMFileDescriptionPanel* description = new wxCDMFileDescriptionPanel(
+ this,
+ elementFile,
+ ID_WINDOW_PROPERTIES,
+ wxT("Description Panel"),
+ wxDefaultPosition,
+ wxSize(300, 400),
+ 0
+ );
+ //delete old view
+ if(this->panel_Properties!= NULL)
+ {
+ this->panel_Properties->Hide();
+ this->panel_Properties->Destroy();
+ auiManager.DetachPane(this->panel_Properties);
+
+ }
+ //set new view
+ this->panel_Properties = description;
+ auiManager.AddPane(panel_Properties, wxCENTER, wxT("Properties"));
+ auiManager.Update();
+ event.Skip();
+ return;
+ }
+
+ //main if not any
//create element description
wxCDMMainDescriptionPanel* description = new wxCDMMainDescriptionPanel(
this,
return;
}
+
+void wxCDMMainFrame::OnCreationComplete(wxCommandEvent& event)
+{
+ std::cout << "inMainFrame " << event.GetInt() << std::endl;
+ this->tree_Projects->SelectItem(event.GetInt());
+ event.Skip();
+}