# 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.
# ------------------------------------------------------------------------
-*/
+ */
/*
#include "modelCDMIProjectTreeNode.h"
#include <vector>
+#include <map>
+/**
+ * Project Tree Control. Shows a project's content in a hierarchy tree control.
+ */
class wxCDMProjectsTreeCtrl: public wxTreeCtrl
{
public:
+ /**
+ * Project Tree Control Constructor.
+ * @param parent Parent window reference.
+ * @param id Control ID, by default wxID_ANY.
+ * @param pos Control position. By default wxDefaultPosition.
+ * @param size Control size. By default wxDefaultSize.
+ * @param style Control style. By default wxTR_DEFAULT_STYLE.
+ * @param validator Validator. By default wxDefaultValidator.
+ * @param name Control Name. By default "Projects tree".
+ */
wxCDMProjectsTreeCtrl(
wxWindow *parent,
wxWindowID id=wxID_ANY,
const wxValidator &validator=wxDefaultValidator,
const wxString &name=_("Projects tree")
);
+ /**
+ * Destructor.
+ */
~wxCDMProjectsTreeCtrl();
+ /**
+ * Project Tree Control Creator.
+ * @param parent Parent window reference.
+ * @param id Control ID, by default wxID_ANY.
+ * @param pos Control position. By default wxDefaultPosition.
+ * @param size Control size. By default wxDefaultSize.
+ * @param style Control style. By default wxTR_DEFAULT_STYLE.
+ * @param validator Validator. By default wxDefaultValidator.
+ * @param name Control Name. By default "Projects tree".
+ * @return True if the creation was successful.
+ */
bool Create(
- wxWindow *parent,
- wxWindowID id=wxID_ANY,
- const wxPoint &pos=wxDefaultPosition,
- const wxSize &size=wxDefaultSize,
- long style=wxTR_DEFAULT_STYLE,
- const wxValidator &validator=wxDefaultValidator,
- const wxString &name=_("Projects tree")
+ wxWindow *parent,
+ wxWindowID id=wxID_ANY,
+ const wxPoint &pos=wxDefaultPosition,
+ const wxSize &size=wxDefaultSize,
+ long style=wxTR_DEFAULT_STYLE,
+ const wxValidator &validator=wxDefaultValidator,
+ const wxString &name=_("Projects tree")
);
- void BuildTree(modelCDMProject* tree = NULL);
+ /**
+ * Builds the tree hierarchy with the given model elements.
+ */
+ void BuildTree(std::map< wxCDMTreeItemId, modelCDMIProjectTreeNode* >& modelElements, modelCDMProject* tree = NULL);
+
private:
- void BuildTree(const std::vector<modelCDMIProjectTreeNode*>& tree, wxTreeItemId parent);
+
+ /**
+ * A Icon ID.
+ */
+ int ID_AIcon;
+ /**
+ * Ap Icon ID.
+ */
+ int ID_ApIcon;
+ /**
+ * BB Icon ID.
+ */
+ int ID_BBIcon;
+ /**
+ * C Icon ID.
+ */
+ int ID_Cicon;
+ /**
+ * CM Icon ID.
+ */
+ int ID_CMIcon;
+ /**
+ * Fd Icon ID.
+ */
+ int ID_FdIcon;
+ /**
+ * Fl Icon ID.
+ */
+ int ID_FlIcon;
+ /**
+ * Lb Icon ID.
+ */
+ int ID_LbIcon;
+ /**
+ * L Icon ID.
+ */
+ int ID_LIcon;
+ /**
+ * Pr Icon ID.
+ */
+ int ID_PrIcon;
+ /**
+ * Pk Icon ID.
+ */
+ int ID_PkIcon;
+
+ /**
+ * Builds the tree with the hierarchy given and fills the modelElements map.
+ * @param tree Root node of the tree.
+ * @param modelElements Id->node map.
+ * @param parent ID of the root node ID.
+ */
+ void BuildTree(const std::vector<modelCDMIProjectTreeNode*>& tree, std::map< wxCDMTreeItemId, modelCDMIProjectTreeNode* >& modelElements, const wxCDMTreeItemId& parent);
+ /**
+ * Retrieves the icon ID of the given node by its type.
+ * @param node Node to search its icon.
+ * @return Icon ID
+ */
+ int GetIconId(modelCDMIProjectTreeNode* node);
};
#endif /* WXCDMPROJECTSTREECTRL_H_ */