#6320 Refactor of PdmScripting

* Make base class abstract
* Implement support for IOHandling for PdmChild and PdmChildArray fields
This commit is contained in:
Gaute Lindkvist
2020-08-21 11:13:07 +02:00
parent 2ec5f83dad
commit f82b2f73ec
107 changed files with 1492 additions and 1113 deletions

View File

@@ -22,11 +22,11 @@
#include "RimEclipseResultDefinition.h"
#include "RimProject.h"
#include "cafPdmFieldScriptability.h"
#include "cafPdmAbstractFieldScriptingCapability.h"
#include "cafPdmObject.h"
#include "cafPdmObjectMethod.h"
#include "cafPdmObjectScriptability.h"
#include "cafPdmObjectScriptabilityRegister.h"
#include "cafPdmObjectScriptingCapability.h"
#include "cafPdmObjectScriptingCapabilityRegister.h"
using namespace rips;
@@ -172,7 +172,7 @@ Status RiaPdmObjectMethodStateHandler::init( const rips::PdmObjectGetterRequest*
m_fieldOwner->fields( fields );
for ( auto field : fields )
{
auto scriptability = field->capability<caf::PdmFieldScriptability>();
auto scriptability = field->capability<caf::PdmAbstractFieldScriptingCapability>();
if ( scriptability && scriptability->scriptFieldName() == fieldName )
{
caf::PdmProxyFieldHandle* proxyField = dynamic_cast<caf::PdmProxyFieldHandle*>( field );
@@ -226,7 +226,7 @@ Status RiaPdmObjectMethodStateHandler::init( const rips::PdmObjectSetterChunk* c
m_fieldOwner->fields( fields );
for ( auto field : fields )
{
auto scriptability = field->capability<caf::PdmFieldScriptability>();
auto scriptability = field->capability<caf::PdmAbstractFieldScriptingCapability>();
if ( scriptability && scriptability->scriptFieldName() == fieldName )
{
caf::PdmProxyFieldHandle* proxyField = dynamic_cast<caf::PdmProxyFieldHandle*>( field );
@@ -340,7 +340,7 @@ grpc::Status RiaGrpcPdmObjectService::GetAncestorPdmObject( grpc::ServerContext*
std::vector<caf::PdmObject*> objectsOfCurrentClass;
QString scriptClassName = QString::fromStdString( request->object().class_keyword() );
QString classKeyword = caf::PdmObjectScriptabilityRegister::classKeywordFromScriptClassName( scriptClassName );
QString classKeyword = caf::PdmObjectScriptingCapabilityRegister::classKeywordFromScriptClassName( scriptClassName );
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );
@@ -358,7 +358,7 @@ grpc::Status RiaGrpcPdmObjectService::GetAncestorPdmObject( grpc::ServerContext*
caf::PdmObject* parentObject = nullptr;
QString ancestorScriptName = QString::fromStdString( request->parent_keyword() );
QString ancestorClassKeyword =
caf::PdmObjectScriptabilityRegister::classKeywordFromScriptClassName( ancestorScriptName );
caf::PdmObjectScriptingCapabilityRegister::classKeywordFromScriptClassName( ancestorScriptName );
matchingObject->firstAncestorOrThisFromClassKeyword( ancestorClassKeyword, parentObject );
if ( parentObject )
{
@@ -381,7 +381,7 @@ grpc::Status RiaGrpcPdmObjectService::GetDescendantPdmObjects( grpc::ServerConte
if ( matchingObject )
{
std::vector<caf::PdmObject*> childObjects;
QString childClassKeyword = caf::PdmObjectScriptabilityRegister::classKeywordFromScriptClassName(
QString childClassKeyword = caf::PdmObjectScriptingCapabilityRegister::classKeywordFromScriptClassName(
QString::fromStdString( request->child_keyword() ) );
matchingObject->descendantsIncludingThisFromClassKeyword( childClassKeyword, childObjects );
for ( auto pdmChild : childObjects )
@@ -409,7 +409,7 @@ grpc::Status RiaGrpcPdmObjectService::GetChildPdmObjects( grpc::ServerContext*
matchingObject->fields( fields );
for ( auto field : fields )
{
auto scriptability = field->capability<caf::PdmFieldScriptability>();
auto scriptability = field->capability<caf::PdmAbstractFieldScriptingCapability>();
if ( scriptability && scriptability->scriptFieldName() == fieldName )
{
std::vector<caf::PdmObjectHandle*> childObjects;
@@ -612,7 +612,7 @@ caf::PdmObject* RiaGrpcPdmObjectService::findCafObjectFromScriptNameAndAddress(
RimProject* project = RimProject::current();
std::vector<caf::PdmObject*> objectsOfCurrentClass;
QString classKeyword = caf::PdmObjectScriptabilityRegister::classKeywordFromScriptClassName( scriptClassName );
QString classKeyword = caf::PdmObjectScriptingCapabilityRegister::classKeywordFromScriptClassName( scriptClassName );
project->descendantsIncludingThisFromClassKeyword( classKeyword, objectsOfCurrentClass );

View File

@@ -20,17 +20,18 @@
#include "RimCase.h"
#include "RimProject.h"
#include "cafPdmAbstractFieldScriptingCapability.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmChildField.h"
#include "cafPdmDataValueField.h"
#include "cafPdmFieldScriptability.h"
#include "cafPdmObject.h"
#include "cafPdmObjectScriptability.h"
#include "cafPdmObjectScriptabilityRegister.h"
#include "cafPdmObjectScriptingCapability.h"
#include "cafPdmObjectScriptingCapabilityRegister.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmScriptIOMessages.h"
#include "cafPdmXmlFieldHandle.h"
#include <grpcpp/grpcpp.h>
#include <PdmObject.pb.h>
@@ -71,7 +72,7 @@ void RiaGrpcServiceInterface::copyPdmObjectFromCafToRips( const caf::PdmObjectHa
CAF_ASSERT( source && destination && source->xmlCapability() );
QString classKeyword = source->xmlCapability()->classKeyword();
QString scriptName = caf::PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
QString scriptName = caf::PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
destination->set_class_keyword( scriptName.toStdString() );
destination->set_address( reinterpret_cast<uint64_t>( source ) );
@@ -97,7 +98,7 @@ void RiaGrpcServiceInterface::copyPdmObjectFromCafToRips( const caf::PdmObjectHa
if ( pdmValueField )
{
QString keyword = pdmValueField->keyword();
auto ricfHandle = field->template capability<caf::PdmFieldScriptability>();
auto ricfHandle = field->template capability<caf::PdmAbstractFieldScriptingCapability>();
if ( ricfHandle != nullptr )
{
auto pdmProxyField = dynamic_cast<const caf::PdmProxyFieldHandle*>( field );
@@ -139,7 +140,7 @@ void RiaGrpcServiceInterface::copyPdmObjectFromRipsToCaf( const rips::PdmObject*
auto parametersMap = source->parameters();
for ( auto field : fields )
{
auto scriptability = field->template capability<caf::PdmFieldScriptability>();
auto scriptability = field->template capability<caf::PdmAbstractFieldScriptingCapability>();
if ( scriptability )
{
QString keyword = scriptability->scriptFieldName();
@@ -164,7 +165,7 @@ bool RiaGrpcServiceInterface::assignFieldValue( const QString& stringValue
{
CAF_ASSERT( oldValue && newValue );
auto scriptability = field->template capability<caf::PdmFieldScriptability>();
auto scriptability = field->template capability<caf::PdmAbstractFieldScriptingCapability>();
if ( field && scriptability != nullptr )
{
caf::PdmValueField* valueField = dynamic_cast<caf::PdmValueField*>( field );