X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCalc%2Fgui%2FDatasourceController.cxx;h=49a2a0720f8df68e45b3e771e5270fec7205a71e;hb=0946beb4bbeefcdea393f97fcb63654e1dca2eab;hp=04beddd78aa65995295f8045ba72802a33d8356d;hpb=aec2051b4624c4fdc835a901e30a4b7801022af5;p=modules%2Fmed.git diff --git a/src/MEDCalc/gui/DatasourceController.cxx b/src/MEDCalc/gui/DatasourceController.cxx index 04beddd78..49a2a0720 100644 --- a/src/MEDCalc/gui/DatasourceController.cxx +++ b/src/MEDCalc/gui/DatasourceController.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2019 CEA/DEN, EDF R&D +// Copyright (C) 2007-2021 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -75,7 +75,8 @@ void DatasourceController::createActions() { QString tooltip = tr("TIP_ADD_DATA_SOURCE"); QString icon = tr("ICO_DATASOURCE_ADD"); int actionId; - actionId = _salomeModule->createStandardAction(label,this, SLOT(OnAddDatasource()),icon,tooltip); + actionId = _salomeModule->createStandardAction(label, this, SLOT(OnAddDatasource()), + icon, tooltip, FIELDSOp::OpAddDataSource); _salomeModule->createTool(actionId, toolbarId); // This action has to be placed in the general file menu with the label "Import MED file" @@ -220,9 +221,20 @@ void DatasourceController::OnAddImagesource() void DatasourceController::OnExpandField() { + SALOMEDS::Study_var aStudy = KERNEL::getStudyServant(); + // check if reference to study is valid + if (CORBA::is_nil(aStudy)) + return; + + // check if reference to use case builder is valid + SALOMEDS::UseCaseBuilder_var useCaseBuilder = aStudy->GetUseCaseBuilder(); + if (CORBA::is_nil(useCaseBuilder)) + return; + + // Get the selected objects in the study (SObject) SALOME_StudyEditor::SObjectList* listOfSObject = _studyEditor->getSelectedObjects(); - for (int i=0; isize(); i++) { + for (int i=0; i<(int)listOfSObject->size(); i++) { SALOMEDS::SObject_var soFieldseries = listOfSObject->at(i); std::string name(_studyEditor->getName(soFieldseries)); if (soFieldseries->_is_nil() || name == "MEDCalc") @@ -231,11 +243,11 @@ void DatasourceController::OnExpandField() // First retrieve the fieldseries id associated to this study object SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; - if ( soFieldseries->FindAttribute(anAttr,"AttributeParameter") ) { - aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); - if (! aParam->IsSet(FIELD_SERIES_ID, PT_INTEGER)) - return; - } + if ( !soFieldseries->FindAttribute(anAttr,"AttributeParameter") ) + return; + aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); + if (! aParam->IsSet(FIELD_SERIES_ID, PT_INTEGER)) + return; long fieldseriesId = aParam->GetInt(FIELD_SERIES_ID); STDLOG("Expand the field timeseries "<setName(soField,label.c_str()); _studyEditor->setParameterInt(soField, FIELD_ID, fieldHandler.id); _studyEditor->setParameterBool(soField,IS_IN_WORKSPACE,false); + useCaseBuilder->AppendTo(soField->GetFather(), soField); } } _salomeModule->updateObjBrowser(true); @@ -284,11 +297,11 @@ void DatasourceController::OnUseInWorkspace() { return; SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; - if ( soField->FindAttribute(anAttr,"AttributeParameter") ) { - aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); - if (! aParam->IsSet(IS_IN_WORKSPACE, PT_BOOLEAN)) - return; - } + if ( !soField->FindAttribute(anAttr,"AttributeParameter") ) + return; + aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); + if (! aParam->IsSet(IS_IN_WORKSPACE, PT_BOOLEAN)) + return; bool isInWorkspace = aParam->GetBool(IS_IN_WORKSPACE); if ( isInWorkspace ) { QMessageBox::warning(_salomeModule->getApp()->desktop(), @@ -347,17 +360,17 @@ void DatasourceController::OnUseInWorkspace() { else { // In this case, we don't ask the user to specify an alias for // each item, we just import the whole set of items. - for (int i=0; isize(); i++) { + for (int i=0; i<(int)listOfSObject->size(); i++) { SALOMEDS::SObject_var soField = listOfSObject->at(i); if (soField->_is_nil()) continue; SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; - if ( soField->FindAttribute(anAttr,"AttributeParameter") ) { - aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); - if (! aParam->IsSet(IS_IN_WORKSPACE, PT_BOOLEAN)) - return; - } + if ( !soField->FindAttribute(anAttr,"AttributeParameter") ) + return; + aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); + if (! aParam->IsSet(IS_IN_WORKSPACE, PT_BOOLEAN)) + return; bool isInWorkspace = aParam->GetBool(IS_IN_WORKSPACE); if ( !isInWorkspace ) { if (! aParam->IsSet(FIELD_ID, PT_INTEGER))