X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FHYDROGUI%2FHYDROGUI_Zone.cxx;h=0d0ab6bc3cc5ee1b2feb31b4c4d7251b50e30fa7;hb=0ef7a1c0faeafd936f486c117211adf59aa1e1de;hp=9b6b304b0fd944eaa04f64a956eea07a0845608e;hpb=2cf9e838e652ae811d9b3931914771ad1836c6b8;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Zone.cxx b/src/HYDROGUI/HYDROGUI_Zone.cxx index 9b6b304b..0d0ab6bc 100644 --- a/src/HYDROGUI/HYDROGUI_Zone.cxx +++ b/src/HYDROGUI/HYDROGUI_Zone.cxx @@ -45,8 +45,8 @@ QString HYDROGUI_Zone::text( const int theColumnId ) const 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 ); @@ -61,12 +61,12 @@ QString HYDROGUI_Zone::getRefObjectNames() const 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 @@ -81,13 +81,13 @@ QString HYDROGUI_Zone::getRefObjectNames() const 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 ) ) @@ -100,6 +100,7 @@ QString HYDROGUI_Zone::getAltitudeName() const QString aName; for ( ; anIter.More(); anIter.Next() ) { + aName.clear(); Handle(HYDROData_Object) aRefGeomObj = Handle(HYDROData_Object)::DownCast( anIter.Value() ); if ( !aRefGeomObj.IsNull() ) @@ -115,14 +116,14 @@ QString HYDROGUI_Zone::getAltitudeName() const 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 ) ) @@ -140,11 +141,11 @@ QString HYDROGUI_Zone::getAltitudeName() const 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: @@ -202,15 +203,15 @@ QColor HYDROGUI_Zone::color( const ColorRole theColorRole, const int theColumnId 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() ) { @@ -221,15 +222,17 @@ QStringList HYDROGUI_Zone::getAltitudes() const 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() ) { @@ -238,32 +241,35 @@ HYDROData_Zone::MergeAltitudesType HYDROGUI_Zone::getMergeType() const 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; } } }