mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-15 01:20:36 +05:00
Fix for improvement 0017606 (EDF 168: Is it possible to customize the tooltip of the objects in the browser?);
This commit is contained in:
parent
89465ae398
commit
ad18f00191
@ -159,7 +159,6 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
|
|||||||
Unexpect aCatch(SALOME_SalomeException);
|
Unexpect aCatch(SALOME_SalomeException);
|
||||||
SALOMEDS::SObject_var aResultSO;
|
SALOMEDS::SObject_var aResultSO;
|
||||||
if(CORBA::is_nil(theObject) || theStudy->_is_nil()) return aResultSO;
|
if(CORBA::is_nil(theObject) || theStudy->_is_nil()) return aResultSO;
|
||||||
|
|
||||||
GEOM::GEOM_Object_var aShape = GEOM::GEOM_Object::_narrow(theObject);
|
GEOM::GEOM_Object_var aShape = GEOM::GEOM_Object::_narrow(theObject);
|
||||||
if(aShape->_is_nil()) return aResultSO;
|
if(aShape->_is_nil()) return aResultSO;
|
||||||
|
|
||||||
@ -1306,6 +1305,153 @@ GEOM::GEOM_Object_ptr GEOM_Gen_i::GetObject (CORBA::Long theStudyID, const char*
|
|||||||
return obj._retn();
|
return obj._retn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : hasObjectInfo()
|
||||||
|
// purpose : shows if module provides information for its objects
|
||||||
|
//=================================================================================
|
||||||
|
bool GEOM_Gen_i::hasObjectInfo()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=================================================================================
|
||||||
|
// function : getObjectInfo()
|
||||||
|
// purpose : returns an information for a given object by its entry
|
||||||
|
//=================================================================================
|
||||||
|
char* GEOM_Gen_i::getObjectInfo(CORBA::Long studyId, const char* entry)
|
||||||
|
{
|
||||||
|
GEOM::GEOM_Object_var aGeomObject;
|
||||||
|
|
||||||
|
CORBA::Object_var aSMObject = name_service->Resolve( "/myStudyManager" );
|
||||||
|
SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow( aSMObject );
|
||||||
|
SALOMEDS::Study_var aStudy = aStudyManager->GetStudyByID( studyId );
|
||||||
|
SALOMEDS::SObject_var aSObj = aStudy->FindObjectID( entry );
|
||||||
|
SALOMEDS::GenericAttribute_var anAttr;
|
||||||
|
if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeIOR")) {
|
||||||
|
SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
|
||||||
|
CORBA::String_var aVal = anIOR->Value();
|
||||||
|
CORBA::Object_var anObject = aStudy->ConvertIORToObject(aVal);
|
||||||
|
aGeomObject = GEOM::GEOM_Object::_narrow(anObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
char* aTypeInfo = "Object";
|
||||||
|
if ( !aGeomObject->_is_nil() ) {
|
||||||
|
GEOM::GEOM_IKindOfShape::shape_kind aKind;
|
||||||
|
GEOM::ListOfLong_var anInts;
|
||||||
|
GEOM::ListOfDouble_var aDbls;
|
||||||
|
|
||||||
|
GEOM::GEOM_IMeasureOperations_var anOp = GetIMeasureOperations( studyId );
|
||||||
|
aKind = anOp->KindOfShape( aGeomObject, anInts, aDbls );
|
||||||
|
|
||||||
|
if ( anOp->IsDone() ) {
|
||||||
|
switch ( aKind ) {
|
||||||
|
case GEOM::GEOM_IKindOfShape::COMPOUND:
|
||||||
|
aTypeInfo = "Compound";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::COMPSOLID:
|
||||||
|
aTypeInfo = "CompSolid";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::SHELL:
|
||||||
|
aTypeInfo = "Shell";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::WIRE:
|
||||||
|
if ( anInts[0] == 1 )
|
||||||
|
aTypeInfo = "Closed Wire";
|
||||||
|
else if ( anInts[0] == 2 )
|
||||||
|
aTypeInfo = "Opened Wire";
|
||||||
|
else
|
||||||
|
aTypeInfo = "Wire";
|
||||||
|
break;
|
||||||
|
// SOLIDs
|
||||||
|
case GEOM::GEOM_IKindOfShape::SPHERE:
|
||||||
|
aTypeInfo = "Sphere";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::CYLINDER:
|
||||||
|
aTypeInfo = "Cylinder";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::BOX:
|
||||||
|
case GEOM::GEOM_IKindOfShape::ROTATED_BOX:
|
||||||
|
aTypeInfo = "Box";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::TORUS:
|
||||||
|
aTypeInfo = "Torus";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::CONE:
|
||||||
|
aTypeInfo = "Cone";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::POLYHEDRON:
|
||||||
|
aTypeInfo = "Polyhedron";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::SOLID:
|
||||||
|
aTypeInfo = "Solid";
|
||||||
|
break;
|
||||||
|
// FACEs
|
||||||
|
case GEOM::GEOM_IKindOfShape::SPHERE2D:
|
||||||
|
aTypeInfo = "Spherical Face";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::CYLINDER2D:
|
||||||
|
aTypeInfo = "Cylindrical Face";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::TORUS2D:
|
||||||
|
aTypeInfo = "Toroidal Face";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::CONE2D:
|
||||||
|
aTypeInfo = "Conical Face";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::DISK_CIRCLE:
|
||||||
|
aTypeInfo = "Disk";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::DISK_ELLIPSE:
|
||||||
|
aTypeInfo = "Elliptical Face";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::POLYGON:
|
||||||
|
aTypeInfo = "Polygon";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::PLANE:
|
||||||
|
aTypeInfo = "Plane";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::PLANAR:
|
||||||
|
aTypeInfo = "Planar Face";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::FACE:
|
||||||
|
aTypeInfo = "Face";
|
||||||
|
break;
|
||||||
|
// EDGEs
|
||||||
|
case GEOM::GEOM_IKindOfShape::CIRCLE:
|
||||||
|
aTypeInfo = "Circle";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::ARC_CIRCLE:
|
||||||
|
aTypeInfo = "Ark";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::ELLIPSE:
|
||||||
|
aTypeInfo = "Ellipse";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::ARC_ELLIPSE:
|
||||||
|
aTypeInfo = "Arc Ellipse";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::LINE:
|
||||||
|
aTypeInfo = "Line";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::SEGMENT:
|
||||||
|
aTypeInfo = "Segment";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::EDGE:
|
||||||
|
aTypeInfo = "Edge";
|
||||||
|
break;
|
||||||
|
case GEOM::GEOM_IKindOfShape::VERTEX:
|
||||||
|
aTypeInfo = "Vertex";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char anInfo [strlen("Module ") + strlen(ComponentDataType()) + strlen(", ") + strlen(aTypeInfo)];
|
||||||
|
sprintf(anInfo, "Module %s, %s", ComponentDataType(), aTypeInfo);
|
||||||
|
|
||||||
|
return CORBA::string_dup(anInfo);
|
||||||
|
}
|
||||||
|
|
||||||
//=====================================================================================
|
//=====================================================================================
|
||||||
// EXPORTED METHODS
|
// EXPORTED METHODS
|
||||||
|
@ -231,6 +231,10 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
|
|||||||
|
|
||||||
GEOM::string_array* GetAllDumpNames();
|
GEOM::string_array* GetAllDumpNames();
|
||||||
|
|
||||||
|
// Object information
|
||||||
|
virtual bool hasObjectInfo();
|
||||||
|
virtual char* getObjectInfo(CORBA::Long studyId, const char* entry);
|
||||||
|
|
||||||
//-----------------------------------------------------------------------//
|
//-----------------------------------------------------------------------//
|
||||||
// Internal methods //
|
// Internal methods //
|
||||||
//-----------------------------------------------------------------------//
|
//-----------------------------------------------------------------------//
|
||||||
|
Loading…
Reference in New Issue
Block a user