Salome HOME
Use LightApp library
[modules/gui.git] / src / SalomeApp / SalomeApp_DataObject.h
1 #ifndef SALOMEAPP_DATAOBJECT_H
2 #define SALOMEAPP_DATAOBJECT_H
3
4 #include "SalomeApp.h"
5
6 #include "LightApp_DataObject.h"
7 #include "CAM_RootObject.h"
8
9 #include "SALOMEDSClient.hxx"
10
11 class SalomeApp_Study;
12
13 class SALOMEAPP_EXPORT SalomeApp_DataObject : public LightApp_DataObject
14 {
15
16 public:
17   enum { CT_Value, CT_Entry, CT_IOR, CT_RefEntry };
18
19 public:
20   SalomeApp_DataObject( SUIT_DataObject* = 0 );
21   SalomeApp_DataObject( const _PTR(SObject)&, SUIT_DataObject* = 0 );
22   virtual ~SalomeApp_DataObject();
23     
24   virtual QString                 name() const;
25   virtual QPixmap                 icon() const;
26   virtual QString                 toolTip() const;
27
28   virtual QString                 text( const int ) const;
29   virtual QColor                  color( const ColorRole ) const;
30
31   virtual QString                 entry() const;
32
33   /*! location of corresponding SALOMEDS::SObject  */
34   virtual _PTR(SObject)           object() const;
35
36   bool                            isReference() const;
37   _PTR(SObject)                   referencedObject() const;
38
39   /*! GEOM, SMESH, VISU, etc.*/
40   QString                         componentDataType() const;
41
42 private:
43   QString                         ior( const _PTR(SObject)& ) const;
44   QString                         entry( const _PTR(SObject)& ) const;
45   QString                         value( const _PTR(SObject)& ) const;
46
47 private:
48   _PTR(SObject)                   myObject;
49 };
50
51 /*!
52  * SalomeApp_ModuleObject - class for optimized access to DataModel from
53  * SalomeApp_DataObject instances - see also CAM_RootObject.h
54  */
55
56 class SALOMEAPP_EXPORT SalomeApp_ModuleObject : public SalomeApp_DataObject,
57                                                 public CAM_RootObject
58 {
59 public:
60   SalomeApp_ModuleObject( SUIT_DataObject* = 0 );
61   SalomeApp_ModuleObject( const _PTR(SObject)&, SUIT_DataObject* = 0 );
62   SalomeApp_ModuleObject( CAM_DataModel*, const _PTR(SObject)&, SUIT_DataObject* = 0 );
63   virtual ~SalomeApp_ModuleObject();
64 };
65
66 #endif