mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Move to use a static registry of scriptable classes
This commit is contained in:
@@ -78,6 +78,7 @@ def copy_from(self, object):
|
||||
for attribute in dir(object):
|
||||
if not attribute.startswith('__'):
|
||||
value = getattr(object, attribute)
|
||||
# This is crucial to avoid overwriting methods
|
||||
if not callable(value):
|
||||
setattr(self, attribute, value)
|
||||
|
||||
|
||||
@@ -90,12 +90,7 @@ def cases(self):
|
||||
Returns:
|
||||
A list of rips Case objects
|
||||
"""
|
||||
pdm_objects = self.descendants(Case.__name__)
|
||||
|
||||
cases = []
|
||||
for pdm_object in pdm_objects:
|
||||
cases.append(pdm_object.cast(Case))
|
||||
return cases
|
||||
return self.descendants(Case)
|
||||
|
||||
@add_method(Project)
|
||||
def case(self, case_id):
|
||||
@@ -142,11 +137,7 @@ def create_grid_case_group(self, case_paths):
|
||||
@add_method(Project)
|
||||
def views(self):
|
||||
"""Get a list of views belonging to a project"""
|
||||
pdm_objects = self.descendants("ReservoirView")
|
||||
view_list = []
|
||||
for pdm_object in pdm_objects:
|
||||
view_list.append(View(pdm_object))
|
||||
return view_list
|
||||
return self.descendants(View)
|
||||
|
||||
@add_method(Project)
|
||||
def view(self, view_id):
|
||||
|
||||
@@ -7,11 +7,11 @@ import rips.generated.Commands_pb2 as Cmd
|
||||
|
||||
import rips.case # Circular import of Case, which already imports View. Use full name.
|
||||
from rips.pdmobject import add_method
|
||||
from rips.generated.pdm_objects import View, ViewWindow, ReservoirView, GeoMechView
|
||||
from rips.generated.pdm_objects import View, ViewWindow, EclipseView, GeoMechView
|
||||
|
||||
@add_method(View)
|
||||
def is_eclipse_view(self):
|
||||
return isinstance(self, ReservoirView)
|
||||
return isinstance(self, EclipseView)
|
||||
|
||||
@add_method(View)
|
||||
def is_geomech_view(self):
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGrpcCallbacks.h"
|
||||
#include "RicfObjectCapability.h"
|
||||
#include "Rim3dView.h"
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
#include "RimProject.h"
|
||||
@@ -36,8 +37,11 @@ grpc::Status RiaGrpcPdmObjectService::GetAncestorPdmObject( grpc::ServerContext*
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
std::vector<caf::PdmObject*> objectsOfCurrentClass;
|
||||
project->descendantsIncludingThisFromClassKeyword( QString::fromStdString( request->object().class_keyword() ),
|
||||
objectsOfCurrentClass );
|
||||
|
||||
QString scriptClassName = QString::fromStdString( request->object().class_keyword() );
|
||||
QString classKeyword = RicfObjectCapability::classKeywordFromScriptClassName( scriptClassName );
|
||||
|
||||
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );
|
||||
|
||||
caf::PdmObject* matchingObject = nullptr;
|
||||
for ( caf::PdmObject* testObject : objectsOfCurrentClass )
|
||||
@@ -50,9 +54,10 @@ grpc::Status RiaGrpcPdmObjectService::GetAncestorPdmObject( grpc::ServerContext*
|
||||
|
||||
if ( matchingObject )
|
||||
{
|
||||
caf::PdmObject* parentObject = nullptr;
|
||||
matchingObject->firstAncestorOrThisFromClassKeyword( QString::fromStdString( request->parent_keyword() ),
|
||||
parentObject );
|
||||
caf::PdmObject* parentObject = nullptr;
|
||||
QString ancestorScriptName = QString::fromStdString( request->parent_keyword() );
|
||||
QString ancestorClassKeyword = RicfObjectCapability::classKeywordFromScriptClassName( ancestorScriptName );
|
||||
matchingObject->firstAncestorOrThisFromClassKeyword( ancestorClassKeyword, parentObject );
|
||||
if ( parentObject )
|
||||
{
|
||||
copyPdmObjectFromCafToRips( parentObject, reply );
|
||||
@@ -71,8 +76,11 @@ grpc::Status RiaGrpcPdmObjectService::GetDescendantPdmObjects( grpc::ServerConte
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
std::vector<caf::PdmObject*> objectsOfCurrentClass;
|
||||
project->descendantsIncludingThisFromClassKeyword( QString::fromStdString( request->object().class_keyword() ),
|
||||
objectsOfCurrentClass );
|
||||
|
||||
QString scriptClassName = QString::fromStdString( request->object().class_keyword() );
|
||||
QString classKeyword = RicfObjectCapability::classKeywordFromScriptClassName( scriptClassName );
|
||||
|
||||
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );
|
||||
|
||||
caf::PdmObject* matchingObject = nullptr;
|
||||
for ( caf::PdmObject* testObject : objectsOfCurrentClass )
|
||||
@@ -86,8 +94,9 @@ grpc::Status RiaGrpcPdmObjectService::GetDescendantPdmObjects( grpc::ServerConte
|
||||
if ( matchingObject )
|
||||
{
|
||||
std::vector<caf::PdmObject*> childObjects;
|
||||
matchingObject->descendantsIncludingThisFromClassKeyword( QString::fromStdString( request->child_keyword() ),
|
||||
childObjects );
|
||||
QString childClassKeyword =
|
||||
RicfObjectCapability::classKeywordFromScriptClassName( QString::fromStdString( request->child_keyword() ) );
|
||||
matchingObject->descendantsIncludingThisFromClassKeyword( childClassKeyword, childObjects );
|
||||
for ( auto pdmChild : childObjects )
|
||||
{
|
||||
rips::PdmObject* ripsChild = reply->add_objects();
|
||||
@@ -107,8 +116,11 @@ grpc::Status RiaGrpcPdmObjectService::GetChildPdmObjects( grpc::ServerContext*
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
std::vector<caf::PdmObject*> objectsOfCurrentClass;
|
||||
project->descendantsIncludingThisFromClassKeyword( QString::fromStdString( request->object().class_keyword() ),
|
||||
objectsOfCurrentClass );
|
||||
|
||||
QString scriptClassName = QString::fromStdString( request->object().class_keyword() );
|
||||
QString classKeyword = RicfObjectCapability::classKeywordFromScriptClassName( scriptClassName );
|
||||
|
||||
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );
|
||||
|
||||
caf::PdmObject* matchingObject = nullptr;
|
||||
for ( caf::PdmObject* testObject : objectsOfCurrentClass )
|
||||
@@ -152,8 +164,11 @@ grpc::Status RiaGrpcPdmObjectService::UpdateExistingPdmObject( grpc::ServerConte
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
std::vector<caf::PdmObject*> objectsOfCurrentClass;
|
||||
project->descendantsIncludingThisFromClassKeyword( QString::fromStdString( request->class_keyword() ),
|
||||
objectsOfCurrentClass );
|
||||
|
||||
QString scriptClassName = QString::fromStdString( request->class_keyword() );
|
||||
QString classKeyword = RicfObjectCapability::classKeywordFromScriptClassName( scriptClassName );
|
||||
|
||||
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );
|
||||
|
||||
caf::PdmObject* matchingObject = nullptr;
|
||||
for ( caf::PdmObject* pdmObject : objectsOfCurrentClass )
|
||||
@@ -196,8 +211,11 @@ grpc::Status RiaGrpcPdmObjectService::CreateChildPdmObject( grpc::ServerContext*
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
std::vector<caf::PdmObject*> objectsOfCurrentClass;
|
||||
project->descendantsIncludingThisFromClassKeyword( QString::fromStdString( request->object().class_keyword() ),
|
||||
objectsOfCurrentClass );
|
||||
|
||||
QString scriptClassName = QString::fromStdString( request->object().class_keyword() );
|
||||
QString classKeyword = RicfObjectCapability::classKeywordFromScriptClassName( scriptClassName );
|
||||
|
||||
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );
|
||||
|
||||
caf::PdmObject* matchingObject = nullptr;
|
||||
for ( caf::PdmObject* testObject : objectsOfCurrentClass )
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "RicfFieldHandle.h"
|
||||
#include "RicfMessages.h"
|
||||
#include "RicfObjectCapability.h"
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
@@ -69,7 +70,9 @@ void RiaGrpcServiceInterface::copyPdmObjectFromCafToRips( const caf::PdmObjectHa
|
||||
{
|
||||
CAF_ASSERT( source && destination && source->xmlCapability() );
|
||||
|
||||
destination->set_class_keyword( source->xmlCapability()->classKeyword().toStdString() );
|
||||
QString classKeyword = source->xmlCapability()->classKeyword();
|
||||
QString scriptName = RicfObjectCapability::scriptClassNameFromClassKeyword( classKeyword );
|
||||
destination->set_class_keyword( scriptName.toStdString() );
|
||||
destination->set_address( reinterpret_cast<uint64_t>( source ) );
|
||||
|
||||
bool visible = true;
|
||||
@@ -112,7 +115,6 @@ void RiaGrpcServiceInterface::copyPdmObjectFromCafToRips( const caf::PdmObjectHa
|
||||
void RiaGrpcServiceInterface::copyPdmObjectFromRipsToCaf( const rips::PdmObject* source, caf::PdmObjectHandle* destination )
|
||||
{
|
||||
CAF_ASSERT( source && destination && destination->xmlCapability() );
|
||||
CAF_ASSERT( destination->xmlCapability()->matchesClassKeyword( QString::fromStdString( source->class_keyword() ) ) );
|
||||
|
||||
if ( destination->uiCapability() && destination->uiCapability()->objectToggleField() )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user