1 #include "SalomeApp_DataObject.h"
2 #include "SalomeApp_RootObject.h"
3 #include "SalomeApp_Study.h"
5 #include <SUIT_DataObjectKey.h>
6 #include <SUIT_Application.h>
7 #include <SUIT_ResourceMgr.h>
12 Class: SalomeApp_DataObject::Key
16 class SalomeApp_DataObject::Key : public SUIT_DataObjectKey
19 Key( const QString& );
22 virtual bool isLess( const SUIT_DataObjectKey* ) const;
23 virtual bool isEqual( const SUIT_DataObjectKey* ) const;
29 SalomeApp_DataObject::Key::Key( const QString& entry )
30 : SUIT_DataObjectKey(),
35 SalomeApp_DataObject::Key::~Key()
39 bool SalomeApp_DataObject::Key::isLess( const SUIT_DataObjectKey* other ) const
41 Key* that = (Key*)other;
42 return myEntry < that->myEntry;
45 bool SalomeApp_DataObject::Key::isEqual( const SUIT_DataObjectKey* other ) const
47 Key* that = (Key*)other;
48 return myEntry == that->myEntry;
52 Class: SalomeApp_DataObject
56 SalomeApp_DataObject::SalomeApp_DataObject( SUIT_DataObject* parent )
57 : CAM_DataObject( parent )
61 SalomeApp_DataObject::SalomeApp_DataObject( const _PTR(SObject)& sobj, SUIT_DataObject* parent )
62 : CAM_DataObject( parent )
67 SalomeApp_DataObject::~SalomeApp_DataObject()
71 QString SalomeApp_DataObject::entry() const
74 return myObject->GetID().c_str();
78 SUIT_DataObjectKey* SalomeApp_DataObject::key() const
80 QString str = entry();
81 return new Key( str );
84 QString SalomeApp_DataObject::name() const
87 return myObject->GetName().c_str();
89 //return QString( "%1 [%2]" ).arg( myName ).arg( myEntry ); // for debug
92 QPixmap SalomeApp_DataObject::icon() const
94 _PTR(GenericAttribute) anAttr;
95 if ( myObject && myObject->FindAttribute( anAttr, "AttributePixMap" ) ){
96 _PTR(AttributePixMap) aPixAttr ( anAttr );
97 if ( aPixAttr->HasPixMap() ){
98 QString pixmapName = QObject::tr( aPixAttr->GetPixMap().c_str() );
99 SalomeApp_RootObject* aRoot = dynamic_cast<SalomeApp_RootObject*>( root() );
100 if ( aRoot && aRoot->study() ) {
101 QPixmap pixmap = aRoot->study()->application()->resourceMgr()->loadPixmap( componentDataType(), pixmapName );
109 QColor SalomeApp_DataObject::color() const
111 _PTR(GenericAttribute) anAttr;
112 if ( myObject && myObject->FindAttribute( anAttr, "AttributeTextColor" ) ){
113 _PTR(AttributeTextColor) aColAttr ( anAttr );
114 QColor color( (int)aColAttr->TextColor().R, (int)aColAttr->TextColor().G, (int)aColAttr->TextColor().B );
120 QString SalomeApp_DataObject::toolTip() const
122 //return object()->Name();
123 return QString( "Object \'%1\', module \'%2\', ID=%3" ).arg( name() ).arg( componentDataType() ).arg( entry() );
126 SUIT_DataObject* SalomeApp_DataObject::componentObject() const
128 SUIT_DataObject* compObj = 0; // for root object (invisible SALOME_ROOT_OBJECT)
130 if ( parent() && parent() == root() )
131 compObj = (SUIT_DataObject*)this; // for component-level objects
134 compObj = parent(); // for lower level objects
135 while ( compObj && compObj->parent() != root() )
136 compObj = compObj->parent();
142 QString SalomeApp_DataObject::componentDataType() const
144 const SalomeApp_DataObject* compObj = dynamic_cast<SalomeApp_DataObject*>( componentObject() );
145 if ( compObj && compObj->object() )
147 _PTR(SComponent) aComp ( compObj->object() );
149 return aComp->ComponentDataType().c_str();
155 _PTR(SObject) SalomeApp_DataObject::object() const
162 Class: SalomeApp_ModuleObject
166 SalomeApp_ModuleObject::SalomeApp_ModuleObject( SUIT_DataObject* parent )
167 : SalomeApp_DataObject( parent ),
168 CAM_RootObject( parent ),
169 CAM_DataObject( parent )
173 SalomeApp_ModuleObject::SalomeApp_ModuleObject( const _PTR(SObject)& sobj, SUIT_DataObject* parent )
174 : SalomeApp_DataObject( sobj, parent ),
175 CAM_RootObject( 0, parent ),
176 CAM_DataObject( parent )
180 SalomeApp_ModuleObject::SalomeApp_ModuleObject( CAM_DataModel* dm, const _PTR(SObject)& sobj, SUIT_DataObject* parent )
181 : SalomeApp_DataObject( sobj, parent ),
182 CAM_RootObject( dm, parent ),
183 CAM_DataObject( parent )
187 SalomeApp_ModuleObject::~SalomeApp_ModuleObject()