VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/attributesManager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: attributesManager.h,v $ $Revision: 1.2 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #pragma once
00013 
00014 #include <mtl/lispEnv.h>
00015 #include <vrfGuiCore/vrfGuiCore.h>
00016 #include <vrfGuiCore/entityMapperKey.h>
00017 #include <vrfGuiCore/orderedKeyList.h>
00018 
00019 #include <vector>
00020 #include <string>
00021 
00022 namespace makVrf
00023 {
00024    class DT_DLL_VRFGUICORE DtAttributeValuePair
00025    {
00026    public:
00027       DtAttributeValuePair() : myBitPosition(0) {};
00028       DtAttributeValuePair(const DtAttributeValuePair& orig) :
00029          myAttributeName(orig.myAttributeName), myAttributeValue(orig.myAttributeValue), myBitPosition(orig.myBitPosition) {};
00030 
00031       std::string  myAttributeName;
00032       std::string  myAttributeValue;
00033       int      myBitPosition;
00034    };
00035 
00036    typedef std::vector<DtAttributeValuePair> DtAttributeValues;
00037 
00038    class DT_DLL_VRFGUICORE DtAttributeValueInfo
00039    {
00040    public:
00041       DtAttributeValueInfo();
00042       DtAttributeValueInfo(const DtAttributeValueInfo& info);
00043       virtual DtAttributeValueInfo& operator=(const DtAttributeValueInfo& info);
00044 
00045    public:
00046       int                        myBitPosition;
00047       std::string                myAttributeName;
00048       std::vector<std::string>   myAttributeValues;
00049    };
00050 
00051    class DT_DLL_VRFGUICORE DtAttributeInfo : public DtEntityMapperKey
00052    {
00053    public:
00054       DtAttributeInfo(const DtEntityMapperKey& key);
00055       DtAttributeInfo(const DtAttributeInfo& orig) : DtEntityMapperKey(orig),
00056          myAttributeValues(orig.myAttributeValues) {};
00057 
00060       virtual void addAttributeItems(const DtlObjPtr& tailPtr);
00061 
00065       virtual void valuesFromMask(unsigned int mask, DtAttributeValues& result) const;
00066 
00067       virtual const std::vector<DtAttributeValueInfo>& attributeValues() const;
00068 
00069       DtAttributeInfo* clone() const { return new DtAttributeInfo(*this); };
00070 
00071    protected:
00074       virtual void parseAttribute(const DtlObjPtr& attribute);
00075 
00078       virtual void insertAttributeValue(const DtAttributeValueInfo& value);
00079 
00080    protected:
00081       std::vector<DtAttributeValueInfo> myAttributeValues;
00082    };
00083 
00084    class DT_DLL_VRFGUICORE DtAttributesManager
00085    {
00086    public:
00087       DtAttributesManager();
00088       virtual ~DtAttributesManager();
00089 
00090       virtual bool init(const std::string& file);
00091 
00092       static DtlObjPtr parseAttribute(const DtlObjPtr& args, const DtlObjPtr& env);
00093 
00095       virtual void parseAttribute(const DtlObjPtr& args);
00096 
00097       virtual bool addAttributeInfo(DtAttributeInfo* info);
00098 
00103       virtual void valuesFromMask(const DtEntityMapperKey& type, unsigned int mask,
00104          DtAttributeValues& result) const;
00105 
00106       virtual DtAttributeInfo* attributeInfo(const DtEntityMapperKey& key) const;
00107 
00108    protected:
00110       virtual char* attributeString() const = 0;
00111 
00113       virtual DtAttributeInfo* createAttributeInfo(const DtEntityMapperKey& key) const;
00114 
00115    protected:
00116       DtOrderedKeyList<DtAttributeInfo*> myAttributeInfo;
00117    };
00118 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)