6 #include <MMgt_TShared.hxx>
8 #include <TCollection_AsciiString.hxx>
10 #include <TColStd_HArray1OfInteger.hxx>
11 #include <TColStd_HArray1OfExtendedString.hxx>
13 #include <NCollection_DataMap.hxx>
14 #include <NCollection_DefineIndexedDataMap.hxx>
18 class TColStd_MapOfReal;
19 class TColStd_SequenceOfInteger;
20 class TColStd_SequenceOfAsciiString;
21 class TColStd_SequenceOfExtendedString;
23 // Class, containing all information about one parameter:
25 // obligative: label, type, short description, required
26 // optional : format, units,
27 // min value, max value, default value.
29 class DDS_DicItem : public MMgt_TShared
32 enum Type { String, Float, Integer, List, Unknown };
34 // This struct is intended for map of Format, Units, Precision and Scale
38 Standard_Real myScale;
39 TCollection_AsciiString myUnits;
40 TCollection_AsciiString myFormat;
41 Standard_Integer myPrecision;
44 typedef TCollection_AsciiString UnitSystem;
49 Standard_EXPORT TCollection_AsciiString GetId() const;
50 // to access Type of the parameter
52 Standard_EXPORT DDS_DicItem::Type GetType() const;
53 // to access Type of the parameter
55 Standard_EXPORT TCollection_ExtendedString GetLabel() const;
56 // to access Label (name) of the parameter
58 Standard_EXPORT TCollection_ExtendedString GetFilter() const;
59 // to access filter (regexp) for the parameter values
61 Standard_EXPORT TCollection_ExtendedString GetRequired() const;
62 // to access Required of the parameter
64 Standard_EXPORT DDS_MsgType GetWarningLevel() const;
65 // to access wrong value warning level of the parameter
67 Standard_EXPORT TCollection_ExtendedString GetLongDescription() const;
68 // to access Long Description of the parameter
70 Standard_EXPORT TCollection_ExtendedString GetShortDescription() const;
71 // to access Short Description of the parameter
73 Standard_EXPORT TCollection_AsciiString GetComponent() const;
75 Standard_EXPORT TCollection_AsciiString GetUnits() const;
76 Standard_EXPORT TCollection_AsciiString GetUnits( const UnitSystem& ) const;
77 // returns units for indicated unit systems
79 Standard_EXPORT TCollection_ExtendedString GetDefaultValue() const;
80 Standard_EXPORT TCollection_ExtendedString GetDefaultValue( const UnitSystem& ) const;
81 // to access Default Value of the parameter
83 Standard_EXPORT Standard_Real GetMinValue() const;
84 Standard_EXPORT Standard_Real GetMinValue( const UnitSystem& ) const;
85 // get Min Value of the parameter, either in specified unit system or in internal units (basic SI)
87 Standard_EXPORT Standard_Real GetMaxValue() const;
88 Standard_EXPORT Standard_Real GetMaxValue( const UnitSystem& ) const;
89 // get Max Value of the parameter, either in specified unit system or in internal units (basic SI)
91 Standard_EXPORT Standard_Integer GetPrecision() const;
92 Standard_EXPORT Standard_Integer GetPrecision( const UnitSystem& ) const;
93 // returns precision for indicated unit systems
95 Standard_EXPORT TCollection_AsciiString GetFormat( const Standard_Boolean = Standard_True ) const;
96 Standard_EXPORT TCollection_AsciiString GetFormat( const UnitSystem&,
97 const Standard_Boolean = Standard_True ) const;
98 // returns format for indicated unit systems
100 Standard_EXPORT TCollection_ExtendedString GetNameOfValues() const;
101 // to access valueList:name of the parameter.
102 // This string is void if the list is not defined - then use other properties:
103 // Type, DefaultValue, MaxValue, MinValue
105 Standard_EXPORT Standard_Boolean GetListOfValues( Handle(TColStd_HArray1OfExtendedString)&,
106 Handle(TColStd_HArray1OfInteger)& ) const;
107 // to access valueList of the parameter
108 // This sequence is empty if the list not defined - then use other properties:
109 // Type, DefaultValue, MaxValue, MinValue
111 Standard_EXPORT Standard_Boolean GetListOfValues( Handle(TColStd_HArray1OfExtendedString)&,
112 Handle(TColStd_HArray1OfInteger)&,
113 Handle(TColStd_HArray1OfExtendedString)& ) const;
114 // to access valueList of the parameter
115 // This sequence is empty if the list not defined - then use other properties:
116 // Type, DefaultValue, MaxValue, MinValue
118 Standard_EXPORT Standard_Boolean GetSpecialValues( TColStd_MapOfReal& ) const;
119 // get values from specVal
121 Standard_EXPORT Standard_Real GetMinZoom() const;
122 // get Min Value of lateral zooming
124 Standard_EXPORT Standard_Real GetMaxZoom() const;
125 // get Max Value of lateral zooming
127 Standard_EXPORT Standard_Real GetZoomOrder() const;
128 // get Order of lateral zooming
130 Standard_EXPORT Standard_Real ToSI( const Standard_Real ) const;
131 Standard_EXPORT Standard_Real FromSI( const Standard_Real ) const;
133 Standard_EXPORT Standard_Real ToSI( const Standard_Real, const UnitSystem& ) const;
134 Standard_EXPORT Standard_Real FromSI( const Standard_Real, const UnitSystem& ) const;
135 // convert value to and from default SI units according to current units
138 DDS_DicItem( const DDS_DicItem& );
141 void operator=( const DDS_DicItem& );
142 // Assignment operator
144 void FillDataMap( TCollection_AsciiString, const LDOM_Element&,
145 const LDOM_Element&, const LDOM_Element&,
146 const TColStd_SequenceOfAsciiString& );
147 // prepares formants for each unit systems
150 void PrepareFormats( const TCollection_AsciiString& );
151 // prepares three formats for each unit systems
153 void GetDefaultFormat();
154 // returns three default formants for each unit systems
156 UnitSystem GetActiveUnitSystem() const;
158 void GetStringFormat( const TCollection_AsciiString&,
159 const TCollection_AsciiString&,
160 const TCollection_AsciiString&,
161 const TCollection_AsciiString&,
162 TCollection_AsciiString& );
163 // returns format for the string
165 void GetIntegerFormat( const TCollection_AsciiString&,
166 const TCollection_AsciiString&,
167 const TCollection_AsciiString&,
168 const TCollection_AsciiString&,
169 const Standard_Character,
170 TCollection_AsciiString& );
171 // returns format for the integer
173 void GetFloatFormat( const TCollection_AsciiString&,
174 const TCollection_AsciiString&,
175 const TCollection_AsciiString&,
176 const TCollection_AsciiString&,
177 const Standard_Character,
178 TCollection_AsciiString& );
179 // returns format for the float
181 void Split( const TCollection_AsciiString&,
182 Handle(TColStd_HArray1OfExtendedString)& );
184 UnitData* GetUnitData( const UnitSystem& ) const;
187 TCollection_AsciiString myId;
188 TCollection_ExtendedString myLabel;
189 TCollection_ExtendedString myFilter;
190 TCollection_ExtendedString myRequired;
192 Standard_Integer myType;
193 Standard_Integer myWarnLevel;
195 TCollection_ExtendedString myLongDescr;
196 TCollection_ExtendedString myShortDescr;
200 Standard_Real myDefValue;
201 TCollection_ExtendedString myDefString;
204 TCollection_ExtendedString myListName;
206 Handle(TColStd_HArray1OfExtendedString) myListRef;
207 Handle(TColStd_HArray1OfInteger) myListRefID;
208 Handle(TColStd_HArray1OfExtendedString) myListRefIcons;
211 Standard_Real myMinZoom;
212 Standard_Real myMaxZoom;
213 Standard_Real myZoomOrder;
215 Handle(Standard_Transient) myComponent;
218 NCollection_DataMap<UnitSystem, UnitData> myUnitData;
220 friend class DDS_DicGroup;
223 // Declaration of CASCADE RTTI
224 DEFINE_STANDARD_RTTI(DDS_DicItem)
227 // Definition of HANDLE object using Standard_DefineHandle.hxx
228 DEFINE_STANDARD_HANDLE(DDS_DicItem, MMgt_TShared)
230 // Container class XMLTools_IndexedDataMapOfDicItems (map of handles)
231 DEFINE_BASECOLLECTION(DDS_BaseCollectionOfDicItems, Handle(DDS_DicItem))
232 DEFINE_INDEXEDDATAMAP(DDS_IndexedDataMapOfDicItems, DDS_BaseCollectionOfDicItems,
233 TCollection_AsciiString, Handle(DDS_DicItem))