void PHPWorkspaceView::OnSetProjectActive(wxCommandEvent& e) { wxString project = DoGetSelectedProject(); if(project.IsEmpty()) return; PHPWorkspace::Get()->SetProjectActive(project); wxTreeItemIdValue cookie; wxTreeItemId child = m_treeCtrlView->GetFirstChild(m_treeCtrlView->GetRootItem(), cookie); while(child.IsOk()) { ItemData* id = DoGetItemData(child); if(id && id->IsProject()) { id->SetActive(id->GetProjectName() == project); m_treeCtrlView->SetItemBold(child, id->IsActive()); } child = m_treeCtrlView->GetNextChild(m_treeCtrlView->GetRootItem(), cookie); } }
void PHPWorkspaceView::LoadWorkspace() { wxString workspaceName; workspaceName << PHPWorkspace::Get()->GetFilename().GetName(); wxWindowUpdateLocker locker(m_treeCtrlView); m_treeCtrlView->DeleteAllItems(); // Add the root item BitmapLoader* bl = m_mgr->GetStdIcons(); wxTreeItemId root = m_treeCtrlView->AddRoot(workspaceName, bl->GetMimeImageId(PHPWorkspace::Get()->GetFilename().GetFullName()), bl->GetMimeImageId(PHPWorkspace::Get()->GetFilename().GetFullName()), new ItemData(ItemData::Kind_Workspace)); const PHPProject::Map_t& projects = PHPWorkspace::Get()->GetProjects(); // add projects wxStringSet_t files; PHPProject::Map_t::const_iterator iter_project = projects.begin(); for(; iter_project != projects.end(); ++iter_project) { ItemData* data = new ItemData(ItemData::Kind_Project); data->SetProjectName(iter_project->first); data->SetActive(iter_project->second->IsActive()); wxTreeItemId projectItemId = m_treeCtrlView->AppendItem(root, iter_project->second->GetName(), bl->GetMimeImageId(FileExtManager::TypeProject), bl->GetMimeImageId(FileExtManager::TypeProject), data); if(data->IsActive()) { m_treeCtrlView->SetItemBold(projectItemId, true); } DoBuildProjectNode(projectItemId, iter_project->second); } if(m_treeCtrlView->HasChildren(root)) { m_treeCtrlView->Expand(root); } }