]> SALOME platform Git repositories - modules/gui.git/blob - src/DDS/DDS_DicItem.h
Salome HOME
871149407e34cb3a8b1f8a8b4b32c1cab43704bf
[modules/gui.git] / src / DDS / DDS_DicItem.h
1 #ifndef DDS_DICITEM_H
2 #define DDS_DICITEM_H
3
4 #include "DDS.h"
5
6 #include <MMgt_TShared.hxx>
7
8 #include <TCollection_AsciiString.hxx>
9
10 #include <TColStd_HArray1OfInteger.hxx>
11 #include <TColStd_HArray1OfExtendedString.hxx>
12
13 #include <NCollection_DataMap.hxx>
14 #include <NCollection_DefineIndexedDataMap.hxx>
15
16 class LDOM_Element;
17 class DDS_Dictionary;
18 class TColStd_MapOfReal;
19 class TColStd_SequenceOfInteger;
20 class TColStd_SequenceOfAsciiString;
21 class TColStd_SequenceOfExtendedString;
22
23 //  Class, containing all information about one parameter:
24 //  unique    : id
25 //  obligative: label, type, short description, required
26 //  optional  : format, units,
27 //              min value, max value, default value.
28
29 class DDS_DicItem : public MMgt_TShared
30 {
31 public:
32   enum Type { String, Float, Integer, List, Unknown };
33
34   // This struct is intended for map of Format, Units, Precision and Scale
35   struct UnitData
36   {
37     Standard_Real           myZero;
38     Standard_Real           myScale;
39     TCollection_AsciiString myUnits;
40     TCollection_AsciiString myFormat;
41     Standard_Integer        myPrecision;
42   };
43
44   typedef TCollection_AsciiString UnitSystem;
45
46 public:
47   DDS_DicItem();
48
49   Standard_EXPORT TCollection_AsciiString    GetId() const;
50   // to access Type of the parameter
51
52   Standard_EXPORT DDS_DicItem::Type          GetType() const;
53   // to access Type of the parameter
54
55   Standard_EXPORT TCollection_ExtendedString GetLabel() const;
56   // to access Label (name) of the parameter
57
58   Standard_EXPORT TCollection_ExtendedString GetFilter() const;
59   // to access filter (regexp) for the parameter values
60
61   Standard_EXPORT TCollection_ExtendedString GetRequired() const;
62   // to access Required of the parameter
63
64   Standard_EXPORT DDS_MsgType                GetWarningLevel() const;
65   // to access wrong value warning level of the parameter
66
67   Standard_EXPORT TCollection_ExtendedString GetLongDescription() const;
68   // to access Long Description of the parameter
69
70   Standard_EXPORT TCollection_ExtendedString GetShortDescription() const;
71   // to access Short Description of the parameter
72
73   Standard_EXPORT TCollection_AsciiString    GetComponent() const;
74
75   Standard_EXPORT TCollection_AsciiString    GetUnits() const;
76   Standard_EXPORT TCollection_AsciiString    GetUnits( const UnitSystem& ) const;
77   // returns units for indicated unit systems
78
79   Standard_EXPORT TCollection_ExtendedString GetDefaultValue() const;
80   Standard_EXPORT TCollection_ExtendedString GetDefaultValue( const UnitSystem& ) const;
81   // to access Default Value of the parameter
82
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)
86
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)
90
91   Standard_EXPORT Standard_Integer           GetPrecision() const;
92   Standard_EXPORT Standard_Integer           GetPrecision( const UnitSystem& ) const;
93   // returns precision for indicated unit systems
94
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
99
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
104
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
110
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
117
118   Standard_EXPORT Standard_Boolean           GetSpecialValues( TColStd_MapOfReal& ) const;
119   // get values from specVal
120
121   Standard_EXPORT Standard_Real              GetMinZoom() const;
122   // get Min Value of lateral zooming
123
124   Standard_EXPORT Standard_Real              GetMaxZoom() const;
125   // get Max Value of lateral zooming
126
127   Standard_EXPORT Standard_Real              GetZoomOrder() const;
128   // get Order of lateral zooming
129
130   Standard_EXPORT Standard_Real ToSI( const Standard_Real ) const;
131   Standard_EXPORT Standard_Real FromSI( const Standard_Real ) const;
132
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
136
137 private:
138   DDS_DicItem( const DDS_DicItem& );
139   // Copy constructor
140
141   void                                       operator=( const DDS_DicItem& );
142   // Assignment operator
143
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
148
149
150   void                                       PrepareFormats( const TCollection_AsciiString& );
151   // prepares three formats for each unit systems
152
153   void                                       GetDefaultFormat();
154   // returns three default formants for each unit systems
155
156   UnitSystem                                 GetActiveUnitSystem() const;
157
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
164
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
172
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
180
181   void                                       Split( const TCollection_AsciiString&,
182                                                     Handle(TColStd_HArray1OfExtendedString)& );
183
184   UnitData*                                  GetUnitData( const UnitSystem& ) const;
185
186 private:
187   TCollection_AsciiString                    myId;
188   TCollection_ExtendedString                 myLabel;
189   TCollection_ExtendedString                 myFilter;
190   TCollection_ExtendedString                 myRequired;
191
192   Standard_Integer                           myType;
193   Standard_Integer                           myWarnLevel;
194
195   TCollection_ExtendedString                 myLongDescr;
196   TCollection_ExtendedString                 myShortDescr;
197
198   Standard_Real                              myMax;
199   Standard_Real                              myMin;
200   Standard_Real                              myDefValue;
201   TCollection_ExtendedString                 myDefString;
202
203   // valueList
204   TCollection_ExtendedString                 myListName;
205
206   Handle(TColStd_HArray1OfExtendedString)    myListRef;
207   Handle(TColStd_HArray1OfInteger)           myListRefID;
208   Handle(TColStd_HArray1OfExtendedString)    myListRefIcons;
209
210   // presentation
211   Standard_Real                              myMinZoom;
212   Standard_Real                              myMaxZoom;
213   Standard_Real                              myZoomOrder;
214
215   Handle(Standard_Transient)                 myComponent;
216
217   // unitData
218   NCollection_DataMap<UnitSystem, UnitData>  myUnitData;
219
220   friend class DDS_DicGroup;
221
222 public:
223   // Declaration of CASCADE RTTI
224   DEFINE_STANDARD_RTTI(DDS_DicItem)
225 };
226
227 // Definition of HANDLE object using Standard_DefineHandle.hxx
228 DEFINE_STANDARD_HANDLE(DDS_DicItem, MMgt_TShared)
229
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))
234
235 #endif