X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMFolder.h;h=d1b4be54f7c6a148ecc92baecd40ca17a4123822;hb=bae167768b5d3ccae6ec9b04c844d80e0368a52d;hp=fe88055eaa2afe4ca116503e3b580acd2b6e4b5e;hpb=f0d6beb7af51921d5245cd04e307e69993044dfc;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMFolder.h b/lib/creaDevManagerLib/modelCDMFolder.h index fe88055..d1b4be5 100644 --- a/lib/creaDevManagerLib/modelCDMFolder.h +++ b/lib/creaDevManagerLib/modelCDMFolder.h @@ -40,25 +40,91 @@ #include "modelCDMIProjectTreeNode.h" #include "modelCDMCMakeListsFile.h" +#include "modelCDMCodeFile.h" +#include "modelCDMBBSFile.h" +#include "modelCDMBBGFile.h" +/** + * Class representing a folder in the project hierarchy. + */ class modelCDMFolder : public modelCDMIProjectTreeNode { public: + /** + * Default constructor. + */ modelCDMFolder(); - modelCDMFolder(const std::string& path, const int& level = 3); + /** + * Constructor of the folder node. + * @param parent Parent node. + * @param path Full path of the folder node. + * @param name Folder name of the folder node. + * @param level Hierarchy level of the folder node in the project. + */ + modelCDMFolder(modelCDMIProjectTreeNode* parent, const std::string& path, const std::string& name, const int& level = 3); + /** + * Destructor. + */ ~modelCDMFolder(); - bool CreateFolder( + /** + * Returns the reference to the folder node's CMakeLists file if it exists. + * @return Reference to the CMakeLists file or NULL. + */ + modelCDMCMakeListsFile* GetCMakeLists() const; + /** + * Returns an array with the containing folder children of the actual folder node. + * @return Array with references to children folder nodes. + */ + std::vector GetFolders() const; + + /** + * Creates a class (.h and .cpp files) in the folder node. It creates the files in the model as well as in the system. + * @param name Name of the class to create. + * @return True if the operation was successful. + */ + bool CreateClass(const std::string& name); + + /** + * Creates a folder in the folder node. It creates the folder in the model as well as in the system. + * @param name Name of the folder to create. + * @param result Result message of the operation. + * @return True if the operation was successful. + */ + modelCDMFolder* CreateFolder( const std::string& name, - std::string*& result, - const std::string& path = "/" + std::string*& result ); + /** + * Opens the CMakeLists file in the default code editor. + * @param result Result message of the operation. + * @return True if the operation was successful. + */ bool OpenCMakeListsFile(std::string* & result); + /** + * Refreshes the folder node structure. deletes deleted files and folders, and adds created files and folders. + * @param result Result message of the operation + * @return True if the operation was successful. + */ virtual const bool Refresh(std::string*& result); + /** + * Returns wether the CMakeLists attribute is different from NULL or not. + * @return True if the MakeLists attribute is different from NULL. + */ + bool HasCMakeLists(); + +protected: + /** + * Reference to the folder node's CMakeLists. + */ + modelCDMCMakeListsFile* CMakeLists; private: + /** + * Reference array to the children folders. + */ std::vector folders; - modelCDMCMakeListsFile* CMakeLists; + }; #endif /* MODELCDMFOLDER_H_ */