GME  13
MakeKindClosure.h
Go to the documentation of this file.
00001 #if(0) // this class is not used for smart copy anymore
00002 #ifndef KIND_CLOSURE_H
00003 #define KIND_CLOSURE_H
00004 
00005 #include "MakeClosure.h"
00006 
00007 class CKindSelectClosure : public CMakeClosure
00008 {
00009  public:
00010         CKindSelectClosure
00011                         ( IMgaFCOs *fcos 
00012                         , IMgaFolders *fols
00013                         , int refs = 1
00014                         , int conns = 1
00015                         , int sets = 1
00016                         )
00017                 : CMakeClosure
00018                         ( fcos
00019                         , fols
00020                         , 0 //ref
00021                         , 0 //refd 
00022                         , 0 //conn
00023                         , 0 //refportconn
00024                         , 0 //set_mem
00025                         , 0 //mem_of_set
00026                         , 1 //cont
00027                         , 0 //part_of_mod
00028                         , 1 //fold_cont
00029                         , 0 //part_of_fold
00030                         , 0 //base_type
00031                         , 0 //derived_type
00032                         , LIB_STUBS //into_libr
00033                         , 3 //container_opt( 3)
00034                         , 1 //direction_opt
00035                         , -1 //all kinds
00036                         , -1 //don't mark
00037                         )
00038                 , m_bRefs( refs == 1)
00039                 , m_bConns( conns == 1)
00040                 , m_bSets( sets == 1)
00041                 , m_peculiarFolds()
00042                 , m_peculiarFcos()
00043         { }
00044 
00045         ~CKindSelectClosure()
00046         {
00047                 m_peculiarFolds.clear();
00048                 m_peculiarFcos.clear();
00049         }
00050 
00051         /*void getSpecFCOs( IMgaFCOs **spec_fcos);
00052         void getSpecFolders( IMgaFolders **spec_folds);*/
00053 
00054         /*virtual*/ void procObj( IMgaObject* obj);
00055         /*virtual*/ bool isValidSelection();
00056         /*virtual*/ bool postValidateSelection();
00057         /*virtual*/ void preProcess();
00058         /*virtual*/ void postProcess();
00059         std::string m_iniSelPath;
00060         std::string m_accKind; // to store the special container kind the closure has been initiated from
00061  protected:
00062         bool m_bRefs;
00063         bool m_bConns;
00064         bool m_bSets;
00065         
00066         CComObjPtrVector<IMgaFolder> m_peculiarFolds;
00067         CComObjPtrVector<IMgaFCO> m_peculiarFcos; 
00068 };
00069 
00070 
00071 class CContainerSelectSomeKindClosure : public CKindSelectClosure
00072 {
00073  public:
00074         CContainerSelectSomeKindClosure
00075                         ( IMgaFCOs *fcos 
00076                         , IMgaFolders *fols
00077                         , int refs = 1
00078                         , int conns = 1
00079                         , int sets = 1
00080                         )
00081                 : CKindSelectClosure
00082                         ( fcos
00083                         , fols
00084                         , refs
00085                         , conns
00086                         , sets
00087                         )
00088         { }
00089 
00090         /*virtual*/ bool isValidSelection();
00091         /*virtual*/ void postProcess();
00092  protected:
00093 
00094 };
00095 
00096 struct ConnsLast
00097 {
00098         bool operator()( const CComObjPtr<IMgaFCO>& p1, const CComObjPtr<IMgaFCO>& p2) const;
00099 };
00100 
00101 #endif // KIND_CLOSURE_H
00102 #endif