]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/modelCDMFolder.h
Feature #1711 CreaDevManager application implementation
[crea.git] / lib / creaDevManagerLib / modelCDMFolder.h
index fe88055eaa2afe4ca116503e3b580acd2b6e4b5e..d1b4be54f7c6a148ecc92baecd40ca17a4123822 100644 (file)
 
 #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<modelCDMFolder*> 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<modelCDMFolder*> folders;
-  modelCDMCMakeListsFile* CMakeLists;
+
 };
 
 #endif /* MODELCDMFOLDER_H_ */