-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2019 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
MED_ORB::MED_Gen_var MEDModule::_MED_engine;
MEDModule::MEDModule() :
- SalomeApp_Module("MED"), _studyEditor(0),
+ SalomeApp_Module("FIELDS"), _studyEditor(0),
_datasourceController(0), _workspaceController(0), _presentationController(0),
_processingController(0), _pvGuiElements(0)
{
+ STDLOG("MEDModule::MEDModule()");
// Note also that we can't use the getApp() function here because
// the initialize(...) function has not been called yet.
MEDModule::~MEDModule()
{
+ // Clean up engine:
+ STDLOG("MEDModule::~MEDModule(): cleaning up engine side.");
+ _MED_engine->cleanUp();
+ MEDFactoryClient::getFactory()->getPresentationManager()->cleanUp();
+ MEDFactoryClient::getFactory()->getDataManager()->cleanUp();
+
if (_studyEditor)
delete _studyEditor;
if (_datasourceController)
void
MEDModule::init()
{
- // initialize MED module engine (load, if necessary)
+ // initialize FIELDS module engine (load, if necessary)
if ( CORBA::is_nil( _MED_engine ) ) {
Engines::EngineComponent_var comp =
- SalomeApp_Application::lcc()->FindOrLoad_Component( "FactoryServer", "MED" );
+ SalomeApp_Application::lcc()->FindOrLoad_Component( "FactoryServer", "FIELDS" );
+ if (CORBA::is_nil( comp ))
+ STDLOG("Could not FindOrLoad_Component FIELDS");
_MED_engine = MED_ORB::MED_Gen::_narrow( comp );
+ if (CORBA::is_nil( _MED_engine ))
+ STDLOG("Could not narrow FIELDS engine");
}
}
void
MEDModule::initialize( CAM_Application* app )
{
+ STDLOG("MEDModule::initialize()");
// call the parent implementation
SalomeApp_Module::initialize( app );
+ if (! getApp()->objectBrowser())
+ getApp()->getWindow(SalomeApp_Application::WT_ObjectBrowser);
+
getApp()->objectBrowser()->setAutoOpenLevel(5);
if (app && app->desktop()) {
// The following initializes the GUI widget and associated actions
this->createModuleWidgets();
this->createModuleActions();
+
+ // Now that the workspace controller is created, ParaView core application has normally been started,
+ // and hidden GUI elements have been created. We can fire the VCR toolbar activation:
+ initToolbars();
}
QString
void
MEDModule::windows( QMap<int, int>& theMap ) const
{
+ STDLOG("MEDModule::windows()");
// want Object browser, in the left area
theMap.insert( SalomeApp_Application::WT_ObjectBrowser,
Qt::LeftDockWidgetArea );
bool
MEDModule::activateModule( SUIT_Study* theStudy )
{
+ STDLOG("MEDModule::activateModule()");
if ( CORBA::is_nil( _MED_engine ) )
return false;
bool
MEDModule::deactivateModule( SUIT_Study* theStudy )
{
+ STDLOG("MEDModule::deactivateModule()");
_workspaceController->showDockWidgets(false);
_presentationController->showDockWidgets(false);
//this->unsetDockLayout();
connect(_workspaceController, SIGNAL(workspaceSignal(const MEDCALC::MedEvent*)),
_presentationController, SLOT(processWorkspaceEvent(const MEDCALC::MedEvent*)));
-
-
- // Now that the workspace controller is created, ParaView core application has normally been started,
- // and hidden GUI elements have been created. We can fire the VCR toolbar activation:
- initToolbars();
}
void
if (iconName.isEmpty())
ico = QIcon();
else
- ico = QIcon(resMgr->loadPixmap("MED", iconName));
+ ico = QIcon(resMgr->loadPixmap("FIELDS", iconName));
QAction* action = createAction(-1,
label,
//}
+/**
+ * Returns presentation name, type and ID from the currently selected presentation in the object
+ * browser.
+ */
bool
-MEDModule::itemClickGeneric(const QModelIndex & index, std::string & name, std::string & type, int & fieldId, int & presId) const
+MEDModule::itemClickGeneric(std::string & name, std::string & type, int & presId) const
{
DataObjectList dol = getApp()->objectBrowser()->getSelected();
if (dol.isEmpty())
if (!model)
return false;
- if (item->componentDataType().toStdString() != "MED")
+ if (item->componentDataType().toStdString() != "FIELDS")
return false;
_PTR(SObject) obj = item->object();
_PTR(GenericAttribute) anAttribute;
|| ! attrParam->GetBool(IS_PRESENTATION)) { // Not a presentation
return false;
}
- if (!attrParam->IsSet(FIELD_ID, PT_INTEGER))
- return false;
- fieldId = attrParam->GetInt(FIELD_ID);
+// if (!attrParam->IsSet(FIELD_ID, PT_INTEGER))
+// return false;
+// fieldId = attrParam->GetInt(FIELD_ID);
if (!attrParam->IsSet(PRESENTATION_ID, PT_INTEGER))
return false;
presId = attrParam->GetInt(PRESENTATION_ID);
void
MEDModule::onClick(const QModelIndex & index)
{
- int fieldId, presId;
+ int presId;
std::string name, type;
- if (!itemClickGeneric(index, name, type, fieldId, presId))
+ if (!itemClickGeneric(name, type, presId))
{
// Not a presentation - clear widget:
emit presentationSelected(-1, QString(""), QString(""));
void
MEDModule::onDblClick(const QModelIndex& index)
{
- int fieldId, presId;
+ int presId;
std::string name, type;
- if (!itemClickGeneric(index, name, type, fieldId, presId))
+ if (!itemClickGeneric(name, type, presId))
return;
- STDLOG("Presentation edition: NOT IMPLEMENTED YET");
- STDLOG(" Presentation infos:");
+// STDLOG("Presentation double click");
+// STDLOG(" Presentation infos:");
// STDLOG(" - Component: " + item->componentDataType().toStdString());
// STDLOG(" - Item entry: " + item->entry().toStdString());
// STDLOG(" - Item name: " + item->name().toStdString());
- std::ostringstream oss;
- oss << fieldId;
- STDLOG(" - Field id: " + oss.str());
- STDLOG(" - Presentation name: " + name);
-
- // :TODO:
- // get edited values from a popup widget
- // get presentation
- // call presentation edit function
-
+// std::ostringstream oss;
+// oss << fieldId;
+// STDLOG(" - Field id: " + oss.str());
+// STDLOG(" - Presentation name: " + name);
}
void
//{
// return _eventLoopStarted;
//}
+
+int
+MEDModule::getIntParamFromStudyEditor(SALOMEDS::SObject_var obj, const char* name)
+{
+ if (obj->_is_nil())
+ return -1;
+
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeParameter_var aParam;
+ if ( obj->FindAttribute(anAttr,"AttributeParameter") ) {
+ aParam = SALOMEDS::AttributeParameter::_narrow(anAttr);
+ if (aParam->IsSet(name, PT_INTEGER))
+ return aParam->GetInt(name);
+ }
+ return -1;
+}