/* * Copyright (C) 2017 Thales Lima Oliveira * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef FILEHANDING_H #define FILEHANDING_H #include #include #include #include "Workspace.h" #include "ControlEditor.h" #include "ControlElementContainer.h" #include "ElectricCalculation.h" #include "Text.h" #include "XMLParser.h" /** * @class FileHanding * @author Thales Lima Oliveira * @date 05/10/2017 * @brief Save and opens the projects created on disk. * @file FileHanding.h */ class FileHanding { public: FileHanding(); FileHanding(Workspace* workspace); FileHanding(ControlEditor* controlEditor); ~FileHanding(); void SetWorkspace(Workspace* workspace) { m_workspace = workspace; } void SetControlEditor(ControlEditor* controlEditor) { m_controlEditor = controlEditor; } void SaveProject(wxFileName path); bool OpenProject(wxFileName path); void SaveControl(wxFileName path); bool OpenControl(wxFileName path, std::vector& ctrlElementList, std::vector& ctrlConnectionList); void SaveControlElements(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementsNode, ControlElementContainer* ctrlContainer = nullptr); bool OpenControlElements(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementsNode, ControlElementContainer* ctrlContainer = nullptr); protected: Workspace* m_workspace = nullptr; ControlEditor* m_controlEditor = nullptr; }; #endif // FILEHANDING_H