#include "HYDROGUI_DataObject.h"
+#include <HYDROData_Image.h>
+#include <HYDROData_Zone.h>
+#include <HYDROData_Object.h>
+#include <HYDROData_Bathymetry.h>
+
#include <SUIT_DataObject.h>
#include <TDF_Tool.hxx>
HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent,
- Handle(HYDROData_Object) theData )
+ Handle(HYDROData_Entity) theData,
+ const QString& theParentEntry )
: CAM_DataObject( theParent ),
LightApp_DataObject( theParent ),
- myData( theData )
+ myData( theData ),
+ myParentEntry( theParentEntry )
{
}
QString HYDROGUI_DataObject::entry() const
{
- return HYDROGUI_DataObject::dataObjectEntry( modelObject() );
+ QString anEntry = HYDROGUI_DataObject::dataObjectEntry( modelObject() );
+ if( isReference() )
+ anEntry.prepend( myParentEntry + "_" );
+ return anEntry;
+}
+
+QString HYDROGUI_DataObject::refEntry() const
+{
+ if( !myParentEntry.isEmpty() )
+ return HYDROGUI_DataObject::dataObjectEntry( modelObject() );
+ return QString();
}
QString HYDROGUI_DataObject::name() const
return QString();
}
-QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Object)& theObject )
+QFont HYDROGUI_DataObject::font( const int theId ) const
+{
+ QFont aFont = LightApp_DataObject::font( theId );
+ if( theId == NameId )
+ {
+ Handle(HYDROData_Image) anImage = Handle(HYDROData_Image)::DownCast( modelObject() );
+ if( !anImage.IsNull() && anImage->MustBeUpdated() )
+ aFont.setItalic( true );
+ }
+ return aFont;
+}
+
+QString HYDROGUI_DataObject::text( const int theColumnId ) const
+{
+ QString aRes;
+ if( !myData.IsNull() )
+ {
+ if ( theColumnId == RefObjectId || theColumnId == BathymetryId )
+ {
+ Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( myData );
+ if ( !aZone.IsNull() )
+ {
+ HYDROData_SequenceOfObjects aSeq = aZone->GetGeometryObjects();
+ HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
+ for ( ; anIter.More(); anIter.Next() )
+ {
+ Handle(HYDROData_Object) aRefGeomObj =
+ Handle(HYDROData_Object)::DownCast( anIter.Value() );
+ if ( !aRefGeomObj.IsNull() )
+ {
+ switch ( theColumnId )
+ {
+ case RefObjectId:
+ // Get Ref.Object name
+ aRes += aRefGeomObj->GetName() + ", ";
+ break;
+ case BathymetryId:
+ // Get bathymetry name
+ aRes += aRefGeomObj->GetBathymetry()->GetName();
+ }
+ }
+ }
+ }
+ if ( aRes.length() > 1 )
+ {
+ aRes.remove( aRes.length() - 2, 2 );
+ }
+ }
+ else
+ {
+ aRes = LightApp_DataObject::text( theColumnId );
+ }
+ }
+ return aRes;
+}
+
+QColor HYDROGUI_DataObject::color( const ColorRole theColorRole, const int theColumnId ) const
+{
+ //TODO: Implement red color for bathymetry conflicts in case creation dialog
+ return LightApp_DataObject::color( theColorRole, theColumnId );
+}
+
+
+QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Entity)& theObject,
+ const bool theWithPrefix )
{
QString aEntryStr = QString::null;
if( !theObject.IsNull() )
{
TCollection_AsciiString aLabEntr;
TDF_Tool::Entry( theObject->Label(), aLabEntr );
- aEntryStr = HYDROGUI_DataObject::entryPrefix() + QString( aLabEntr.ToCString() );
+ aEntryStr = aLabEntr.ToCString();
+ if( theWithPrefix )
+ aEntryStr.prepend( HYDROGUI_DataObject::entryPrefix() );
}
return aEntryStr;
}
HYDROGUI_NamedObject::HYDROGUI_NamedObject( SUIT_DataObject* theParent,
- const QString& theName )
+ const QString& theName,
+ const QString& theParentEntry )
: CAM_DataObject( theParent ),
LightApp_DataObject( theParent ),
- myName( theName )
+ myName( theName ),
+ myParentEntry( theParentEntry )
{
}
QString HYDROGUI_NamedObject::entry() const
{
- return LightApp_DataObject::entry();
+ QString anEntry = HYDROGUI_DataObject::entryPrefix() + name();
+ if( !myParentEntry.isEmpty() )
+ anEntry.prepend( myParentEntry + "_" );
+ return anEntry;
}
QString HYDROGUI_NamedObject::name() const