Skip to content

Commit

Permalink
Return a class specification with views and actions [feenkcom/gtoolki…
Browse files Browse the repository at this point in the history
  • Loading branch information
chisandrei committed Sep 30, 2024
1 parent 8c9ac36 commit 45539ec
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ Class {
'remoteViewedObject',
'viewSpecificationsBySelector',
'actionSpecificationsBySelector',
'gtDisplayString'
'gtDisplayString',
'classSpecification'
],
#category : #'GToolkit-RemoteGt-InspectorCore'
}
Expand Down Expand Up @@ -59,6 +60,12 @@ GtLocalPhlowViewedObject >> computeDeclarativeViewSpecifications [
viewSpecification ]
]

{ #category : #'api - specifications' }
GtLocalPhlowViewedObject >> currentClassSpecifications [
^ classSpecification ifNil: [
classSpecification := self getClassSpecification]
]

{ #category : #'api - specifications' }
GtLocalPhlowViewedObject >> currentDeclarativeActionSpecifications [
^ self actionSpecificationsBySelector values
Expand Down Expand Up @@ -87,6 +94,17 @@ GtLocalPhlowViewedObject >> getActionSpecifications [
^ remoteViewedObject getActionSpecifications
]

{ #category : #accessing }
GtLocalPhlowViewedObject >> getClassSpecification [
^ GtRemotePhlowViewedObjectClassSpecification fromDictionary: self getClassSpecificationData
]

{ #category : #accessing }
GtLocalPhlowViewedObject >> getClassSpecificationData [

^ remoteViewedObject getClassSpecificationData
]

{ #category : #accessing }
GtLocalPhlowViewedObject >> getDeclarativeActionDataSourceFor: anActionSelector [

Expand Down Expand Up @@ -236,6 +254,16 @@ GtLocalPhlowViewedObject >> initializeActionsFromProxyData: aDictionary [
actionSpecification methodSelector -> actionSpecification ]) asDictionary ]
]

{ #category : #initialization }
GtLocalPhlowViewedObject >> initializeClassSpecificationFromProxyData: aDictionary [
| classSpecificationData |
classSpecificationData := aDictionary at: 'class' ifAbsent: [ nil ].

classSpecificationData ifNotNil: [
classSpecification := GtRemotePhlowViewedObjectClassSpecification
fromDictionary: classSpecificationData ]
]

{ #category : #initialization }
GtLocalPhlowViewedObject >> initializeDisplayStringFromProxyData: aDictionary [
gtDisplayString := aDictionary at: 'gtDisplayString' ifAbsent: [ nil ].
Expand All @@ -253,6 +281,7 @@ GtLocalPhlowViewedObject >> initializeFromProxyData: aDictionary [
self initializeDisplayStringFromProxyData: aDictionary.
self initializeViewsFromProxyData: aDictionary.
self initializeActionsFromProxyData: aDictionary.
self initializeClassSpecificationFromProxyData: aDictionary.
]

{ #category : #accessing }
Expand Down
5 changes: 5 additions & 0 deletions src/GToolkit-RemoteGt/GtRemoteInspectionSimulation.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ GtRemoteInspectionSimulation >> createViewedObjectFor: anObject [
^ GtRemotePhlowViewedObject object: anObject
]

{ #category : #'gt inspector' }
GtRemoteInspectionSimulation >> getClassSpecificationData [
^ localProxyInspector getClassSpecificationData
]

{ #category : #'gt - actions' }
GtRemoteInspectionSimulation >> getDeclarativeActionDataSourceFor: anActionSelector [
^ localProxyInspector getDeclarativeActionDataSourceFor: anActionSelector
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,16 @@ GtRemotePhlowViewedObject >> getActionSpecificationsWithPhlowDataSource [
yourself
]

{ #category : #'api - inspector' }
GtRemotePhlowViewedObject >> getClassSpecification [
^ GtRemotePhlowViewedObjectClassSpecification forClass: object class
]

{ #category : #'api - inspector' }
GtRemotePhlowViewedObject >> getClassSpecificationData [
^ self getClassSpecification asDictionaryForExport
]

{ #category : #'api - actions' }
GtRemotePhlowViewedObject >> getDeclarativeActionDataSourceFor: anActionSelector [
^ (self getActionSpecificationFor: anActionSelector) phlowDataSource
Expand All @@ -174,6 +184,7 @@ GtRemotePhlowViewedObject >> getInspectorSpecificationWithPhlowDataSource [
at: 'views');
at: 'actions' put: (self getActionSpecificationsWithPhlowDataSource
at: 'actions');
at:'class' put: self getClassSpecificationData;
yourself
]

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Class {
#name : #GtRemotePhlowViewedObjectClassSpecification,
#superclass : #GtPhlowDeclarativeSpecification,
#instVars : [
'viewObjectClassName',
'viewObjectInstanceVariableNames'
],
#category : #'GToolkit-RemotePhlow-InspectorCore'
}

{ #category : #accessing }
GtRemotePhlowViewedObjectClassSpecification class >> forClass: aClass [
^ self new
initializeFromClass: aClass
]

{ #category : #accessing }
GtRemotePhlowViewedObjectClassSpecification class >> typeLabel [
^ 'phlowViewedObjectClassSpecification'
]

{ #category : #converting }
GtRemotePhlowViewedObjectClassSpecification >> asDictionaryForExport [
| dictionaryForExport|
dictionaryForExport := super asDictionaryForExport.

dictionaryForExport at: 'viewObjectClassName' put: viewObjectClassName.
dictionaryForExport
at: 'viewObjectInstanceVariableNames'
put: viewObjectInstanceVariableNames.

^ dictionaryForExport
]

{ #category : #initialization }
GtRemotePhlowViewedObjectClassSpecification >> initializeFromClass: aClass [
self viewObjectClassName: aClass name.
self viewObjectInstanceVariableNames: aClass instVarNames
]

{ #category : #initialization }
GtRemotePhlowViewedObjectClassSpecification >> initializeFromJSONDictionary: aDictionary [
super initializeFromJSONDictionary: aDictionary.

self
viewObjectClassName: (aDictionary
at: 'viewObjectClassName'
ifAbsent: [ nil ]);
viewObjectInstanceVariableNames: (aDictionary
at: 'viewObjectInstanceVariableNames'
ifAbsent: [ nil ])
]

{ #category : #accessing }
GtRemotePhlowViewedObjectClassSpecification >> viewObjectClassName [
^ viewObjectClassName
]

{ #category : #accessing }
GtRemotePhlowViewedObjectClassSpecification >> viewObjectClassName: anObject [
viewObjectClassName := anObject
]

{ #category : #accessing }
GtRemotePhlowViewedObjectClassSpecification >> viewObjectInstanceVariableNames [
^ viewObjectInstanceVariableNames
]

{ #category : #accessing }
GtRemotePhlowViewedObjectClassSpecification >> viewObjectInstanceVariableNames: anObject [
viewObjectInstanceVariableNames := anObject
]

0 comments on commit 45539ec

Please sign in to comment.