From 601f20a91cd00731c0f3560c40060949cfc5c92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20Chi=C8=99?= Date: Tue, 25 Jun 2024 09:54:36 +0200 Subject: [PATCH] Initialize the phlow data source when creating a view specification --- .../GtPhlowViewSpecification.extension.st | 2 +- ...emoteLanguageProxyViewsAttachment.trait.st | 3 ++- .../GtPhlowBitmapViewSpecification.class.st | 4 ++-- ...lowBasicColumnedViewSpecification.class.st | 4 ++-- ...hlowColumnedListViewSpecification.class.st | 4 ++-- .../GtPhlowForwardViewSpecification.class.st | 5 +++-- .../GtPhlowListingViewSpecification.class.st | 4 +++- .../GtPhlowTextualViewSpecification.class.st | 2 +- ...GtPhlowViewErrorViewSpecification.class.st | 4 ++-- .../GtPhlowViewSpecification.class.st | 20 ++++++++++--------- 10 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/GToolkit-RemoteGt/GtPhlowViewSpecification.extension.st b/src/GToolkit-RemoteGt/GtPhlowViewSpecification.extension.st index 7350517b..905ac74a 100644 --- a/src/GToolkit-RemoteGt/GtPhlowViewSpecification.extension.st +++ b/src/GToolkit-RemoteGt/GtPhlowViewSpecification.extension.st @@ -12,7 +12,7 @@ GtPhlowViewSpecification class >> fromDictionary: viewDictionary [ "Answer the view specified by viewDictionary" | viewName | - viewName := viewDictionary at: #viewName. + viewName := viewDictionary at: 'viewName'. (viewName -> viewDictionary) asBeaconSignal emit. ^(Smalltalk globals at: viewName asSymbol) fromJSONDictionary: viewDictionary. ] diff --git a/src/GToolkit-RemoteGt/TGtRemoteLanguageProxyViewsAttachment.trait.st b/src/GToolkit-RemoteGt/TGtRemoteLanguageProxyViewsAttachment.trait.st index d66afe98..62679c48 100644 --- a/src/GToolkit-RemoteGt/TGtRemoteLanguageProxyViewsAttachment.trait.st +++ b/src/GToolkit-RemoteGt/TGtRemoteLanguageProxyViewsAttachment.trait.st @@ -24,7 +24,8 @@ TGtRemoteLanguageProxyViewsAttachment >> declarativeViews [ declarativeViewDeclarations := declarativeData at: 'views' ifAbsent: [ #() ]. rawViews := declarativeViewDeclarations collect: [ :declarativeViewData | | declarativeView | - declarativeView := GtPhlowViewSpecification fromDictionary: declarativeViewData. + declarativeView := GtPhlowViewSpecification + fromDictionary: declarativeViewData. declarativeView initializeFromInspector: remoteInspectorProxy. declarativeView ] ]. diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews-GTSpecific/GtPhlowBitmapViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews-GTSpecific/GtPhlowBitmapViewSpecification.class.st index fa8ac89a..a80b3bbd 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews-GTSpecific/GtPhlowBitmapViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews-GTSpecific/GtPhlowBitmapViewSpecification.class.st @@ -13,7 +13,7 @@ GtPhlowBitmapViewSpecification class >> fromJSONDictionary: aDictionary [ editor := super fromJSONDictionary: aDictionary. editor dataTransport = self dataIncluded - ifTrue: [ editor bitmap: (GtRemotePhlowBitmapSpecification fromJSONDictionary: (aDictionary at: #bitmap)) ]. + ifTrue: [ editor bitmap: (GtRemotePhlowBitmapSpecification fromJSONDictionary: (aDictionary at: 'bitmap')) ]. ^ editor ] @@ -25,7 +25,7 @@ GtPhlowBitmapViewSpecification >> asDictionaryForExport [ dictionary := super asDictionaryForExport. self dataTransport = self class dataIncluded ifTrue: [ - dictionary at: #bitmap put: bitmap asDictionaryForExport ]. + dictionary at: 'bitmap' put: bitmap asDictionaryForExport ]. ^ dictionary ] diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowBasicColumnedViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowBasicColumnedViewSpecification.class.st index 03eaab52..e8cc6d83 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowBasicColumnedViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowBasicColumnedViewSpecification.class.st @@ -14,7 +14,7 @@ GtPhlowBasicColumnedViewSpecification class >> fromJSONDictionary: aDictionary [ list := super fromJSONDictionary: aDictionary. list - columnSpecifications: ((aDictionary at: #columnSpecifications) + columnSpecifications: ((aDictionary at: 'columnSpecifications') collect: [ :aColumnSpecificationJson | GtRemotePhlowColumnSpecification fromJSONDictionary: aColumnSpecificationJson ]). @@ -25,7 +25,7 @@ GtPhlowBasicColumnedViewSpecification class >> fromJSONDictionary: aDictionary [ { #category : #converting } GtPhlowBasicColumnedViewSpecification >> asDictionaryForExport [ ^ super asDictionaryForExport - at: #columnSpecifications put: (self columnSpecifications + at: 'columnSpecifications' put: (self columnSpecifications collect: [ :aColumnSpecification | aColumnSpecification asDictionaryForExport ]); yourself diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowColumnedListViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowColumnedListViewSpecification.class.st index d5662aae..fc557cd1 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowColumnedListViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowColumnedListViewSpecification.class.st @@ -29,14 +29,14 @@ Class { GtPhlowColumnedListViewSpecification class >> fromJSONDictionary: aDictionary [ ^ (super fromJSONDictionary: aDictionary) horizontalScrollingEnabled: (aDictionary - at: #horizontalScrollingEnabled + at: 'horizontalScrollingEnabled' ifAbsent: [ nil ]) ] { #category : #converting } GtPhlowColumnedListViewSpecification >> asDictionaryForExport [ ^ super asDictionaryForExport - at: #horizontalScrollingEnabled put: horizontalScrollingEnabled; + at: 'horizontalScrollingEnabled' put: horizontalScrollingEnabled; yourself ] diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowForwardViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowForwardViewSpecification.class.st index f976c742..e56010e2 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowForwardViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowForwardViewSpecification.class.st @@ -16,8 +16,9 @@ GtPhlowForwardViewSpecification >> getDeclarativeViewFor: aViewSelector [ { #category : #accessing } GtPhlowForwardViewSpecification >> initializeFromInspector: anInspector [ - self phlowDataSource: (anInspector - getDeclarativeViewFor: self methodSelector) + self phlowDataSource ifNil: [ + self phlowDataSource: (anInspector + getDeclarativeViewFor: self methodSelector) ] ] { #category : #'api - accessing' } diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowListingViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowListingViewSpecification.class.st index 6b9d5e8f..41caaa80 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowListingViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowListingViewSpecification.class.st @@ -22,7 +22,9 @@ GtPhlowListingViewSpecification >> flushItemsIterator [ { #category : #initialization } GtPhlowListingViewSpecification >> initializeFromInspector: anInspector [ - self phlowDataSource: (anInspector getDeclarativeViewFor: self methodSelector) + self phlowDataSource ifNil: [ + self phlowDataSource: (anInspector + getDeclarativeViewFor: self methodSelector) ] ] { #category : #accessing } diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowTextualViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowTextualViewSpecification.class.st index 0080996e..ca06cfb0 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowTextualViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowTextualViewSpecification.class.st @@ -13,7 +13,7 @@ GtPhlowTextualViewSpecification >> getText [ GtPhlowTextualViewSpecification >> initializeFromInspector: anInspector [ self dataTransport = self class dataIncluded ifTrue: [ ^ self ]. - phlowDataSource ifNil: [ + self phlowDataSource ifNil: [ self phlowDataSource: (anInspector getDeclarativeViewFor: self methodSelector) ] ] diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewErrorViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewErrorViewSpecification.class.st index 4b39c27a..341397d4 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewErrorViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewErrorViewSpecification.class.st @@ -11,13 +11,13 @@ Class { GtPhlowViewErrorViewSpecification class >> fromJSONDictionary: aDictionary [ ^ (super fromJSONDictionary: aDictionary) - errorMessage: (aDictionary at: #errorMessage ifAbsent: [ nil ]) + errorMessage: (aDictionary at: 'errorMessage' ifAbsent: [ nil ]) ] { #category : #converting } GtPhlowViewErrorViewSpecification >> asDictionaryForExport [ ^ super asDictionaryForExport - at: #errorMessage put: errorMessage; + at: 'errorMessage' put: errorMessage; yourself ] diff --git a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewSpecification.class.st b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewSpecification.class.st index 5d59d919..57b1fd23 100644 --- a/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewSpecification.class.st +++ b/src/GToolkit-RemotePhlow-DeclarativeViews/GtPhlowViewSpecification.class.st @@ -59,10 +59,12 @@ GtPhlowViewSpecification class >> fromJSONDictionary: aDictionary [ Subclasses will override this to add their specific attributes" ^self new - title: (aDictionary at: #title); - priority: (aDictionary at: #priority); - dataTransport: (aDictionary at: #dataTransport); - methodSelector: (aDictionary at: #methodSelector); + title: (aDictionary at: 'title'); + priority: (aDictionary at: 'priority'); + dataTransport: (aDictionary at: 'dataTransport'); + methodSelector: (aDictionary at: 'methodSelector'); + phlowDataSource: (aDictionary + at: 'phlowDataSource' ifAbsent: [ nil ]); yourself ] @@ -72,11 +74,11 @@ GtPhlowViewSpecification >> asDictionaryForExport [ Subclasses will override and add to the dictionary" ^ Dictionary new - at: #viewName put: self viewName; - at: #title put: title; - at: #priority put: priority; - at: #dataTransport put: dataTransport; - at: #methodSelector put: methodSelector; + at: 'viewName' put: self viewName; + at: 'title' put: title; + at: 'priority' put: priority; + at: 'dataTransport' put: dataTransport; + at: 'methodSelector' put: methodSelector; yourself ]