//---------------------------------------------------------------- bool ProjectItemFile::Load() /** * \brief Loads this project item. Because this is a file, * it will load the project item via the load method of the * registered window class. If the project item is already open * then the load method will reload the information from the file. * \return True on success; false otherwise. **/ { // No window type then abort if (m_windowtype.IsEmpty()) { return (false); } // Find window type in windowlist WindowList* list = Environment::Get()->GetWindowList(); if (!list->IsRegistered(m_windowtype)) { wxLogError(_T("[penv::ProjectItemFile::Load] The window class id '%s' in project item file '%s' is not registered in the environment."), m_windowtype.c_str(), m_name.c_str()); return (false); } // Check if window must be created if (m_windowid.IsEmpty() || !list->ExistsWindow(m_windowid)) { // Create the window Window* window = list->CreateWindow(m_windowtype, this); list->Add(window, true); m_windowid = window->GetId(); if (!window->Load(m_filename.GetPath())) { wxLogError(_T("[penv::ProjectItemFile::Load] Error occured while loading file '%s'."), m_filename.GetPath().c_str()); return (false); } } else { // Bring the window to the front list->ShowWindow(m_windowid, true); } return (true); }