#include <SUIT_DataObject.h>
+#include <TDF_Tool.hxx>
+
HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent,
Handle(HYDROData_Object) theData )
: CAM_DataObject( theParent ),
LightApp_DataObject( theParent ),
myData( theData )
{
- // unique identifier generated from pointer to this object, like: "HD_0x123457"
- // "H" means "HYDRO", "D" means "data" to avoid conflicts with named objects
- std::ostringstream aStream;
- aStream << "HD_" << this;
- myEntry = QString( aStream.str().c_str() );
}
QString HYDROGUI_DataObject::entry() const
{
- return myEntry;
+ return HYDROGUI_DataObject::dataObjectEntry( modelObject() );
}
QString HYDROGUI_DataObject::name() const
return QString();
}
-HYDROGUI_DataObject* HYDROGUI_DataObject::objectByEntry( const QString& theEntry )
+QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Object)& theObject )
{
- static const QString aPrefixD( "HD_" );
- if ( theEntry.indexOf( aPrefixD ) != 0 )
- return NULL; // not HYDRO entry
-
- std::istringstream aStream( theEntry.toLatin1().constData() + 3 ); // start reading just after "HD_"
- void* aPtr = 0;
- aStream >> aPtr;
-
- return ( HYDROGUI_DataObject* )aPtr;
+ QString aEntryStr = QString::null;
+ if( !theObject.IsNull() )
+ {
+ TCollection_AsciiString aLabEntr;
+ TDF_Tool::Entry( theObject->Label(), aLabEntr );
+ aEntryStr = HYDROGUI_DataObject::entryPrefix() + QString( aLabEntr.ToCString() );
+ }
+ return aEntryStr;
}
HYDROGUI_NamedObject::HYDROGUI_NamedObject( SUIT_DataObject* theParent,
QString HYDROGUI_NamedObject::entry() const
{
- // unique identifier generated from pointer to this object, like: "HD_0x123457"
- // "H" means "HYDRO", "N" means "named" to avoid conflicts with data objects
- return "HN_" + myName;
+ //return LightApp_DataObject::entry();
+ return HYDROGUI_DataObject::entryPrefix() + name();
}
QString HYDROGUI_NamedObject::name() const
{
return myName;
}
-
-QString HYDROGUI_NamedObject::nameByEntry( const QString& theEntry )
-{
- static const QString aPrefixN( "HN_" );
- if( theEntry.indexOf( aPrefixN ) != 0 )
- return QString(); // not HYDRO entry
-
- return theEntry.right( 3 );
-}