// aplFolderTreeItem.h

#include "aplTreeItem.h"

//class CaplProductTreeItem;
#ifndef  APL_FOLDER_ITEM_DEFINITION
#define  APL_FOLDER_ITEM_DEFINITION

class CaplProductTreeItem;
class CaplFolderTreeItem : public CaplTreeItem
{
        //Attributes
public:
	CaplTreeItem *m_parent;
	CaplInstance *m_inst;
	CaplInstance *m_folder; //папка, в содержимое которой входит (т.е. как ярлык)
	CaplInstance *m_classifier;
	aplExtent m_sub_folders;
	aplExtent m_hided_messages;
	bool m_bCopyOnPaste;
	bool m_bIsParent4Folder;  // true,если папка показана как та, в которую входит конкретная
	// Methods
public: 
	bool ShowContentsP();
    CaplFolderTreeItem(CTreeCtrl *tree=0, CPSMDoc *doc=0,
		CaplTreeItem *parent=0, CaplInstance *instance=0);
	~CaplFolderTreeItem(){RemoveFromParenContents(m_inst);}
    bool GetName(CString &name);
    bool RefreshItem();
	bool RefreshAllThisFolderItem();
	virtual void GetAccessedInstances(aplExtent &ext);
    bool TrackPopupMenu(CWnd *wnd, CPoint &point, UINT view_mode= APLICM_NORMALE);
    bool CreateTreeItem(HTREEITEM parent_item);
    bool Expand(UINT action);
    bool ShowInListCtrl(CListCtrl *list);
	bool ShowContents();
	void ShowCmd(long cmd);
	//void ShowToolBarButton(CToolBarCtrl *tb); 
	BOOL ShowToolBarButton(CCmdUI* pCmdUI);

	bool PasteItem(CaplTreeItem *item, CPoint *point=0);
	bool PasteFile(LPCTSTR file, CPoint *point);
	bool RefreshAllDocs();

protected:
	void ShowProperties();

	void CreateProduct(CaplProductTreeItem *baseitem=0);
	void CreateBP();
	void CreateChange();
	void CreateBPInst();
	void CreateProject();
	void CreateRefusal();
};

#endif