Salome HOME
Columns in object browser
[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 "CAM_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 virtual CAM_DataObject
14 {
15   class Key;
16
17 public:
18   enum { CT_Value, CT_Entry, CT_IOR, CT_RefEntry };
19
20 public:
21   SalomeApp_DataObject( SUIT_DataObject* = 0 );
22   SalomeApp_DataObject( const _PTR(SObject)&, SUIT_DataObject* = 0 );
23   virtual ~SalomeApp_DataObject();
24     
25   virtual QString                 name() const;
26   virtual QPixmap                 icon() const;
27   virtual QColor                  color() const;
28   virtual QString                 toolTip() const;
29
30   virtual QString                 text( const int ) const;
31   virtual QColor                  color( const ColorRole ) const;
32
33   virtual SUIT_DataObjectKey*     key() const;
34   virtual QString                 entry() const;
35
36   virtual _PTR(SObject)           object() const; // location of corresponding SALOMEDS::SObject  
37
38   bool                            isReference() const;
39   _PTR(SObject)                   referencedObject() const;
40
41   SUIT_DataObject*                componentObject() const;
42   QString                         componentDataType() const; // GEOM, SMESH, VISU, etc.
43
44 private:
45   QString                         ior( const _PTR(SObject)& ) const;
46   QString                         entry( const _PTR(SObject)& ) const;
47   QString                         value( const _PTR(SObject)& ) const;
48
49 private:
50   _PTR(SObject)                   myObject;
51 };
52
53 /*!
54  * SalomeApp_ModuleObject - class for optimized access to DataModel from
55  * SalomeApp_DataObject instances - see also CAM_RootObject.h
56  */
57
58 class SALOMEAPP_EXPORT SalomeApp_ModuleObject : public SalomeApp_DataObject,
59                                                 public CAM_RootObject
60 {
61 public:
62   SalomeApp_ModuleObject( SUIT_DataObject* = 0 );
63   SalomeApp_ModuleObject( const _PTR(SObject)&, SUIT_DataObject* = 0 );
64   SalomeApp_ModuleObject( CAM_DataModel*, const _PTR(SObject)&, SUIT_DataObject* = 0 );
65   virtual ~SalomeApp_ModuleObject();
66 };
67
68 #endif