- CORBA::Object_var aObject = SMESH::SObjectToObject( SO );
- SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( aObject );
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( aObject );
- SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( aObject );
- if ( !aMesh->_is_nil() || !aSubMesh->_is_nil() || !aGroup->_is_nil() ) {
- if ( SMESH_Actor *anActor = SMESH::FindActorByEntry(anIO->getEntry()) ) {
- anActor->SetControlMode(aControl);
- anActor->GetScalarBarActor()->SetTitle( functorToString( anActor->GetFunctor() ).toLatin1().constData() );
+ CORBA::Object_var aObject = SMESH::SObjectToObject( SO );
+ SMESH::SMESH_IDSource_var anIDSrc = SMESH::SMESH_IDSource::_narrow( aObject );
+ if ( !anIDSrc->_is_nil() ) {
+ SMESH_Actor *anActor = SMESH::FindActorByEntry( anIO->getEntry());
+ if (( !anActor && selected.Extent() == 1 ) &&
+ ( anActor = SMESH::CreateActor( aStudy, anIO->getEntry() )))
+ {
+ anActor->SetControlMode( aControl );
+ SMESH::DisplayActor( SMESH::GetCurrentVtkView(), anActor );
+ SMESH::UpdateView ( SMESH::eDisplay, anIO->getEntry() );
+ }
+ if ( anActor )
+ {
+ if ( anActor->GetControlMode() != aControl )
+ anActor->SetControlMode( aControl );
+ QString functorName = functorToString( anActor->GetFunctor() );
+ anActor->GetScalarBarActor()->SetTitle( functorName.toLatin1().constData() );