aRes = getRefObjectNames();
break;
case AltitudeObjId:
- // Get altitude object name
- aRes = getAltitudeName();
+ // Get altitude/land cover object name
+ aRes = getObjectName();
break;
default:
aRes = LightApp_DataObject::text( theColumnId );
Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
if ( !aZone.IsNull() )
{
- HYDROData_SequenceOfObjects aSeq = aZone->GetGeometryObjects();
+ HYDROData_SequenceOfObjects aSeq = aZone->GetObjects();
HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
for ( ; anIter.More(); anIter.Next() )
{
- Handle(HYDROData_Object) aRefGeomObj =
- Handle(HYDROData_Object)::DownCast( anIter.Value() );
+ Handle(HYDROData_Entity) aRefGeomObj =
+ Handle(HYDROData_Entity)::DownCast( anIter.Value() );
if ( !aRefGeomObj.IsNull() )
{
// Get Ref.Object name
return aRes;
}
-QString HYDROGUI_Zone::getAltitudeName() const
+QString HYDROGUI_Zone::getObjectName() const
{
QString aRes;
Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
if ( !aZone.IsNull() )
{
- HYDROData_SequenceOfObjects aSeq = aZone->GetGeometryObjects();
+ HYDROData_SequenceOfObjects aSeq = aZone->GetObjects();
bool isMergingNeed = aZone->IsMergingNeed();
if ( ( isMergingNeed && aZone->GetMergeType() == HYDROData_Zone::Merge_UNKNOWN )
|| ( aSeq.Length() == 1 ) || ( !isMergingNeed ) )
QString aName;
for ( ; anIter.More(); anIter.Next() )
{
+ aName.clear();
Handle(HYDROData_Object) aRefGeomObj =
Handle(HYDROData_Object)::DownCast( anIter.Value() );
if ( !aRefGeomObj.IsNull() )
aRes = aName;
break;
}
-
- if ( !aNamesSet.contains( aName ) )
- {
- aRes += aName + ", ";
- aNamesSet.insert( aName );
- }
}
}
+
+ if ( !aName.isEmpty() && !aNamesSet.contains( aName ) )
+ {
+ aRes += aName + ", ";
+ aNamesSet.insert( aName );
+ }
}
// Remove the last comma if necessary
if ( isMergingNeed && ( aRes.length() > 1 ) )
case HYDROData_Zone::Merge_ZMAX: // The maximum values
aRes = QObject::tr( "MERGE_ZMAX" );
break;
- case HYDROData_Zone::Merge_Object: // Only one altitude will be taken into account
+ case HYDROData_Zone::Merge_Object: // Only one altitude/land cover will be taken into account
{
- Handle(HYDROData_IAltitudeObject) anAltitude = aZone->GetMergeAltitude();
- if ( !anAltitude.IsNull() )
- aRes = anAltitude->GetName();
+ Handle(HYDROData_Entity) aMergeObj = aZone->GetMergeObject();
+ if ( !aMergeObj.IsNull() )
+ aRes = aMergeObj->GetName();
break;
}
default:
return aRes;
}
-QStringList HYDROGUI_Zone::getAltitudes() const
+QStringList HYDROGUI_Zone::getObjects() const
{
QStringList aRes;
Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
if ( !aZone.IsNull() )
{
- HYDROData_SequenceOfObjects aSeq = aZone->GetGeometryObjects();
- // Collect all used altitudes names when merging is necessary
- // or just get the name of altitude of a single geometry object
+ HYDROData_SequenceOfObjects aSeq = aZone->GetObjects();
+ // Collect all used altitudes/land cover names when merging is necessary
+ // or just get the name of altitude/land cover of a single object
HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
for ( ; anIter.More(); anIter.Next() )
{
Handle(HYDROData_IAltitudeObject) anAltitudeObj = aRefGeomObj->GetAltitudeObject();
if ( !anAltitudeObj.IsNull() && !aRes.contains( anAltitudeObj->GetName() ) )
aRes.append( anAltitudeObj->GetName() );
+ } else {
+ aRes.append( anIter.Value()->GetName() );
}
}
}
return aRes;
}
-HYDROData_Zone::MergeAltitudesType HYDROGUI_Zone::getMergeType() const
+HYDROData_Zone::MergeType HYDROGUI_Zone::getMergeType() const
{
- HYDROData_Zone::MergeAltitudesType aRes = HYDROData_Zone::Merge_UNKNOWN;
+ HYDROData_Zone::MergeType aRes = HYDROData_Zone::Merge_UNKNOWN;
Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
if ( !aZone.IsNull() )
{
return aRes;
}
-void HYDROGUI_Zone::setMergeType( int theMergeType, QString theAltitudeName )
+void HYDROGUI_Zone::setMergeType( int theMergeType, QString theMergeObjectName )
{
Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
if ( !aZone.IsNull() )
{
- HYDROData_Zone::MergeAltitudesType aMergeType =
- ( HYDROData_Zone::MergeAltitudesType )theMergeType;
+ HYDROData_Zone::MergeType aMergeType =
+ ( HYDROData_Zone::MergeType )theMergeType;
aZone->SetMergeType( aMergeType );
if ( aMergeType == HYDROData_Zone::Merge_Object )
{
- // Find an altitude object by the given name and set it as the zone's merge altitude
- HYDROData_SequenceOfObjects aSeq = aZone->GetGeometryObjects();
+ // Find an altitude/land cover object by the given name and set it as the zone's merge altitude/land cover
+ HYDROData_SequenceOfObjects aSeq = aZone->GetObjects();
HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
for ( ; anIter.More(); anIter.Next() )
{
+ Handle(HYDROData_Entity) aMergeObject;
+
Handle(HYDROData_Object) aRefGeomObj =
Handle(HYDROData_Object)::DownCast( anIter.Value() );
if ( !aRefGeomObj.IsNull() )
{
- // Get altitude object name
- Handle(HYDROData_IAltitudeObject) anAltitudeObj = aRefGeomObj->GetAltitudeObject();
- if ( !anAltitudeObj.IsNull() && theAltitudeName == anAltitudeObj->GetName() )
- {
- aZone->SetMergeAltitude( anAltitudeObj );
- break;
- }
+ // Get altitude object
+ aMergeObject = aRefGeomObj->GetAltitudeObject();
+ }
+
+ if ( !aMergeObject.IsNull() && theMergeObjectName == aMergeObject->GetName() )
+ {
+ aZone->SetMergeObject( aMergeObject );
+ break;
}
}
}
}
}
-void HYDROGUI_Zone::setMergeStricklerType( int theMergeType, QString theStricklerTypeName)
-{
- // TODO: implement this method
-}
-
/*!
\brief Check if this object is can't be renamed in place