+
+HYDROData_Zone::MergeAltitudesType HYDROGUI_Zone::getMergeType() const
+{
+ HYDROData_Zone::MergeAltitudesType aRes = HYDROData_Zone::Merge_UNKNOWN;
+ Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
+ if ( !aZone.IsNull() )
+ {
+ aRes = aZone->GetMergeType();
+ }
+ return aRes;
+}
+
+void HYDROGUI_Zone::setMergeType( int theMergeType, QString theAltitudeName )
+{
+ Handle(HYDROData_Zone) aZone = Handle(HYDROData_Zone)::DownCast( modelObject() );
+ if ( !aZone.IsNull() )
+ {
+ HYDROData_Zone::MergeAltitudesType aMergeType =
+ ( HYDROData_Zone::MergeAltitudesType )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();
+ HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
+ for ( ; anIter.More(); anIter.Next() )
+ {
+ 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;
+ }
+ }
+ }
+ }
+ }
+}
+
+/*!
+ \brief Check if this object is can't be renamed in place
+
+ \param id column id
+ \return \c true if the item can be renamed by the user in place (e.g. in the Object browser)
+*/
+bool HYDROGUI_Zone::renameAllowed( const int id ) const
+{
+ if ( id == NameId && isInOperation() )
+ {
+ return true;
+ }
+ return HYDROGUI_DataObject::renameAllowed( id );
+}
+
+///*!
+// \brief Set name of this object.
+//
+// \return \c true if rename operation finished successfully, \c false otherwise.
+//*/
+//bool HYDROGUI_Zone::setName(const QString& theName)
+//{
+// if ( isInOperation() )
+// {
+// bool aRes = false;
+// if ( !theName.isEmpty() )
+// {
+// Handle(HYDROData_Entity) anEntity = modelObject();
+// CAM_Module* aModule = module();
+// if( anEntity->GetName() != theName && aModule )
+// {
+// // check that there are no other objects with the same name in the document
+// Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( aModule, theName );
+// if ( anObject.IsNull() )
+// {
+// anEntity->SetName( theName );
+// aRes = true;
+// }
+// else
+// {
+// // Inform the user that the name is already used
+// QString aTitle = QObject::tr( "INSUFFICIENT_INPUT_DATA" );
+// QString aMessage = QObject::tr( "OBJECT_EXISTS_IN_DOCUMENT" ).arg( theName );
+// SUIT_MessageBox::critical( getApp()->desktop(), aTitle, aMessage );
+// }
+// }
+// }
+// }
+// else
+// {
+// aRes = HYDROGUI_DataObject::setName( theName );
+// }
+// return aRes;
+//}