//=============================================================================
char* SMESH_Hypothesis_i::GetEntry()
{
- return NULL;
+ char aBuf[100];
+ sprintf( aBuf, "%i", GetId() );
+ return CORBA::string_dup( aBuf );
}
//=============================================================================
* SMESH_Hypothesis_i::IsValid()
*/
//=============================================================================
-char* SMESH_Hypothesis_i::IsValid()
+CORBA::Boolean SMESH_Hypothesis_i::IsValid()
{
return true;
}
*
*/
//=============================================================================
-//void SMESH_Hypothesis_i::SetParameters(const char* theParameters)
void SMESH_Hypothesis_i::SetParameters( SALOME::Notebook_ptr theNotebook, const SALOME::StringArray& theParameters )
{
- /*
- SMESH_Gen_i *gen = SMESH_Gen_i::GetSMESHGen();
- char * aParameters = CORBA::string_dup(theParameters);
- if(gen){
- if(IsPublished()) {
- SMESH_Gen_i::GetSMESHGen()->UpdateParameters(SMESH::SMESH_Hypothesis::_narrow(_this()),aParameters);
- }
- else {
- myBaseImpl->SetParameters(gen->ParseParameters(aParameters));
- }
+ theNotebook->ClearDependencies( _this(), SALOME::Parameters );
+ std::list<std::string> aParams;
+ int n = theParameters.length();
+ for( int i=0; i<n; i++ )
+ {
+ std::string aParam = CORBA::string_dup( theParameters[i] );
+ aParams.push_back( aParam );
+
+ SALOME::Parameter_ptr aParamPtr = theNotebook->GetParameter( aParam.c_str() );
+ if( !CORBA::is_nil( aParamPtr ) )
+ theNotebook->AddDependency( _this(), aParamPtr );
}
- */
+ myBaseImpl->SetParameters( aParams );
+
+ UpdateStringAttribute();
}
//=============================================================================
*
*/
//=============================================================================
-//char* SMESH_Hypothesis_i::GetParameters()
SALOME::StringArray* SMESH_Hypothesis_i::GetParameters()
{
- /*
- SMESH_Gen_i *gen = SMESH_Gen_i::GetSMESHGen();
- char* aResult;
- if(IsPublished()) {
- MESSAGE("SMESH_Hypothesis_i::GetParameters() : Get Parameters from SObject");
- aResult = gen->GetParameters(SMESH::SMESH_Hypothesis::_narrow(_this()));
- }
- else {
- MESSAGE("SMESH_Hypothesis_i::GetParameters() : Get local parameters");
- aResult = myBaseImpl->GetParameters();
- }
- return CORBA::string_dup(aResult);
- */
- return NULL;
+ std::list<std::string> aParams = myBaseImpl->GetParameters();
+ SALOME::StringArray_var aRes = new SALOME::StringArray();
+ aRes->length( aParams.size() );
+ std::list<std::string>::const_iterator it = aParams.begin(), last = aParams.end();
+ for( int i=0; it!=last; it++, i++ )
+ aRes[i] = CORBA::string_dup( it->c_str() );
+ return aRes._retn();
}
//=============================================================================
{
}
+//=============================================================================
+/*!
+ * SMESH_Hypothesis_i::UpdateStringAttribute()
+ *
+ */
+//=============================================================================
+void SMESH_Hypothesis_i::UpdateStringAttribute()
+{
+ SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
+
+ SALOME::Notebook_ptr aNotebook = aSMESHGen->GetNotebook( myBaseImpl->GetStudyId() );
+
+ SALOME::StringArray* anObjectParameters = aNotebook->GetObjectParameters( GetComponent(), GetEntry() );
+ int aParametersLength = anObjectParameters ? anObjectParameters->length() : 0;
+ if( aParametersLength == 0 )
+ return;
+
+ SALOMEDS::Study_ptr aStudy = aSMESHGen->GetStudy( myBaseImpl->GetStudyId() );
+ SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
+ SALOMEDS::SObject_var aSObject = SMESH_Gen_i::ObjectToSObject( aStudy, SMESH::SMESH_Hypothesis::_narrow( _this() ) );
+ if( CORBA::is_nil( aSObject ) )
+ return;
+
+ SALOMEDS::GenericAttribute_var anAttr = aStudyBuilder->FindOrCreateAttribute( aSObject, "AttributeString" );
+ SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow( anAttr );
+
+ std::string aString;
+ for( int i = 0, n = anObjectParameters->length(); i < n; i++ ) {
+ std::string aParameter = anObjectParameters->operator[](i).in();
+ if( aParameter != "" )
+ {
+ if( aString != "" )
+ aString += ", ";
+ aString += aParameter;
+ }
+ }
+ aStringAttrib->SetValue( aString.c_str() );
+ aStringAttrib->Destroy();
+}
+
//=============================================================================
/*!
* SMESH_Hypothesis_i::GetImpl