X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMMain.h;h=d028487404e97f36190ad0975ad90eebdda826bb;hb=741b9c1d03c7984f7ac4a39188e2bb114471f579;hp=6fd8e5d5a4ab5f4b79c40cf1b2d408b25f8d771a;hpb=f887a0013d53146a6a280a0f88514df95ea6bfda;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMMain.h b/lib/creaDevManagerLib/modelCDMMain.h index 6fd8e5d..d028487 100644 --- a/lib/creaDevManagerLib/modelCDMMain.h +++ b/lib/creaDevManagerLib/modelCDMMain.h @@ -1,26 +1,129 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ + */ + /* * modelCDMMain.h * * Created on: 13/11/2012 - * Author: daniel + * Author: Daniel Felipe Gonzalez Obando */ #ifndef MODELCDMMAIN_H_ #define MODELCDMMAIN_H_ +#include +#include + +#include +#include + +#include "modelCDMIProjectTreeNode.h" #include "modelCDMProject.h" +/** + * Class representing the model of the project manager. + */ class modelCDMMain { public: + /** + * Default constructor. + */ modelCDMMain(); + /** + * Destructor. + */ ~modelCDMMain(); - modelCDMProject* GetProject(); - void SetProject(modelCDMProject* project); + /** + * Retrieves the current active project. + * @return Reference to the current active project, if there's no active project NULL is returned. + */ + modelCDMProject* GetProject() const; + /** + * Retrieves the map of all the nodes inside the current active project. + * @return Map with ids and node reference of the project. + */ + std::map< wxCDMTreeItemId, modelCDMIProjectTreeNode* >& GetModelElements(); + + + /** + * Creates a new project and sets it as the current active project. This method creates a new project model and also creates a project in the system. + * @param name Name of the new project. + * @param location Path where the project is to be created. + * @param result Result message. + * @param author Default Package Authors' names. + * @param description Description of the default package. + * @return True if the operation was successful. + */ + bool CreateProject( + const std::string& name, + const std::string& location, + std::string*& result, + const std::string& author = "unknown", + const std::string& description = "no description" + ); + /** + * Opens an existing project given the source or the binaries folder. + * @param path Path to the project source or binaries folder. + * @param result Result message. + * @return True if the operation was successful. + */ + bool OpenProject( + const std::string& path, + std::string*& result + ); + /** + * Refreshes the currently active project structure. + * @param result Result message. + * @return True if the operation was successful. + */ + bool RefreshProject( + std::string*& result + ); + /** + * Closes the currently active project. This method deletes the project model but doesn't erase the project from the system. + * @param result Result message. + * @return True if the operation was successful. + */ + bool CloseProject( + std::string*& result + ); + private: + /** + * Currently active project reference. + */ modelCDMProject* project; + /** + * Map of all the elements of the currently active project and their IDs. + */ + std::map< wxCDMTreeItemId, modelCDMIProjectTreeNode* > modelElements; };