{
if ( isApplyAndClose() )
myEditedObject = Handle(HYDROData_LandCoverMap)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
- if ( !myEditedObject.IsNull() )
+
+ // Construct a list of names of all land cover map objects defined within the data model
+ QStringList aLandCoverMapNames;
+ HYDROData_Iterator anIterator( doc(), KIND_LAND_COVER_MAP );
+ for( ; anIterator.More(); anIterator.Next() )
{
- anObjectName = myEditedObject->GetName();
+ Handle(HYDROData_LandCoverMap) aLandCoverObj =
+ Handle(HYDROData_LandCoverMap)::DownCast( anIterator.Current() );
+ if ( !aLandCoverObj.IsNull() )
+ aLandCoverMapNames.append( aLandCoverObj->GetName() );
+ }
+
+ //aLandCoverMapNames.sort();
+ aPanel->setObjectNames( aLandCoverMapNames );
- // Construct a list of names of all land cover map objects defined within the data model
- QStringList aLandCoverMapNames;
- HYDROData_Iterator anIterator( doc(), KIND_LAND_COVER_MAP );
- for( ; anIterator.More(); anIterator.Next() )
+ if ( myEditedObject.IsNull() )
+ {
+ if ( !aLandCoverMapNames.empty() )
{
- Handle(HYDROData_LandCoverMap) aLandCoverObj =
- Handle(HYDROData_LandCoverMap)::DownCast( anIterator.Current() );
- if ( !aLandCoverObj.IsNull() )
- aLandCoverMapNames.append( aLandCoverObj->GetName() );
+ anObjectName = aLandCoverMapNames.first();
+ if ( !anObjectName.isEmpty())
+ {
+ Handle(HYDROData_LandCoverMap) anObject =
+ Handle(HYDROData_LandCoverMap)::DownCast( HYDROGUI_Tool::FindObjectByName( module(), anObjectName ) );
+ if( !anObject.IsNull() )
+ myEditedObject = anObject;
+ }
}
-
- //aLandCoverMapNames.sort();
- aPanel->setObjectNames( aLandCoverMapNames );
}
+ else
+ anObjectName = myEditedObject->GetName();
}
aPanel->setObjectName( anObjectName );
// Create / find the new / edited land cover map object
Handle(HYDROData_LandCoverMap) aLandCoverMapObj = myOperationId != CreateLandCoverMapId ? myEditedObject :
Handle(HYDROData_LandCoverMap)::DownCast( doc()->CreateObject( KIND_LAND_COVER_MAP ) );
+ if ( aLandCoverMapObj.IsNull() )
+ {
+ theErrorMsg = tr( "LAND_COVER_MAP_UNDEFINED" );
+ return false;
+ }
// Set land cover map name
aLandCoverMapObj->SetName( anObjectName );
theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer;
+ if ( myOperationId == CreateLandCoverMapId )
+ module()->enableLCMActions();
+
return true;
}
}
}
- if ( aViewManager && myPreviewPrs )
+ if ( aViewManager && myPreviewPrs && !myEditedObject.IsNull() )
{
- TopoDS_Shape aLandCoverMapShape = myEditedObject->GetShape();
- if( !aLandCoverMapShape.IsNull() )
- {
- if ( myOperationId == RemoveLandCoverId ||
- myOperationId == MergeLandCoverId ||
- myOperationId == ChangeLandCoverTypeId )
- myPreviewPrs->setSelectionMode( AIS_Shape::SelectionMode( TopAbs_FACE ) );
- myPreviewPrs->setShape( aLandCoverMapShape );
- }
+ myPreviewPrs->update( false, false );
+ if ( myOperationId == RemoveLandCoverId ||
+ myOperationId == MergeLandCoverId ||
+ myOperationId == ChangeLandCoverTypeId )
+ myPreviewPrs->setSelectionMode( AIS_Shape::SelectionMode( TopAbs_FACE ) );
}
module()->update( UF_OCCViewer | UF_FitAll );