![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCore/DtPagePath.h> 00015 #include <vrvUtil/DtVirtualBaseClass.h> 00016 #include <vrvCore/DtPageConfiguration.h> 00017 00018 namespace makVrv 00019 { 00020 class DtPagePath; 00021 class DtDe; 00022 00030 class DT_DLL_VRVCORE DtPageAssembler : public DtVirtualBaseClass 00031 { 00032 00033 public: 00034 00035 friend class DtPageAssemblerCreator; 00036 00038 static DtPageAssembler& instance(DtDe&); 00039 00041 virtual ~DtPageAssembler(); 00042 00044 virtual void assemble(const DtPageConfiguration& configuration); 00045 00048 virtual void assemble(const DtPagePath& pagePath, 00049 const DtPageConfiguration& configuration); 00050 00052 virtual void placeCollectionPages( const DtPageConfiguration& configuration ); 00053 00055 virtual void assembleCollection(const DtPagePath& pagePath, const DtUnicode& pageTitle, 00056 const DtPageConfiguration::PageCollectionState& pageState); 00057 00058 protected: 00059 00060 typedef std::multimap<DtPageConfiguration::PageCollectionLocation, DtPagePath> LocationPathMap; 00061 typedef std::map<int, DtPagePath> PagePathsMap; 00062 00063 DtPageAssembler(DtDe& de); 00064 00066 virtual void assemblePagePath(const DtPagePath& pagePath, 00067 const DtPageConfiguration& configuration); 00068 00070 virtual void assemblePage(const DtPagePath& pagePath); 00071 00073 virtual void updatePage( const DtPagePath& pagePath, const DtPageConfiguration& configuration ); 00074 00076 virtual void updatePage( const DtPagePath& pagePath, const DtPageConfiguration::PageCollectionState& state); 00077 00080 virtual void assembleAllPagesInLocation(const LocationPathMap& locMap, DtPageConfiguration::PageCollectionLocation loc, 00081 const DtPageConfiguration& configuration); 00082 00085 virtual void tabifyPagesInLocation(const LocationPathMap& locMap, DtPageConfiguration::PageCollectionLocation loc, 00086 const DtPageConfiguration& configuration); 00087 00089 virtual void populatePagePathsMap(const LocationPathMap& locMap, DtPageConfiguration::PageCollectionLocation loc, 00090 const DtPageConfiguration& configuration, PagePathsMap& ppMap); 00091 00093 virtual void tabify( const DtPagePath& pagePath1, const DtPagePath& pagePath2 ); 00094 00096 virtual void setSelectedPage(const DtPagePath& pPath); 00097 00098 protected: 00099 DtDe& myDe; 00100 }; 00101 00105 class DT_DLL_VRVCORE DtPageAssemblerCreator : public DtVirtualBaseClass 00106 { 00107 public: 00108 00110 static DtPageAssemblerCreator& instance(DtDe& de); 00111 00113 static void registerInstance(DtDe& de, DtPageAssemblerCreator* creator); 00114 00116 virtual ~DtPageAssemblerCreator(); 00117 00119 virtual DtPageAssembler* create(DtDe& de); 00120 00121 protected: 00122 00124 DtPageAssemblerCreator(); 00125 }; 00126 } 00127