예제 #1
0
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);
    }
}
예제 #2
0
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);
    }
}