diff --git a/README.md b/README.md index 93807275..b75aed1b 100644 --- a/README.md +++ b/README.md @@ -84,9 +84,9 @@ Then the project view appears in a new window. ### Add and setup graphical elements -Use the create button to add graphical elements in your project view. +Use the add button to add graphical elements in your project view and edit them with the properties panel. -https://github.com/OpenSmock/Pyramid/assets/49183340/a02db9ad-314a-4caf-884c-9da4da809293 +https://github.com/user-attachments/assets/44796af0-95d7-4e29-b28b-fdedfdbe7a85 ### Test behavior in the editor @@ -94,19 +94,17 @@ Use the test/edit button to switch between the edit mode and the test mode. https://github.com/OpenSmock/Pyramid/assets/49183340/a85d8c01-89dd-472c-ab4e-41d51a8629dd -### Save a project +### Save and Edit a project Setup the project to store your view into a Class. When your project is saved into a method, you can see the preview on the `Pyramid preview` tab. - -https://github.com/OpenSmock/Pyramid/assets/49183340/eb70004b-cfb4-43a0-8759-27d3bac75fd0 - -### Edit a saved project +By default the element will be saved as source code. Use the `Pyramid preview` tab to edit an existing project. +You can edit your project with Pyramid or use the code browser. -https://github.com/OpenSmock/Pyramid/assets/49183340/c4a18e51-5fb5-412c-90d4-0638cadb6bff +https://github.com/user-attachments/assets/14711a00-b31a-4915-a634-3685bfe141f7 ### Test a project @@ -136,13 +134,14 @@ https://github.com/OpenSmock/Pyramid/assets/49183340/0c66a3ac-7bea-48c1-b1e8-0b0 ## Dependencies -![image](https://github.com/OpenSmock/Pyramid/assets/34318678/099f25fc-74bd-477f-bef0-2ad7d47db10d) +![image](https://github.com/user-attachments/assets/192ff62a-ce48-4801-a437-c9c83720eb5f) -- [Toplo](https://github.com/pharo-graphics/Toplo) -- [Toplo-Serialization](https://github.com/OpenSmock/Toplo-Serialization) -- [Bloc](https://github.com/pharo-graphics/Bloc) -- [Bloc-Serialization](https://github.com/OpenSmock/Bloc-Serialization) -- [Alexandrie](https://github.com/pharo-graphics/Alexandrie) +- [Bloc-Serialization](https://github.com/OpenSmock/Bloc-Serialization) - serializer project for Bloc (this project define the Bloc version of Pyramid). +- [Bloc](https://github.com/pharo-graphics/Bloc) - low-level UI infrastructure & framework for Pharo. +- [Toplo-Serialization](https://github.com/OpenSmock/Toplo-Serialization) - serializer project for Toplo (this project define the Toplo version of Pyramid). +- [Toplo](https://github.com/pharo-graphics/Toplo) - a widget framework on top of Bloc. +- [STON](https://github.com/svenvc/ston) - serializer for Pharo objects to Smalltalk Object Notation format. +- [Stash](https://github.com/Nyan11/Stash) - serializer for Pharo objects to source code format. ## License diff --git a/src/Pyramid-Bloc/BlElement.extension.st b/src/Pyramid-Bloc/BlElement.extension.st index 90e1b6dc..c32abca1 100644 --- a/src/Pyramid-Bloc/BlElement.extension.st +++ b/src/Pyramid-Bloc/BlElement.extension.st @@ -24,3 +24,11 @@ BlElement >> editWithPyramid [ editor window open. ^ editor ] + +{ #category : #'*Pyramid-Bloc' } +BlElement >> parentsShouldSerializeChildren [ + + self parent ifNil: [ ^ true ]. + self parent shouldSerializedChildren ifFalse: [ ^ false ]. + ^ self parent parentsShouldSerializeChildren +] diff --git a/src/Pyramid-Bloc/PyramidAbstractBlocCommand.class.st b/src/Pyramid-Bloc/PyramidAbstractBlocCommand.class.st index 51b17228..ba35436a 100644 --- a/src/Pyramid-Bloc/PyramidAbstractBlocCommand.class.st +++ b/src/Pyramid-Bloc/PyramidAbstractBlocCommand.class.st @@ -13,5 +13,5 @@ PyramidAbstractBlocCommand class >> isAbstract [ { #category : #testing } PyramidAbstractBlocCommand >> canBeUsedFor: anObject [ - ^ anObject class = BlElement or: [anObject class inheritsFrom: BlElement] + ^ anObject isKindOf: BlElement ] diff --git a/src/Pyramid-Bloc/PyramidAbstractColumnsBuilder.class.st b/src/Pyramid-Bloc/PyramidAbstractColumnsBuilder.class.st deleted file mode 100644 index afe4b59d..00000000 --- a/src/Pyramid-Bloc/PyramidAbstractColumnsBuilder.class.st +++ /dev/null @@ -1,34 +0,0 @@ -Class { - #name : #PyramidAbstractColumnsBuilder, - #superclass : #Object, - #instVars : [ - 'editor' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #testing } -PyramidAbstractColumnsBuilder class >> isAbstract [ - - ^ self == PyramidAbstractColumnsBuilder -] - -{ #category : #'as yet unclassified' } -PyramidAbstractColumnsBuilder >> buildOn: aPyramidTreePlugin [ -"aPyramidTreePlugin addColumns: { }" - self shouldBeImplemented - -] - -{ #category : #accessing } -PyramidAbstractColumnsBuilder >> editor [ - - editor ifNil: [ Error signal: 'Editor should not be nil.' ]. - ^ editor -] - -{ #category : #accessing } -PyramidAbstractColumnsBuilder >> editor: anObject [ - - editor := anObject -] diff --git a/src/Pyramid-Bloc/PyramidBackgroundImageModalPresenter.class.st b/src/Pyramid-Bloc/PyramidBackgroundImageModalPresenter.class.st index 54f94d9e..10becb00 100644 --- a/src/Pyramid-Bloc/PyramidBackgroundImageModalPresenter.class.st +++ b/src/Pyramid-Bloc/PyramidBackgroundImageModalPresenter.class.st @@ -137,9 +137,16 @@ PyramidBackgroundImageModalPresenter >> defaultLayout [ { #category : #action } PyramidBackgroundImageModalPresenter >> image: aForm [ + | source | self codeBitmap beForObject: aForm. self codeBitmap text: self textBitmap , 'self -' +'. + (aForm isPyramidProxy) ifFalse: [ ^ self ]. + source := aForm pyramidExternalRessourceSource. + self inputReceiverProxy text: (Stash new serialize: source target). + self inputSelectorProxy text: (Stash new serialize: source selector). + self inputArgumentsProxy text: + (Stash new serialize: source arguments) ] { #category : #initialization } diff --git a/src/Pyramid-Bloc/PyramidBlocTextCommand.class.st b/src/Pyramid-Bloc/PyramidBlocTextCommand.class.st index b0af6eb8..03600e58 100644 --- a/src/Pyramid-Bloc/PyramidBlocTextCommand.class.st +++ b/src/Pyramid-Bloc/PyramidBlocTextCommand.class.st @@ -13,8 +13,7 @@ PyramidBlocTextCommand class >> isAbstract [ { #category : #testing } PyramidBlocTextCommand >> canBeUsedFor: anObject [ - ^ anObject class = BlTextElement or: [ - anObject class inheritsFrom: BlTextElement ] + ^ anObject isKindOf: BlTextElement ] { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Bloc/PyramidElementToAddCategory.class.st b/src/Pyramid-Bloc/PyramidElementToAddCategory.class.st deleted file mode 100644 index 89edacc6..00000000 --- a/src/Pyramid-Bloc/PyramidElementToAddCategory.class.st +++ /dev/null @@ -1,78 +0,0 @@ -Class { - #name : #PyramidElementToAddCategory, - #superclass : #Object, - #instVars : [ - 'name', - 'icon', - 'factories' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #comparing } -PyramidElementToAddCategory >> <= aPyramidLibraryCategory [ - - ^ self name <= aPyramidLibraryCategory name -] - -{ #category : #converting } -PyramidElementToAddCategory >> asNotebookPage [ - - ^ SpNotebookPage - title: self name - icon: self icon - provider: [self makeProvider] -] - -{ #category : #accessing } -PyramidElementToAddCategory >> factories [ - - ^ factories -] - -{ #category : #accessing } -PyramidElementToAddCategory >> factories: anObject [ - - factories := anObject -] - -{ #category : #accessing } -PyramidElementToAddCategory >> icon [ - - ^ icon -] - -{ #category : #accessing } -PyramidElementToAddCategory >> icon: anObject [ - - icon := anObject -] - -{ #category : #'as yet unclassified' } -PyramidElementToAddCategory >> makeProvider [ - - ^ - SpTablePresenter new - addColumn: ((SpImageTableColumn - title: 'Icon' - evaluated: [ :aFactory | aFactory elementIcon ]) - width: 50; - yourself); - addColumn: - (SpStringTableColumn title: 'Name' evaluated: #elementName); - items: self factories; - beResizable; - yourself -] - -{ #category : #accessing } -PyramidElementToAddCategory >> name [ - - ^ name -] - -{ #category : #accessing } -PyramidElementToAddCategory >> name: anObject [ - - name := anObject -] diff --git a/src/Pyramid-Bloc/PyramidElementToAddFactory.class.st b/src/Pyramid-Bloc/PyramidElementToAddFactory.class.st deleted file mode 100644 index 0e34afb9..00000000 --- a/src/Pyramid-Bloc/PyramidElementToAddFactory.class.st +++ /dev/null @@ -1,77 +0,0 @@ -Class { - #name : #PyramidElementToAddFactory, - #superclass : #Object, - #instVars : [ - 'elementIcon', - 'elementName', - 'elementBlock' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #comparing } -PyramidElementToAddFactory >> <= aPyramidLibraryCategory [ - - ^ self elementName <= aPyramidLibraryCategory elementName -] - -{ #category : #testing } -PyramidElementToAddFactory >> canMakeNewElement [ - - [self elementBlock value] on: Error do: [ ^ false ]. - ^ true -] - -{ #category : #accessing } -PyramidElementToAddFactory >> elementBlock [ - - ^ elementBlock -] - -{ #category : #accessing } -PyramidElementToAddFactory >> elementBlock: anObject [ - - elementBlock := anObject -] - -{ #category : #accessing } -PyramidElementToAddFactory >> elementIcon [ - - ^ elementIcon -] - -{ #category : #accessing } -PyramidElementToAddFactory >> elementIcon: anObject [ - - elementIcon := anObject -] - -{ #category : #accessing } -PyramidElementToAddFactory >> elementName [ - - ^ elementName -] - -{ #category : #accessing } -PyramidElementToAddFactory >> elementName: anObject [ - - elementName := anObject -] - -{ #category : #'as yet unclassified' } -PyramidElementToAddFactory >> makeElement [ - - ^ self elementBlock value -] - -{ #category : #'as yet unclassified' } -PyramidElementToAddFactory >> makeForm [ - - | array | - array := self elementBlock value. - ^ BlElement new - size: 800 @ 600; - addChildren: array; - clipChildren: false; - asForm -] diff --git a/src/Pyramid-Bloc/PyramidElementToAddFactoryEmpty.class.st b/src/Pyramid-Bloc/PyramidElementToAddFactoryEmpty.class.st deleted file mode 100644 index a85d38b2..00000000 --- a/src/Pyramid-Bloc/PyramidElementToAddFactoryEmpty.class.st +++ /dev/null @@ -1,17 +0,0 @@ -Class { - #name : #PyramidElementToAddFactoryEmpty, - #superclass : #PyramidElementToAddFactory, - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #testing } -PyramidElementToAddFactoryEmpty >> canMakeNewElement [ - - ^ false -] - -{ #category : #'as yet unclassified' } -PyramidElementToAddFactoryEmpty >> makeForm [ - - ^ BlElement new asForm -] diff --git a/src/Pyramid-Bloc/PyramidElementToAddFactoryPresenter.class.st b/src/Pyramid-Bloc/PyramidElementToAddFactoryPresenter.class.st deleted file mode 100644 index 32c72f49..00000000 --- a/src/Pyramid-Bloc/PyramidElementToAddFactoryPresenter.class.st +++ /dev/null @@ -1,126 +0,0 @@ -Class { - #name : #PyramidElementToAddFactoryPresenter, - #superclass : #SpPresenter, - #instVars : [ - 'categoryPresenter', - 'factoryPresenter', - 'categories', - 'selectedCategory', - 'selectedFactory', - 'whenItemChangeDo' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> categories [ - - ^ categories -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> categories: anObject [ - - categories := anObject. - self categoryPresenter items: anObject -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> categoryPresenter [ - - ^ categoryPresenter -] - -{ #category : #layout } -PyramidElementToAddFactoryPresenter >> defaultLayout [ - - ^ SpPanedLayout newHorizontal add: self categoryPresenter; add: self factoryPresenter ; yourself. -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> factoryPresenter [ - - ^ factoryPresenter -] - -{ #category : #'initialization - deprecated' } -PyramidElementToAddFactoryPresenter >> initialize [ - - super initialize. - whenItemChangeDo := [ :e | ]. - -] - -{ #category : #'initialization - deprecated' } -PyramidElementToAddFactoryPresenter >> initializePresenter [ - - whenItemChangeDo := [ :e | ]. - categoryPresenter := SpTablePresenter new - addColumn: ((SpImageTableColumn - title: 'Icon' - evaluated: [ :aCategory | aCategory icon ]) - width: 20; - yourself); - addColumn: - (SpStringTableColumn - title: 'Name' - evaluated: #name); - whenSelectedItemChangedDo: [ :category | - self selectedCategory: category ]; - beResizable; - yourself. - factoryPresenter := SpTablePresenter new - addColumn: ((SpImageTableColumn - title: 'Icon' - evaluated: [ :aFactory | - aFactory elementIcon ]) - width: 20; - yourself); - addColumn: - (SpStringTableColumn - title: 'Name' - evaluated: #elementName); - whenSelectedItemChangedDo: [ :factory | - self selectedFactory: factory ]; - beResizable; - yourself -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> selectedCategory [ - - ^ selectedCategory -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> selectedCategory: anObject [ - - selectedCategory := anObject. - anObject ifNil: [ ^ self ]. - self factoryPresenter items: anObject factories -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> selectedFactory [ - - ^ selectedFactory -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> selectedFactory: anObject [ - - selectedFactory := anObject. - self whenItemChangeDo value: anObject -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> whenItemChangeDo [ - - ^ whenItemChangeDo -] - -{ #category : #accessing } -PyramidElementToAddFactoryPresenter >> whenItemChangeDo: anObject [ - - whenItemChangeDo := anObject -] diff --git a/src/Pyramid-Bloc/PyramidElementToAddModel.class.st b/src/Pyramid-Bloc/PyramidElementToAddModel.class.st deleted file mode 100644 index 80fec9f0..00000000 --- a/src/Pyramid-Bloc/PyramidElementToAddModel.class.st +++ /dev/null @@ -1,41 +0,0 @@ -Class { - #name : #PyramidElementToAddModel, - #superclass : #Object, - #instVars : [ - 'categories' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #'as yet unclassified' } -PyramidElementToAddModel class >> defaultLibrary [ - - | library | - library := self new. - TPyramidElementToAdd users do: [ :class | class addOnLibrary: library ]. - ^ library -] - -{ #category : #adding } -PyramidElementToAddModel >> addCategoryWithName: aCategoryName withIcon: aCategoryIcon withAllFactories: aCollection [ - - | newCategory | - newCategory := PyramidElementToAddCategory new - name: aCategoryName; - icon: aCategoryIcon; - factories: aCollection; - yourself. - categories add: newCategory -] - -{ #category : #initialization } -PyramidElementToAddModel >> allCategories [ - - ^ categories -] - -{ #category : #initialization } -PyramidElementToAddModel >> initialize [ - - categories := OrderedCollection new. -] diff --git a/src/Pyramid-Bloc/PyramidElementToAddPresenter.class.st b/src/Pyramid-Bloc/PyramidElementToAddPresenter.class.st deleted file mode 100644 index 7800828e..00000000 --- a/src/Pyramid-Bloc/PyramidElementToAddPresenter.class.st +++ /dev/null @@ -1,105 +0,0 @@ -Class { - #name : #PyramidElementToAddPresenter, - #superclass : #SpPresenter, - #instVars : [ - 'selector', - 'preview', - 'addButton', - 'libraryModel', - 'currentFactory' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #'as yet unclassified' } -PyramidElementToAddPresenter class >> defaultEmptyFactory [ - - ^ PyramidElementToAddFactoryEmpty new -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> addButton [ - - ^ addButton -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> currentFactory [ - - currentFactory ifNil: [ currentFactory := self class defaultEmptyFactory ]. - ^ currentFactory -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> currentFactory: anObject [ - - currentFactory := anObject. - self preview image: self currentFactory makeForm. - self addButton enabled: self currentFactory canMakeNewElement -] - -{ #category : #layout } -PyramidElementToAddPresenter >> defaultLayout [ - - ^ SpPanedLayout newHorizontal - add: self selector; - add: (SpBoxLayout newVertical - spacing: 4; - add: self preview expand: true; - add: self addButton expand: false; - yourself); - yourself -] - -{ #category : #requirements } -PyramidElementToAddPresenter >> elementToAdd [ - - ^ self currentFactory makeElement -] - -{ #category : #'initialization - deprecated' } -PyramidElementToAddPresenter >> initializePresenter [ - - addButton := SpButtonPresenter new - label: 'Add'; - icon: (Smalltalk ui icons iconNamed: #add); - enabled: false; - yourself. - selector := PyramidElementToAddFactoryPresenter new whenItemChangeDo: [ - :aFactory | self currentFactory: aFactory ]. - preview := SpImagePresenter new autoScale: true. - libraryModel := PyramidElementToAddModel defaultLibrary. - self refresh -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> libraryModel [ - - ^ libraryModel -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> libraryModel: anObject [ - - libraryModel := anObject. - self refresh -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> preview [ - - ^ preview -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> refresh [ - - self currentFactory: nil. - self selector categories: self libraryModel allCategories -] - -{ #category : #accessing } -PyramidElementToAddPresenter >> selector [ - - ^ selector -] diff --git a/src/Pyramid-Bloc/PyramidLibraryCategory.class.st b/src/Pyramid-Bloc/PyramidLibraryCategory.class.st new file mode 100644 index 00000000..fdb93b0a --- /dev/null +++ b/src/Pyramid-Bloc/PyramidLibraryCategory.class.st @@ -0,0 +1,52 @@ +Class { + #name : #PyramidLibraryCategory, + #superclass : #Object, + #instVars : [ + 'elements', + 'name', + 'icon' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #accessing } +PyramidLibraryCategory >> elements [ + + ^ elements +] + +{ #category : #accessing } +PyramidLibraryCategory >> elements: anObject [ + + elements := anObject +] + +{ #category : #accessing } +PyramidLibraryCategory >> icon [ + + ^ icon +] + +{ #category : #accessing } +PyramidLibraryCategory >> icon: anObject [ + + icon := anObject +] + +{ #category : #initialization } +PyramidLibraryCategory >> initialize [ + + elements := { } +] + +{ #category : #accessing } +PyramidLibraryCategory >> name [ + + ^ name +] + +{ #category : #accessing } +PyramidLibraryCategory >> name: anObject [ + + name := anObject +] diff --git a/src/Pyramid-Bloc/PyramidLibraryContainerPresenter.class.st b/src/Pyramid-Bloc/PyramidLibraryContainerPresenter.class.st deleted file mode 100644 index 8bbb4deb..00000000 --- a/src/Pyramid-Bloc/PyramidLibraryContainerPresenter.class.st +++ /dev/null @@ -1,98 +0,0 @@ -Class { - #name : #PyramidLibraryContainerPresenter, - #superclass : #SpPresenter, - #instVars : [ - 'library', - 'idGenerator' - ], - #classVars : [ - 'IdGenerator' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #accessing } -PyramidLibraryContainerPresenter class >> makeIdGenerator [ -^ Generator on: [ :generator | - | index | - index := 1. - [ - Character alphabet do: [ :each | - | next suffix | - next := each asUppercase asString. - suffix := index = 1 - ifTrue: [ '' ] - ifFalse: [ index asString ]. - generator yield: next , suffix ]. - index := index + 1 ] repeat ] -] - -{ #category : #'as yet unclassified' } -PyramidLibraryContainerPresenter >> buttonAction: aBlock [ - - library addButton action: aBlock -] - -{ #category : #'as yet unclassified' } -PyramidLibraryContainerPresenter >> buttonLabel: aString [ - - library addButton label: aString -] - -{ #category : #initialization } -PyramidLibraryContainerPresenter >> defaultLayout [ - - ^ SpBoxLayout newVertical - spacing: 4; - add: (SpLabelPresenter new - label: 'Library'; - displayBold: [ :a | true ]; - yourself) - expand: false; - add: (SpBoxLayout newHorizontal - add: library width: 800; - yourself) - height: 400; - yourself. -] - -{ #category : #requirements } -PyramidLibraryContainerPresenter >> elementToAdd [ - - | array | - array := self library elementToAdd. - array do: [:each | each id: self idGenerator next; yourself]. - ^ array -] - -{ #category : #accessing } -PyramidLibraryContainerPresenter >> idGenerator [ - - idGenerator ifNil: [ idGenerator := self class makeIdGenerator ]. - ^ idGenerator -] - -{ #category : #accessing } -PyramidLibraryContainerPresenter >> idGenerator: anObject [ - - idGenerator := anObject -] - -{ #category : #initialization } -PyramidLibraryContainerPresenter >> initializePresenters [ - - library := PyramidElementToAddPresenter new. - -] - -{ #category : #requirements } -PyramidLibraryContainerPresenter >> library [ - - ^ library -] - -{ #category : #requirements } -PyramidLibraryContainerPresenter >> library: aLibrary [ - - library := aLibrary -] diff --git a/src/Pyramid-Bloc/PyramidLibraryController.class.st b/src/Pyramid-Bloc/PyramidLibraryController.class.st new file mode 100644 index 00000000..cefa8eb3 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidLibraryController.class.st @@ -0,0 +1,152 @@ +Class { + #name : #PyramidLibraryController, + #superclass : #Object, + #instVars : [ + 'library', + 'popoverOrigin', + 'editor', + 'addElementsBlock', + 'idGenerator' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #adding } +PyramidLibraryController >> addCategories: aCollection [ + + self library categoryPresenter items = aCollection ifTrue: [ ^ self ]. + self library categoryPresenter + items: aCollection; + selectIndex: 1 +] + +{ #category : #accessing } +PyramidLibraryController >> addElementsBlock [ + + ^ addElementsBlock +] + +{ #category : #accessing } +PyramidLibraryController >> addElementsBlock: anObject [ + + addElementsBlock := anObject +] + +{ #category : #adding } +PyramidLibraryController >> addNewElement: aLibraryElement [ + + self addElementsBlock value: aLibraryElement asArray +] + +{ #category : #accessing } +PyramidLibraryController >> editor [ + + ^ editor +] + +{ #category : #accessing } +PyramidLibraryController >> editor: anObject [ + + editor := anObject +] + +{ #category : #'as yet unclassified' } +PyramidLibraryController >> idGenerator [ + + ^ idGenerator +] + +{ #category : #initialization } +PyramidLibraryController >> initialize [ + + addElementsBlock := [ :e | ]. + idGenerator := Generator on: [ :generator | + | index | + index := 1. + [ + Character alphabet do: [ :each | + | next suffix | + next := each asUppercase asString. + suffix := index = 1 + ifTrue: [ '' ] + ifFalse: [ index asString ]. + generator yield: next , suffix ]. + index := index + 1 ] repeat ] +] + +{ #category : #initialization } +PyramidLibraryController >> initializeCategories [ + + | pragmas sorted | + pragmas := Pragma allNamed: #pyramidLibraryCategory:. + sorted := pragmas sorted: [ :a :b | + a arguments first < b arguments first ]. + self addCategories: (sorted flatCollect: [ :each | + each method + receiver: self + withArguments: #( ) + executeMethod: each method ]) +] + +{ #category : #accessing } +PyramidLibraryController >> library [ + + ^ library +] + +{ #category : #accessing } +PyramidLibraryController >> library: anObject [ + + library := anObject +] + +{ #category : #'as yet unclassified' } +PyramidLibraryController >> openForRoot [ + + self addElementsBlock: [ :arrayOfElement | + self renameElements: arrayOfElement. + self editor propertiesManager commandExecutor + use: PyramidAddAllToCollectionCommand new + on: { self editor projectModel firstLevelElements } + with: arrayOfElement ]. + self openInPopover +] + +{ #category : #'as yet unclassified' } +PyramidLibraryController >> openForSelection [ + + self addElementsBlock: [ :arrayOfElement | + self editor propertiesManager commandExecutor + use: PyramidAddChildrenCommand new + on: self editor projectModel selection + with: arrayOfElement ]. + self openInPopover +] + +{ #category : #'as yet unclassified' } +PyramidLibraryController >> openInPopover [ + + self popoverOrigin ifNil: [ ^ self ]. + (PyramidPopoverFactory + makeWithPresenter: self library + relativeTo: self popoverOrigin + position: SpPopoverPosition right) popup +] + +{ #category : #accessing } +PyramidLibraryController >> popoverOrigin [ + + ^ popoverOrigin +] + +{ #category : #accessing } +PyramidLibraryController >> popoverOrigin: anObject [ + + popoverOrigin := anObject +] + +{ #category : #'as yet unclassified' } +PyramidLibraryController >> renameElements: aCollection [ + + aCollection do: [ :each | each id: self idGenerator next ] +] diff --git a/src/Pyramid-Bloc/PyramidLibraryDefault.class.st b/src/Pyramid-Bloc/PyramidLibraryDefault.class.st new file mode 100644 index 00000000..80f1efb4 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidLibraryDefault.class.st @@ -0,0 +1,105 @@ +Class { + #name : #PyramidLibraryDefault, + #superclass : #Object, + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #accessing } +PyramidLibraryDefault >> defaultCategory [ + + + ^ { (PyramidLibraryCategory new + icon: (Smalltalk ui icons iconNamed: #box); + name: 'Default'; + elements: { + (PyramidLibraryElement new + name: 'Simple element'; + icon: (Smalltalk ui icons iconNamed: #blank); + block: [ {BlElement new background: Color random} ]; + yourself). + (PyramidLibraryElement new + name: 'Text element'; + icon: (Smalltalk ui icons iconNamed: #smallFonts); + block: [ {'Change me' asRopedText asElement} ]; + yourself) }; + yourself) } +] + +{ #category : #accessing } +PyramidLibraryDefault >> pragmaCategory: aSymbol withIcon: anIcon [ + + | pragmas methods packages categories | + pragmas := Pragma allNamed: aSymbol. + methods := (pragmas collect: #method) asSet. + packages := (methods collect: #package) asSet. + + categories := OrderedCollection new. + + ^ (packages collect: [ :package | + | elements | + elements := methods + select: [ :method | method package = package ] + thenCollect: [ :method | + PyramidLibraryElement new + icon: (Smalltalk ui icons iconNamed: + method methodClass soleInstance systemIconName); + name: ('<1s> (<2s>)' + expandMacrosWith: method selector + with: method methodClass name); + block: [ + (method methodClass soleInstance perform: + method selector) materializeAsBlElement ]; + yourself ]. + PyramidLibraryCategory new + name: package name; + icon: anIcon; + elements: (elements sorted: [ :a :b | a name < b name ]); + yourself ]) sorted: [ :a :b | a name < b name ] +] + +{ #category : #accessing } +PyramidLibraryDefault >> pystashCategory [ + + + ^ PyramidLibraryDefault new + pragmaCategory: #pyStash + withIcon: (Smalltalk ui icons iconNamed: #smallSave) +] + +{ #category : #accessing } +PyramidLibraryDefault >> pystonCategory [ + + + ^ PyramidLibraryDefault new + pragmaCategory: #pySTON + withIcon: (Smalltalk ui icons iconNamed: #smallSave) +] + +{ #category : #accessing } +PyramidLibraryDefault >> smalltalkIconsCategory [ + + + | elements | + elements := OrderedCollection new. + elements := Smalltalk ui icons icons associations collect: [ :each | + PyramidLibraryElement new + icon: each value; + name: each key; + block: [ + { (BlElement new + size: each value extent; + background: + (BlImageBackground image: + (PyramidExternalRessourceProxy fromSource: + (PyramidExternalRessourceSource + target: Object + selector: #iconNamed: + arguments: { each key }))); + yourself) } ]; + yourself ]. + ^ { (PyramidLibraryCategory new + name: 'Smalltalk Icons'; + icon: (Smalltalk ui icons iconNamed: #image); + elements: (elements sorted: [ :a :b | a name < b name ]); + yourself) } +] diff --git a/src/Pyramid-Bloc/PyramidLibraryElement.class.st b/src/Pyramid-Bloc/PyramidLibraryElement.class.st new file mode 100644 index 00000000..188b0954 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidLibraryElement.class.st @@ -0,0 +1,87 @@ +Class { + #name : #PyramidLibraryElement, + #superclass : #Object, + #instVars : [ + 'name', + 'icon', + 'block' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #converting } +PyramidLibraryElement >> asArray [ + + ^ self block value +] + +{ #category : #converting } +PyramidLibraryElement >> asForm [ + + | elements bounds formElement extent bound possibleSizes | + elements := self asArray. + bounds := elements collect: [ :each | each boundsInLocal ]. + + formElement := BlElement new + clipChildren: false; + size: 800 @ 600; + addChildren: self asArray; + background: Color white; + yourself. + formElement forceLayout. + extent := (formElement localBoundsToParent: + (BlBounds fromRectangle: formElement invalidationBounds)) + extent. + bound := BlBounds + left: 0 + top: 0 + right: 0 + bottom: 0. + formElement childrenDo: [ :each | + bound merge: (each localBoundsToParent: + (BlBounds fromRectangle: each invalidationBounds)) ]. + extent := bound extent. + possibleSizes := { + (50 @ 50). + (240 @ 240). + (480 @ 480) } select: [ :each | each >= extent ]. + possibleSizes ifNotEmpty: [ formElement size: possibleSizes first ]. + + ^ formElement exportAsForm +] + +{ #category : #accessing } +PyramidLibraryElement >> block [ + + ^ block +] + +{ #category : #accessing } +PyramidLibraryElement >> block: anObject [ + + block := anObject +] + +{ #category : #accessing } +PyramidLibraryElement >> icon [ + + ^ icon +] + +{ #category : #accessing } +PyramidLibraryElement >> icon: anObject [ + + icon := anObject +] + +{ #category : #accessing } +PyramidLibraryElement >> name [ + + ^ name +] + +{ #category : #accessing } +PyramidLibraryElement >> name: anObject [ + + name := anObject +] diff --git a/src/Pyramid-Bloc/PyramidLibraryPresenter.class.st b/src/Pyramid-Bloc/PyramidLibraryPresenter.class.st new file mode 100644 index 00000000..74b66c54 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidLibraryPresenter.class.st @@ -0,0 +1,137 @@ +Class { + #name : #PyramidLibraryPresenter, + #superclass : #SpPresenter, + #instVars : [ + 'categoryPresenter', + 'elementPresenter', + 'imagePresenter', + 'addButtonPresenter', + 'libraryController' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #accessing } +PyramidLibraryPresenter >> addButtonPresenter [ + + ^ addButtonPresenter +] + +{ #category : #accessing } +PyramidLibraryPresenter >> categoryPresenter [ + + ^ categoryPresenter +] + +{ #category : #initialization } +PyramidLibraryPresenter >> connectPresenters [ + + categoryPresenter + transmitTo: elementPresenter + transform: [ :category | + category ifNil: [ #( ) ] ifNotNil: [ category elements ] ] + postTransmission: [ :destination | destination selectIndex: 1 ]. + + categoryPresenter items ifEmpty: [ ^ self ]. + categoryPresenter selectFirst. +] + +{ #category : #accessing } +PyramidLibraryPresenter >> defaultExtent [ + + ^ 600 @ 400 +] + +{ #category : #layout } +PyramidLibraryPresenter >> defaultLayout [ + + | panedSelection imageAndButton panedLayout | + panedSelection := SpPanedLayout newHorizontal + add: self categoryPresenter; + add: self elementPresenter; + yourself. + imageAndButton := SpBoxLayout newVertical + add: self imagePresenter expand: true; + add: self addButtonPresenter expand: false; + yourself. + panedLayout := SpPanedLayout newHorizontal + positionOfSlider: 2 / 3; + add: panedSelection; + add: imageAndButton; + yourself. + ^ SpBoxLayout newVertical + add: (SpBoxLayout newHorizontal add: panedLayout width: self defaultExtent x) + height: self defaultExtent y +] + +{ #category : #accessing } +PyramidLibraryPresenter >> elementPresenter [ + + ^ elementPresenter +] + +{ #category : #accessing } +PyramidLibraryPresenter >> imagePresenter [ + + ^ imagePresenter +] + +{ #category : #initialization } +PyramidLibraryPresenter >> initializePresenters [ + + libraryController := PyramidLibraryController new + library: self; + yourself. + categoryPresenter := SpTablePresenter new + hideColumnHeaders; + addColumn: ((SpImageTableColumn + title: 'Category-Icon' + evaluated: [ :each | each icon ]) width: 20); + addColumn: (SpStringTableColumn + title: 'Category-Name' + evaluated: [ :each | each name ]); + yourself. + elementPresenter := SpTablePresenter new + hideColumnHeaders; + addColumn: ((SpImageTableColumn + title: 'Element-Icon' + evaluated: [ :each | each icon ]) width: 20); + addColumn: (SpStringTableColumn + title: 'Element-Name' + evaluated: [ :each | each name ]); + whenSelectedItemChangedDo: [ :e | + self addButtonPresenter enabled: e isNotNil. + self addButtonPresenter action: [ + self libraryController addNewElement: e ]. + e + ifNil: [ + self imagePresenter image: + (Form extent: 1 asPoint) ] + ifNotNil: [ + self imagePresenter image: e asForm ] ]. + imagePresenter := SpImagePresenter new + autoScale: true; + yourself. + addButtonPresenter := SpButtonPresenter new + label: 'Add new element'; + icon: (Smalltalk ui icons iconNamed: #add); + enabled: false; + yourself. + self focusOrder + add: categoryPresenter; + add: elementPresenter; + add: addButtonPresenter +] + +{ #category : #accessing } +PyramidLibraryPresenter >> libraryController [ + + ^ libraryController +] + +{ #category : #accessing } +PyramidLibraryPresenter >> libraryController: anObject [ + + libraryController := anObject. + libraryController library: self. +] diff --git a/src/Pyramid-Bloc/PyramidNavigationDefaultColumns.class.st b/src/Pyramid-Bloc/PyramidNavigationDefaultColumns.class.st new file mode 100644 index 00000000..664173d1 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationDefaultColumns.class.st @@ -0,0 +1,100 @@ +Class { + #name : #PyramidNavigationDefaultColumns, + #superclass : #Object, + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #column } +PyramidNavigationDefaultColumns >> columnElevation [ + + + ^ SpStringTableColumn new + title: 'z'; + evaluated: [ :aBlElement | + aBlElement elevation elevation = 0 + ifTrue: [ '' ] + ifFalse: [ aBlElement elevation elevation printString ] ]; + width: 16; + yourself +] + +{ #category : #column } +PyramidNavigationDefaultColumns >> columnHash [ + + + ^ SpStringTableColumn new + title: 'Hash'; + evaluated: [ :aBlElement | aBlElement identityHash printString ]; + displayColor: [ :aBlElement | + aBlElement parentsShouldSerializeChildren + ifTrue: [ self theme disabledTextColor ] + ifFalse: [ self theme dangerTextColor ] ]; + width: 60; + yourself. +] + +{ #category : #column } +PyramidNavigationDefaultColumns >> columnIconAndName [ + + + ^ SpCompositeTableColumn new + title: 'Elements'; + addColumn: + (SpImageTableColumn evaluated: [ :aBlElement | aBlElement asIcon ]); + addColumn: (SpStringTableColumn new + title: 'Identifier'; + displayColor: [ :aBlElement | + aBlElement parentsShouldSerializeChildren + ifTrue: [ self theme textColor ] + ifFalse: [ self theme dangerTextColor ] ]; + evaluated: [ :aBlElement | + aBlElement elementId isNoId + ifTrue: [ '@\no name\' ] + ifFalse: [ aBlElement id asSymbol ] ]; + yourself); + addColumn: (SpStringTableColumn new + title: 'Class'; + evaluated: [ :aBlElement | aBlElement class name ]; + displayColor: [ :aBlElement | self theme disabledTextColor ]; + displayItalic: [ :aBlElement | true ]; + yourself); + yourself +] + +{ #category : #column } +PyramidNavigationDefaultColumns >> columnVisibility [ + + + ^ SpCompositeTableColumn new + title: 'Visibility'; + width: 80; + addColumn: (SpImageTableColumn evaluated: [ :aBlElement | + aBlElement + allParentsDetect: [ :parent | parent isVisible not ] + ifFound: [ :parent | + Smalltalk ui icons iconNamed: #uncommentedClass ] + ifNone: [ Smalltalk ui icons iconNamed: #blank16 ] ]); + addColumn: (SpImageTableColumn evaluated: [ :aBlElement | + aBlElement visibility asIcon ]); + addColumn: (SpLinkTableColumn new + title: 'Visible'; + url: [ :aBlElement | '' ]; + action: [ :aBlElement | + self flag: #explanations. + "self editor is present on the class that will recover the pragma . + This class should be: PyramidNavigationTreePresenter." + self editor ifNotNil: [ :e | + e propertiesManager commandExecutor + use: PyramidVisibilityCommand new + on: { aBlElement } + with: aBlElement visibility nextVisibilityForTree ] ]; + evaluated: [ :aBlElement | aBlElement visibility asString ]; + yourself); + yourself +] + +{ #category : #accessing } +PyramidNavigationDefaultColumns >> editor [ + + ^ nil +] diff --git a/src/Pyramid-Bloc/PyramidNavigationModel.class.st b/src/Pyramid-Bloc/PyramidNavigationModel.class.st new file mode 100644 index 00000000..94e971d3 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationModel.class.st @@ -0,0 +1,30 @@ +Class { + #name : #PyramidNavigationModel, + #superclass : #Object, + #traits : 'TObservable', + #classTraits : 'TObservable classTrait', + #instVars : [ + '#displayAllChildren => ObservableSlot' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #accessing } +PyramidNavigationModel >> displayAllChildren [ + + ^ displayAllChildren +] + +{ #category : #accessing } +PyramidNavigationModel >> displayAllChildren: anObject [ + + displayAllChildren := anObject +] + +{ #category : #initialization } +PyramidNavigationModel >> initialize [ + + super initialize. + self class initializeSlots: self. + self property: #displayAllChildren rawValue: false +] diff --git a/src/Pyramid-Bloc/PyramidNavigationPanelPresenter.class.st b/src/Pyramid-Bloc/PyramidNavigationPanelPresenter.class.st new file mode 100644 index 00000000..14ddcd84 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationPanelPresenter.class.st @@ -0,0 +1,5 @@ +Class { + #name : #PyramidNavigationPanelPresenter, + #superclass : #SpPresenter, + #category : #'Pyramid-Bloc-plugin-navigation' +} diff --git a/src/Pyramid-Bloc/PyramidNavigationPlugin.class.st b/src/Pyramid-Bloc/PyramidNavigationPlugin.class.st new file mode 100644 index 00000000..38a6285b --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationPlugin.class.st @@ -0,0 +1,112 @@ +Class { + #name : #PyramidNavigationPlugin, + #superclass : #Object, + #traits : 'TPyramidPlugin', + #classTraits : 'TPyramidPlugin classTrait', + #instVars : [ + 'navigation', + 'editor' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #adding } +PyramidNavigationPlugin >> addPanelsOn: aPyramidSimpleWindow [ + + aPyramidSimpleWindow at: #tabLeft addItem: [ :builder | + builder + makeTab: self navigation + label: 'Navigation' + icon: (Smalltalk ui icons iconNamed: #catalog) + order: 2 ]. + + aPyramidSimpleWindow + at: #selectionMenu + addItem: [ :builder | self menuAddAndDeleteOn: builder ] +] + +{ #category : #connecting } +PyramidNavigationPlugin >> connectOn: aPyramidEditor [ + + editor := aPyramidEditor. + self navigation editor: aPyramidEditor. + self libraryController popoverOrigin: + (aPyramidEditor window services at: #tabLeft) presenter. +] + +{ #category : #initialization } +PyramidNavigationPlugin >> editor [ + + ^ editor +] + +{ #category : #initialization } +PyramidNavigationPlugin >> initialize [ + + super initialize. + navigation := PyramidNavigationPresenter new. +] + +{ #category : #accessing } +PyramidNavigationPlugin >> libraryController [ + + ^ self navigation library libraryController +] + +{ #category : #'as yet unclassified' } +PyramidNavigationPlugin >> menuAddAndDeleteOn: aBuilder [ + + aBuilder + addGroupEmptySelection: [ :group :empty | + group addItem: [ :anItem | + anItem + name: 'Add element...'; + help: 'Add a new element on the roots of the design.'; + icon: (Smalltalk ui icons iconNamed: #add); + action: [ self libraryController openForRoot ] ] ] + order: 10. + + aBuilder + addGroupSingleSelection: [ :group :single | + group addItem: [ :anItem | + anItem + name: 'Add child element...'; + help: 'Add a new element as a child of the selected element.'; + icon: (Smalltalk ui icons iconNamed: #add); + action: [ self libraryController openForSelection ] ]. + group addItem: [ :anItem | + anItem + name: 'Remove element'; + help: 'Delete the selected element and its content'; + icon: (Smalltalk ui icons iconNamed: #delete); + action: [ self removeSelectedElements ] ] ] + order: 10. + + aBuilder + addGroupMultiSelection: [ :group :multi | + group addItem: [ :anItem | + anItem + name: 'Remove selection'; + help: 'Delete all selected elements and their contents'; + icon: (Smalltalk ui icons iconNamed: #delete); + action: [ self removeSelectedElements ] ] ] + order: 10 +] + +{ #category : #initialization } +PyramidNavigationPlugin >> navigation [ + + ^ navigation +] + +{ #category : #removing } +PyramidNavigationPlugin >> removeSelectedElements [ + + self editor propertiesManager commandExecutor + use: PyramidRemoveSelectedElementsCommand new + on: self editor projectModel selection + with: self editor projectModel firstLevelElements. + + "Update the selection after remove" + self editor projectModel updateSelection +] diff --git a/src/Pyramid-Bloc/PyramidNavigationPresenter.class.st b/src/Pyramid-Bloc/PyramidNavigationPresenter.class.st new file mode 100644 index 00000000..1251b351 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationPresenter.class.st @@ -0,0 +1,74 @@ +Class { + #name : #PyramidNavigationPresenter, + #superclass : #SpPresenter, + #instVars : [ + 'toolPanel', + 'selectionPanel', + 'navigationModel', + 'library' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #layout } +PyramidNavigationPresenter >> defaultLayout [ + + ^ SpBoxLayout newVertical + spacing: 4; + add: self toolPanel expand: false; + add: self selectionPanel expand: true; + yourself +] + +{ #category : #accessing } +PyramidNavigationPresenter >> editor: aPyramidEditor [ + + self toolPanel editor: aPyramidEditor. + self selectionPanel editor: aPyramidEditor. + self library libraryController editor: aPyramidEditor. +] + +{ #category : #initialization } +PyramidNavigationPresenter >> initializePresenters [ + + library := PyramidLibraryPresenter new. + library libraryController initializeCategories. + navigationModel := PyramidNavigationModel new. + toolPanel := PyramidNavigationToolsPresenter new + navigationModel: self navigationModel; + library: self library; + yourself. + selectionPanel := PyramidNavigationTreePresenter new + navigationModel: self navigationModel; + yourself +] + +{ #category : #accessing } +PyramidNavigationPresenter >> library [ + + ^ library +] + +{ #category : #accessing } +PyramidNavigationPresenter >> navigationModel [ + + ^ navigationModel +] + +{ #category : #api } +PyramidNavigationPresenter >> roots: aCollection [ + + self selectionPanel roots: aCollection +] + +{ #category : #accessing } +PyramidNavigationPresenter >> selectionPanel [ + + ^ selectionPanel +] + +{ #category : #accessing } +PyramidNavigationPresenter >> toolPanel [ + + ^ toolPanel +] diff --git a/src/Pyramid-Bloc/PyramidNavigationToolsPresenter.class.st b/src/Pyramid-Bloc/PyramidNavigationToolsPresenter.class.st new file mode 100644 index 00000000..0ef0ba54 --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationToolsPresenter.class.st @@ -0,0 +1,125 @@ +Class { + #name : #PyramidNavigationToolsPresenter, + #superclass : #SpPresenter, + #instVars : [ + 'library', + 'navigationModel', + 'addRootButton', + 'displayChildrenOptions', + 'editor' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> actionAddToRoot [ + + self library libraryController openForRoot +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> addRootButton [ + + ^ addRootButton +] + +{ #category : #layout } +PyramidNavigationToolsPresenter >> defaultLayout [ + + ^ SpBoxLayout newHorizontal + spacing: 4; + add: self addRootButton expand: false; + add: self displayChildrenOptions expand: true; + yourself +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> displayChildrenOptions [ + + ^ displayChildrenOptions +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> editor [ + + ^ editor +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> editor: anObject [ + + editor := anObject +] + +{ #category : #initialization } +PyramidNavigationToolsPresenter >> initializePresenters [ + + addRootButton := SpButtonPresenter new + label: 'Add new root'; + icon: (Smalltalk ui iconNamed: #add); + action: [ self actionAddToRoot ]; + yourself. + displayChildrenOptions := SpButtonPresenter new + help: + 'Show / Hide not serializable children.'; + yourself +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> library [ + + ^ library +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> library: anObject [ + + library := anObject +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> navigationModel [ + + ^ navigationModel +] + +{ #category : #accessing } +PyramidNavigationToolsPresenter >> navigationModel: anObject [ + + navigationModel := anObject. + self updateDisplayChildrenButton +] + +{ #category : #'as yet unclassified' } +PyramidNavigationToolsPresenter >> updateDisplayChildrenButton [ + + self navigationModel displayAllChildren ifTrue: [ + self updateDisplayChildrenButtonActivate. + ^ self ]. + self updateDisplayChildrenButtonDeactivate. + +] + +{ #category : #'as yet unclassified' } +PyramidNavigationToolsPresenter >> updateDisplayChildrenButtonActivate [ + + self displayChildrenOptions state: true. + self displayChildrenOptions icon: + (Smalltalk ui icons iconNamed: #checkboxSelected). + self displayChildrenOptions label: 'Show children'. + self displayChildrenOptions action: [ + self navigationModel displayAllChildren: false. + self updateDisplayChildrenButton ] +] + +{ #category : #'as yet unclassified' } +PyramidNavigationToolsPresenter >> updateDisplayChildrenButtonDeactivate [ + + self displayChildrenOptions state: false. + self displayChildrenOptions icon: + (Smalltalk ui icons iconNamed: #checkboxUnselected). + self displayChildrenOptions label: 'Hide children'. + self displayChildrenOptions action: [ + self navigationModel displayAllChildren: true. + self updateDisplayChildrenButton ] +] diff --git a/src/Pyramid-Bloc/PyramidNavigationTreePresenter.class.st b/src/Pyramid-Bloc/PyramidNavigationTreePresenter.class.st new file mode 100644 index 00000000..31ae702c --- /dev/null +++ b/src/Pyramid-Bloc/PyramidNavigationTreePresenter.class.st @@ -0,0 +1,186 @@ +Class { + #name : #PyramidNavigationTreePresenter, + #superclass : #SpPresenter, + #instVars : [ + 'navigationModel', + 'treeTable', + 'editor', + 'shouldUpdateSelection' + ], + #category : #'Pyramid-Bloc-plugin-navigation' +} + +{ #category : #'as yet unclassified' } +PyramidNavigationTreePresenter >> actionEditorMenu [ + + | builder | + self editor ifNil: [ ^ SpMenuPresenter new ]. + builder := (self editor window services at: #selectionMenu) builder. + ^ builder menuFor: self editor projectModel selection +] + +{ #category : #'as yet unclassified' } +PyramidNavigationTreePresenter >> actionSelectionChanged: aSelection [ + + self editor ifNil: [ ^ self ]. + self shouldUpdateSelection ifFalse: [ ^ self ]. + self shouldUpdateSelection: false. + [ self editor projectModel setSelection: aSelection selectedItems ] + ensure: [ self shouldUpdateSelection: true ] +] + +{ #category : #initialization } +PyramidNavigationTreePresenter >> allTreeColumns [ + + | pragmas sorted | + pragmas := Pragma allNamed: #pyramidNavigationColumn:. + sorted := pragmas sorted: [ :a :b | + a arguments first < b arguments first ]. + ^ sorted collect: [ :each | + each method + receiver: self + withArguments: #( ) + executeMethod: each method ] +] + +{ #category : #private } +PyramidNavigationTreePresenter >> childrenFor: aBlElement [ + + self displayAllChildren ifTrue: [ ^ aBlElement children ]. + aBlElement shouldSerializedChildren ifTrue: [ ^ aBlElement children ]. + ^ { } +] + +{ #category : #layout } +PyramidNavigationTreePresenter >> defaultLayout [ + + ^ SpBoxLayout newVertical + spacing: 4; + add: self treeTable; + yourself +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> displayAllChildren [ + + ^ self navigationModel displayAllChildren +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> editor [ + + ^ editor +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> editor: anObject [ + + editor := anObject. + editor projectModel announcer + when: PyramidElementsChangedEvent + do: [ :evt | self updateRoots. self updateSelection ] + for: self. + editor projectModel announcer + when: PyramidFirstLevelElementsChangedEvent + do: [ :evt | self updateRoots. ] + for: self. + editor projectModel announcer + when: PyramidSelectionChangedEvent + do: [ :evt | self updateSelection ] + for: self +] + +{ #category : #initialization } +PyramidNavigationTreePresenter >> initializePresenters [ + + shouldUpdateSelection := true. + + treeTable := SpTreeTablePresenter new. + treeTable + beMultipleSelection; + beResizable; + roots: { }; + children: [ :aBlElement | self childrenFor: aBlElement ]; + contextMenu: [ self actionEditorMenu ]; + whenSelectionChangedDo: [ :aSelection | + self actionSelectionChanged: aSelection ]; + expandAll. + self allTreeColumns do: [ :each | treeTable addColumn: each ] +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> navigationModel [ + + ^ navigationModel +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> navigationModel: anObject [ + + navigationModel := anObject. + navigationModel property: #displayAllChildren whenChangedDo: [ + (self treeTable selection selectedItems + allSatisfy: [ :each | each parentsShouldSerializeChildren ]) + ifTrue: [ + self treeTable updateRootsKeepingSelection: self treeTable roots ] + ifFalse: [ self treeTable roots: self treeTable roots ]. + self treeTable expandAll ] +] + +{ #category : #api } +PyramidNavigationTreePresenter >> roots: aCollection [ + + self treeTable roots: aCollection +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> shouldUpdateSelection [ + + ^ shouldUpdateSelection +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> shouldUpdateSelection: anObject [ + + shouldUpdateSelection := anObject +] + +{ #category : #accessing } +PyramidNavigationTreePresenter >> treeTable [ + + ^ treeTable +] + +{ #category : #'as yet unclassified' } +PyramidNavigationTreePresenter >> updateRoots [ + + | roots parent shouldOrder | + self shouldUpdateSelection: false. + + roots := self editor projectModel firstLevelElements asArray. + parent := nil. + + "If roots all have the same parent then it should be ordered by the parent children order." + shouldOrder := (roots allSatisfy: [ :each | + parent ifNil: [ parent := each parent ]. + each parent = parent ]) and: [ + parent notNil and: [ + parent childrenCount = roots size ] ]. + shouldOrder ifTrue: [ roots := parent children asArray ]. + + [ self treeTable roots: roots ] ensure: [ + self shouldUpdateSelection: true ] +] + +{ #category : #selection } +PyramidNavigationTreePresenter >> updateSelection [ + + self editor projectModel ifNil: [ ^ self ]. + self shouldUpdateSelection ifFalse: [ ^ self ]. + self shouldUpdateSelection: false. + [ + self treeTable unselectAll. + self editor projectModel selection ifNotEmpty: [ :e | + self treeTable selectItems: e ] ] ensure: [ + self shouldUpdateSelection: true ] +] diff --git a/src/Pyramid-Bloc/PyramidRoundedRectangleCornerRadiiCommand.class.st b/src/Pyramid-Bloc/PyramidRoundedRectangleCornerRadiiCommand.class.st index 52bc71c4..f239660b 100644 --- a/src/Pyramid-Bloc/PyramidRoundedRectangleCornerRadiiCommand.class.st +++ b/src/Pyramid-Bloc/PyramidRoundedRectangleCornerRadiiCommand.class.st @@ -7,8 +7,8 @@ Class { { #category : #testing } PyramidRoundedRectangleCornerRadiiCommand >> canBeUsedFor: anObject [ - ^ (anObject class = BlElement or: [ - anObject class inheritsFrom: BlElement ]) and: [ anObject geometry class = BlRoundedRectangleGeometry ] + ^ (super canBeUsedFor: anObject) and: [ + anObject geometry class = BlRoundedRectangleGeometry ] ] { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Bloc/PyramidTreeBaseColumnsBuilder.class.st b/src/Pyramid-Bloc/PyramidTreeBaseColumnsBuilder.class.st deleted file mode 100644 index cbeb387e..00000000 --- a/src/Pyramid-Bloc/PyramidTreeBaseColumnsBuilder.class.st +++ /dev/null @@ -1,94 +0,0 @@ -Class { - #name : #PyramidTreeBaseColumnsBuilder, - #superclass : #PyramidAbstractColumnsBuilder, - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #'as yet unclassified' } -PyramidTreeBaseColumnsBuilder >> buildOn: aPyramidTreePlugin [ - - aPyramidTreePlugin addColumns: { self nameAndTypeColumn . self hashColumn . self zIndexColumn . self visibilityColumn } -] - -{ #category : #accessing } -PyramidTreeBaseColumnsBuilder >> hashColumn [ - - ^ SpStringTableColumn new - title: 'Hash'; - evaluated: [ :aBlElement | - aBlElement identityHash printString ]; - displayColor: [ :aBlElement | Color gray ]; - width: 60; - yourself -] - -{ #category : #accessing } -PyramidTreeBaseColumnsBuilder >> nameAndTypeColumn [ - - ^ SpCompositeTableColumn new - title: 'Elements'; - addColumn: - (SpImageTableColumn evaluated: [ :aBlElement | aBlElement asIcon ]); - addColumn: (SpStringTableColumn new - title: 'Identifier'; - evaluated: [ :aBlElement | - aBlElement elementId isNoId - ifTrue: [ '@\no name\' ] - ifFalse: [ aBlElement id asSymbol ] ]; - yourself); - addColumn: (SpStringTableColumn new - title: 'Class'; - evaluated: [ :aBlElement | aBlElement class name ]; - displayColor: [ :aBlElement | Color gray ]; - displayItalic: [ :aBlElement | true ]; - yourself); - yourself -] - -{ #category : #initialization } -PyramidTreeBaseColumnsBuilder >> setVisibility: aBlVisibility of: aBlElement onEditor: aPyramidEditor [ - - aPyramidEditor propertiesManager commandExecutor - use: PyramidVisibilityCommand new - on: { aBlElement } - with: aBlVisibility -] - -{ #category : #accessing } -PyramidTreeBaseColumnsBuilder >> visibilityColumn [ - - ^ SpCompositeTableColumn new - title: 'Visibility'; - width: 80; - addColumn: (SpImageTableColumn evaluated: [ :aBlElement | - aBlElement - allParentsDetect: [ :parent | parent isVisible not ] - ifFound: [ :parent | Smalltalk ui icons iconNamed: #uncommentedClass ] - ifNone: [ Smalltalk ui icons iconNamed: #blank16 ] ]); - addColumn: (SpImageTableColumn evaluated: [ :aBlElement | - aBlElement visibility asIcon ]); - addColumn: (SpLinkTableColumn new - title: 'Visible'; - url: [ :aBlElement | '' ]; - action: [ :aBlElement | - self - setVisibility: aBlElement visibility nextVisibilityForTree - of: aBlElement - onEditor: self editor ]; - evaluated: [ :aBlElement | aBlElement visibility asString ]; - yourself); - yourself -] - -{ #category : #accessing } -PyramidTreeBaseColumnsBuilder >> zIndexColumn [ - - ^ SpStringTableColumn new - title: 'z'; - evaluated: [ :aBlElement | - aBlElement elevation elevation = 0 - ifTrue: [ '' ] - ifFalse: [ aBlElement elevation elevation printString ] ]; - width: 16; - yourself -] diff --git a/src/Pyramid-Bloc/PyramidTreePlugin.class.st b/src/Pyramid-Bloc/PyramidTreePlugin.class.st deleted file mode 100644 index 7fd6ed24..00000000 --- a/src/Pyramid-Bloc/PyramidTreePlugin.class.st +++ /dev/null @@ -1,302 +0,0 @@ -Class { - #name : #PyramidTreePlugin, - #superclass : #Object, - #traits : 'TPyramidPlugin + TPyramidElementToAdd', - #classTraits : 'TPyramidPlugin classTrait + TPyramidElementToAdd classTrait', - #instVars : [ - 'treePresenter', - 'editor', - 'libraryPresenterForElement', - 'libraryPresenterForRoot' - ], - #classVars : [ - 'ColumnsBuildersClasses' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #'as yet unclassified' } -PyramidTreePlugin class >> addDefaultOnLibrary: library [ - - | factoryElement factoryTextElement | - - factoryElement := PyramidElementToAddFactory new - elementIcon: - (Smalltalk ui icons iconNamed: #class); - elementName: 'Simple Element'; - elementBlock: [ {BlElement new background: Color random; yourself} ]; - yourself. - factoryTextElement := PyramidElementToAddFactory new - elementIcon: - (Smalltalk ui icons iconNamed: #haloFontSize); - elementName: 'Simple Element'; - elementBlock: [ {BlTextElement new text: 'Change me' asRopedText; yourself} ]; - yourself. - - library - addCategoryWithName: '(Default)' - withIcon: (Smalltalk ui icons iconNamed: #box) - withAllFactories: { factoryElement . factoryTextElement } sorted. - - ^ library -] - -{ #category : #adding } -PyramidTreePlugin class >> addOnLibrary: aLibrary [ - - self addDefaultOnLibrary: aLibrary. - self addPystonOnLibrary: aLibrary. - self addPystashOnLibrary: aLibrary -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin class >> addPragma: aSymbol onLibrary: aLibrary withIcon: anIcon [ - - | pragmas methods packages | - pragmas := Pragma allNamed: aSymbol. - methods := (pragmas collect: #method) asSet. - packages := (methods collect: #package) asSet. - - packages do: [ :package | - | factories | - factories := self factoriesFromMethods: methods inPackage: package. - factories ifNotEmpty: [ aLibrary - addCategoryWithName: package name - withIcon: anIcon - withAllFactories: factories asArray sorted ] - ]. - - ^ aLibrary -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin class >> addPystashOnLibrary: library [ - - ^ self - addPragma: #pyStash - onLibrary: library - withIcon: (Smalltalk ui icons iconNamed: #smallSave). -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin class >> addPystonOnLibrary: library [ - - ^ self - addPragma: #pySTON - onLibrary: library - withIcon: (Smalltalk ui icons iconNamed: #smallSave) -] - -{ #category : #accessing } -PyramidTreePlugin class >> columnsBuildersClasses [ - - ColumnsBuildersClasses ifNil: [ - ColumnsBuildersClasses := Set new ]. - ^ ColumnsBuildersClasses -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin class >> factoriesFromMethods: methods inPackage: package [ - - package ifNil: [ ^ { } ]. - - ^ methods - select: [ :method | - method package = package and: [ - method methodClass isObsolete not ] ] - thenCollect: [ :method | - PyramidElementToAddFactory new - elementIcon: (Smalltalk ui icons iconNamed: - method methodClass soleInstance systemIconName); - elementName: method selector; - elementBlock: [ - (method methodClass soleInstance perform: method selector) - materializeAsBlElement ]; - yourself ] -] - -{ #category : #initialization } -PyramidTreePlugin class >> install [ - "Do some stuff here when the plugin used class oriented behavior" - - self columnsBuildersClasses add: PyramidTreeBaseColumnsBuilder -] - -{ #category : #initialization } -PyramidTreePlugin >> addColumns: aCollection [ - aCollection do: [ :each | self treePresenter columns add: each ]. - self treePresenter updateTree - - -] - -{ #category : #adding } -PyramidTreePlugin >> addPanelsOn: aPyramidSimpleWindow [ - - aPyramidSimpleWindow at: #tabLeft addItem: [ :builder | - builder - makeTab: self treePresenter - label: 'Tree' - icon: (Smalltalk ui icons iconNamed: #catalog) - order: 1 ]. - - aPyramidSimpleWindow - at: #selectionMenu - addItem: [ :builder | self menuAddAndDeleteOn: builder ] -] - -{ #category : #actions } -PyramidTreePlugin >> configureBuilder: aPyramidEditorBuilder [ - - self class columnsBuildersClasses do: [ :each | - each new - editor: aPyramidEditorBuilder editor; - buildOn: self ] -] - -{ #category : #connecting } -PyramidTreePlugin >> connectOn: aPyramidEditor [ - - self editor: aPyramidEditor. -] - -{ #category : #accessing } -PyramidTreePlugin >> editor [ - - ^ editor -] - -{ #category : #accessing } -PyramidTreePlugin >> editor: aPyramidEditor [ - - editor := aPyramidEditor. - self treePresenter projectModel: aPyramidEditor projectModel. - self treePresenter editorMenuBuilder: - (self editor window services at: #selectionMenu) builder -] - -{ #category : #initialization } -PyramidTreePlugin >> initialize [ - - self initializeLibraryPresenters. - treePresenter := PyramidTreePresenter new - libraryPresenterForRoot: - self libraryPresenterForRoot; - yourself -] - -{ #category : #initialization } -PyramidTreePlugin >> initializeLibraryPresenters [ - - | idGenerator | - idGenerator := PyramidLibraryContainerPresenter makeIdGenerator. - libraryPresenterForElement := PyramidLibraryContainerPresenter new - idGenerator: idGenerator; - library: PyramidElementToAddPresenter new; - buttonLabel: 'Add new child'; - buttonAction: [ - self editor propertiesManager - commandExecutor - use: PyramidAddChildrenCommand new - on: - self editor projectModel selection - with: - libraryPresenterForElement - elementToAdd ]; - yourself. - libraryPresenterForRoot := PyramidLibraryContainerPresenter new - idGenerator: idGenerator; - library: PyramidElementToAddPresenter new; - buttonLabel: 'Add new on first level'; - buttonAction: [ - self editor propertiesManager - commandExecutor - use: - PyramidAddAllToCollectionCommand new - on: - { self editor projectModel - firstLevelElements } - with: - libraryPresenterForRoot elementToAdd ]; - yourself -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin >> libraryPresenterForElement [ - - ^ libraryPresenterForElement -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin >> libraryPresenterForRoot [ - - ^ libraryPresenterForRoot -] - -{ #category : #'as yet unclassified' } -PyramidTreePlugin >> menuAddAndDeleteOn: aBuilder [ - - aBuilder - addGroupEmptySelection: [ :group :empty | - group addItem: [ :anItem | - anItem - name: 'Add element...'; - help: 'Add a new element on the roots of the design.'; - icon: (Smalltalk ui icons iconNamed: #add); - action: [ - (PyramidPopoverFactory - makeWithPresenter: self libraryPresenterForRoot - relativeTo: self treePresenter - position: SpPopoverPosition right) popup ] ] ] - order: 10. - - aBuilder - addGroupSingleSelection: [ :group :single | - group addItem: [ :anItem | - anItem - name: 'Add child element...'; - help: 'Add a new element as a child of the selected element.'; - icon: (Smalltalk ui icons iconNamed: #add); - action: [ - (PyramidPopoverFactory - makeWithPresenter: self libraryPresenterForElement - relativeTo: self treePresenter - position: SpPopoverPosition right) popup ] ]. - group addItem: [ :anItem | - anItem - name: 'Remove element'; - help: - 'Delete the selected element and its content'; - icon: (Smalltalk ui icons iconNamed: #delete); - action: [ self removeSelectedElements ] ] ] - order: 10. - - aBuilder - addGroupMultiSelection: [ :group :multi | - group addItem: [ :anItem | - anItem - name: 'Remove selection'; - help: - 'Delete all selected elements and their contents'; - icon: (Smalltalk ui icons iconNamed: #delete); - action: [ self removeSelectedElements ] ] ] - order: 10 -] - -{ #category : #removing } -PyramidTreePlugin >> removeSelectedElements [ - - self editor propertiesManager commandExecutor - use: PyramidRemoveSelectedElementsCommand new - on: self editor projectModel selection - with: self editor projectModel firstLevelElements. - - "Update the selection after remove" - self editor projectModel updateSelection -] - -{ #category : #accessing } -PyramidTreePlugin >> treePresenter [ - - ^ treePresenter -] diff --git a/src/Pyramid-Bloc/PyramidTreePresenter.class.st b/src/Pyramid-Bloc/PyramidTreePresenter.class.st deleted file mode 100644 index c673328a..00000000 --- a/src/Pyramid-Bloc/PyramidTreePresenter.class.st +++ /dev/null @@ -1,227 +0,0 @@ -Class { - #name : #PyramidTreePresenter, - #superclass : #SpPresenter, - #instVars : [ - 'tree', - 'columns', - 'libraryPresenterForRoot', - 'projectModel', - 'editorMenuBuilder', - 'shouldUpdateSelection', - 'buttonAddToFirstLevel' - ], - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> actionAddNewElement [ - - (PyramidPopoverFactory - makeWithPresenter: self libraryPresenterForRoot - relativeTo: self buttonAddToFirstLevel - position: SpPopoverPosition right) popup -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> actionEditorMenu [ - - ^ self editorMenuBuilder menuFor: self projectModel selection. -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> actionSelectionChanged: aCollection [ - - self projectModel ifNil: [ ^ self ]. - self shouldUpdateSelection ifFalse: [ ^ self ]. - self shouldUpdateSelection: false. - [self projectModel setSelection: aCollection selectedItems ] ensure: [ self shouldUpdateSelection: true ] -] - -{ #category : #accessing } -PyramidTreePresenter >> buttonAddToFirstLevel [ - - ^ buttonAddToFirstLevel -] - -{ #category : #accessing } -PyramidTreePresenter >> columns [ - - ^ columns -] - -{ #category : #layout } -PyramidTreePresenter >> defaultLayout [ - - ^ SpBoxLayout newVertical - spacing: 4; - add: self buttonAddToFirstLevel expand: false; - add: self tree expand: true; - yourself -] - -{ #category : #accessing } -PyramidTreePresenter >> editorMenuBuilder [ - - ^ editorMenuBuilder -] - -{ #category : #accessing } -PyramidTreePresenter >> editorMenuBuilder: anObject [ - - editorMenuBuilder := anObject -] - -{ #category : #initialization } -PyramidTreePresenter >> initializePresenters [ - - shouldUpdateSelection := true. - tree := SpTreeTablePresenter new - beMultipleSelection; - beResizable; - roots: { }; - children: [ :each | - each shouldSerializedChildren not - ifTrue: [ { } ] - ifFalse: [ each children ] ]; - contextMenu: [ self actionEditorMenu ]; - whenSelectionChangedDo: [ :selection | - self actionSelectionChanged: selection ]; - expandAll. - - columns := OrderedCollection new. - - buttonAddToFirstLevel := SpButtonPresenter new - label: 'Add new element'; - icon: (Smalltalk ui icons iconNamed: #add); - action: [ self actionAddNewElement ]; - help: - 'Add a new element on the first level of the design.'; - yourself -] - -{ #category : #accessing } -PyramidTreePresenter >> libraryPresenterForRoot [ - - ^ libraryPresenterForRoot -] - -{ #category : #accessing } -PyramidTreePresenter >> libraryPresenterForRoot: anObject [ - - libraryPresenterForRoot := anObject -] - -{ #category : #accessing } -PyramidTreePresenter >> projectModel [ - - ^ projectModel -] - -{ #category : #accessing } -PyramidTreePresenter >> projectModel: anObject [ - - projectModel := anObject. - projectModel announcer - when: PyramidElementsChangedEvent - do: [ :evt | self pyramidElementsChanged: evt ] - for: self. - projectModel announcer - when: PyramidFirstLevelElementsChangedEvent - do: [ :evt | self pyramidFirstLevelElementsChanged: evt ] - for: self. - projectModel announcer - when: PyramidSelectionChangedEvent - do: [ :evt | self pyramidSelectionChanged: evt ] - for: self. -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> pyramidElementsChanged: anEvent [ - - self updateRoots. - self selectionHaveChanged ifTrue: [ self updateSelection ] -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> pyramidFirstLevelElementsChanged: anEvent [ - - self updateRoots. - self updateSelection -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> pyramidSelectionChanged: anEvent [ - - self updateSelection -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> selectionHaveChanged [ - - self tree selectedItems size = self projectModel selection size ifFalse: [ - ^ true ]. - (self tree selectedItems includesAll: self projectModel selection) ifFalse: [ - ^ true ]. - (self projectModel selection includesAll: self tree selectedItems) ifFalse: [ - ^ true ]. - ^ false -] - -{ #category : #accessing } -PyramidTreePresenter >> shouldUpdateSelection [ - - ^ shouldUpdateSelection -] - -{ #category : #accessing } -PyramidTreePresenter >> shouldUpdateSelection: anObject [ - - shouldUpdateSelection := anObject -] - -{ #category : #accessing } -PyramidTreePresenter >> tree [ - - ^ tree -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> updateRoots [ - - | roots parent shouldOrder | - self shouldUpdateSelection: false. - - roots := self projectModel firstLevelElements asArray. - parent := nil. - - "If roots all have the same parent then it should be ordered by the parent children order." - shouldOrder := (roots allSatisfy: [ :each | - parent ifNil: [ parent := each parent ]. - each parent = parent ]) and: [ - parent notNil and: [ - parent childrenCount = roots size ] ]. - shouldOrder ifTrue: [ roots := parent children asArray ]. - - [ self tree roots: roots ] ensure: [ - self shouldUpdateSelection: true ] -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> updateSelection [ - - self projectModel ifNil: [ ^ self ]. - self shouldUpdateSelection ifFalse: [ ^ self ]. - self shouldUpdateSelection: false. - [ - self tree unselectAll. - self projectModel selection - ifNotEmpty: [ :e | self tree selectItems: e ] ] - ensure: [ self shouldUpdateSelection: true ] -] - -{ #category : #'as yet unclassified' } -PyramidTreePresenter >> updateTree [ - - self tree columns: { }. - self columns do: [ :each | tree addColumn: each ] -] diff --git a/src/Pyramid-Bloc/TPyramidElementToAdd.trait.st b/src/Pyramid-Bloc/TPyramidElementToAdd.trait.st deleted file mode 100644 index 5c1c6ea3..00000000 --- a/src/Pyramid-Bloc/TPyramidElementToAdd.trait.st +++ /dev/null @@ -1,10 +0,0 @@ -Trait { - #name : #TPyramidElementToAdd, - #category : #'Pyramid-Bloc-plugin-tree-library' -} - -{ #category : #adding } -TPyramidElementToAdd classSide >> addOnLibrary: aLibrary [ - - self shouldBeImplemented -] diff --git a/src/Pyramid-Bloc/TPyramidSelectionPanelExtension.trait.st b/src/Pyramid-Bloc/TPyramidSelectionPanelExtension.trait.st new file mode 100644 index 00000000..2aabf418 --- /dev/null +++ b/src/Pyramid-Bloc/TPyramidSelectionPanelExtension.trait.st @@ -0,0 +1,4 @@ +Trait { + #name : #TPyramidSelectionPanelExtension, + #category : #'Pyramid-Bloc-plugin-navigation' +} diff --git a/src/Pyramid-Examples/PyramidSimpleExamples.class.st b/src/Pyramid-Examples/PyramidSimpleExamples.class.st index cacc39c1..e8c2c0f0 100644 --- a/src/Pyramid-Examples/PyramidSimpleExamples.class.st +++ b/src/Pyramid-Examples/PyramidSimpleExamples.class.st @@ -9,15 +9,16 @@ PyramidSimpleExamples class >> imageProxy [ "This class has been generated using Pyramid. By: YannLEGOFF - 2024-07-23 09:32:34" + 2024-07-30 11:33:02" - ^ [ {(BlElement new - id: #A; + ^ [ | objectclass1 | +objectclass1 := Object. +{(BlElement new background: (BlImageBackground new image: (PyramidExternalRessourceProxy new pyramidExternalRessourceSource: (PyramidExternalRessourceSource new - target: Object; + target: objectclass1; selector: #iconNamed:; arguments: {#pharoBig}; yourself); @@ -26,6 +27,22 @@ PyramidSimpleExamples class >> imageProxy [ yourself); constraintsDo: [:constraints | constraints horizontal exact: 256.0. constraints vertical exact: 256.0 ]; + id: #A; + yourself) . +(BlElement new + background: (BlImageBackground new + image: (PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: objectclass1; + selector: #iconNamed:; + arguments: {#abstract}; + yourself); + yourself); + opacity: 1.0; + yourself); + constraintsDo: [:constraints | constraints horizontal exact: 16.0. + constraints vertical exact: 16.0 ]; + id: #A; yourself)} ] value ] diff --git a/src/Pyramid-Tests/PyramidAddChildCommandTest.class.st b/src/Pyramid-Tests/PyramidAddChildCommandTest.class.st index e67efd17..ad54c577 100644 --- a/src/Pyramid-Tests/PyramidAddChildCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidAddChildCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidAddMockCommandTest.class.st b/src/Pyramid-Tests/PyramidAddMockCommandTest.class.st index eff607cf..f1e52d3b 100644 --- a/src/Pyramid-Tests/PyramidAddMockCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidAddMockCommandTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidAddMockCommandTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidBackgroundImageCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundImageCommandTest.class.st index cdde4fdc..f5308c6b 100644 --- a/src/Pyramid-Tests/PyramidBackgroundImageCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundImageCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundOpacityCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundOpacityCommandTest.class.st index 3dff80ca..6f01df3d 100644 --- a/src/Pyramid-Tests/PyramidBackgroundOpacityCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundOpacityCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintColorCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintColorCommandTest.class.st index f18471ff..ea72a86d 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintColorCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintColorCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintCommandTest.class.st index ff09432c..949a9ab7 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintLinearEndCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintLinearEndCommandTest.class.st index 54e3f26a..116912ab 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintLinearEndCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintLinearEndCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintLinearStartCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintLinearStartCommandTest.class.st index 2eb0cc4d..31caf284 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintLinearStartCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintLinearStartCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerCenterCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerCenterCommandTest.class.st index ba48dc8c..aac47749 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerCenterCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerCenterCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerRadiusCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerRadiusCommandTest.class.st index 80a94e73..b9bfbd44 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerRadiusCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintRadialInnerRadiusCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterCenterCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterCenterCommandTest.class.st index 12bd8c40..ba329f0d 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterCenterCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterCenterCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterRadiusCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterRadiusCommandTest.class.st index 4cdaddda..742ef40e 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterRadiusCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintRadialOuterRadiusCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundPaintStopsCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundPaintStopsCommandTest.class.st index 6e52bb48..284afe89 100644 --- a/src/Pyramid-Tests/PyramidBackgroundPaintStopsCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundPaintStopsCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundStopsInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidBackgroundStopsInputPresenterTest.class.st index efe9c90b..576642a9 100644 --- a/src/Pyramid-Tests/PyramidBackgroundStopsInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundStopsInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBackgroundTypeCommandTest.class.st b/src/Pyramid-Tests/PyramidBackgroundTypeCommandTest.class.st index b63ada96..b3c75e7b 100644 --- a/src/Pyramid-Tests/PyramidBackgroundTypeCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBackgroundTypeCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBasicConstraintsInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidBasicConstraintsInputPresenterTest.class.st index e8705ae3..2b2e2fed 100644 --- a/src/Pyramid-Tests/PyramidBasicConstraintsInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidBasicConstraintsInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBasicExactHorizontalConstraintsBlocCommandTest.class.st b/src/Pyramid-Tests/PyramidBasicExactHorizontalConstraintsBlocCommandTest.class.st index b439ee0d..ddb32c3c 100644 --- a/src/Pyramid-Tests/PyramidBasicExactHorizontalConstraintsBlocCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBasicExactHorizontalConstraintsBlocCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBasicExactVerticalConstraintsBlocCommandTest.class.st b/src/Pyramid-Tests/PyramidBasicExactVerticalConstraintsBlocCommandTest.class.st index 948798f2..a1165f8e 100644 --- a/src/Pyramid-Tests/PyramidBasicExactVerticalConstraintsBlocCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBasicExactVerticalConstraintsBlocCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBasicHorizontalConstraintsBlocCommandTest.class.st b/src/Pyramid-Tests/PyramidBasicHorizontalConstraintsBlocCommandTest.class.st index 2cb93cfb..0c34c59c 100644 --- a/src/Pyramid-Tests/PyramidBasicHorizontalConstraintsBlocCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBasicHorizontalConstraintsBlocCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBasicVerticalConstraintsBlocCommandTest.class.st b/src/Pyramid-Tests/PyramidBasicVerticalConstraintsBlocCommandTest.class.st index 039f399c..6bd1493e 100644 --- a/src/Pyramid-Tests/PyramidBasicVerticalConstraintsBlocCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBasicVerticalConstraintsBlocCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderDashArrayCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderDashArrayCommandTest.class.st index f55b988d..618ef42f 100644 --- a/src/Pyramid-Tests/PyramidBorderDashArrayCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderDashArrayCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderDashOffsetCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderDashOffsetCommandTest.class.st index 17480fae..a7d65f33 100644 --- a/src/Pyramid-Tests/PyramidBorderDashOffsetCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderDashOffsetCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderLineCapCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderLineCapCommandTest.class.st index 8e5f3bee..dce90ad7 100644 --- a/src/Pyramid-Tests/PyramidBorderLineCapCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderLineCapCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderLineJoinCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderLineJoinCommandTest.class.st index 4e5db5ec..fef84f1f 100644 --- a/src/Pyramid-Tests/PyramidBorderLineJoinCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderLineJoinCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderMiterLimitCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderMiterLimitCommandTest.class.st index 0697b6c0..f4ddb511 100644 --- a/src/Pyramid-Tests/PyramidBorderMiterLimitCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderMiterLimitCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderOpacityCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderOpacityCommandTest.class.st index e31aa4b0..77ba3328 100644 --- a/src/Pyramid-Tests/PyramidBorderOpacityCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderOpacityCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidBorderTypeCommandTest.class.st b/src/Pyramid-Tests/PyramidBorderTypeCommandTest.class.st index 9d79abf9..cc091120 100644 --- a/src/Pyramid-Tests/PyramidBorderTypeCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidBorderTypeCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidChangeOrderWithIndexCommandTest.class.st b/src/Pyramid-Tests/PyramidChangeOrderWithIndexCommandTest.class.st index 7703a770..3f304800 100644 --- a/src/Pyramid-Tests/PyramidChangeOrderWithIndexCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidChangeOrderWithIndexCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-order' + #category : #'Pyramid-Tests-cases-plugin-bloc-order' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidChangeTextCommandTest.class.st b/src/Pyramid-Tests/PyramidChangeTextCommandTest.class.st index bc1edb85..18dd1eb5 100644 --- a/src/Pyramid-Tests/PyramidChangeTextCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidChangeTextCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-text' + #category : #'Pyramid-Tests-cases-plugin-bloc-text' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidClipChildrenCommandTest.class.st b/src/Pyramid-Tests/PyramidClipChildrenCommandTest.class.st index b40c9836..07f02a09 100644 --- a/src/Pyramid-Tests/PyramidClipChildrenCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidClipChildrenCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidCollectionWithCallbacksTest.class.st b/src/Pyramid-Tests/PyramidCollectionWithCallbacksTest.class.st index adcd50c9..207bcdd4 100644 --- a/src/Pyramid-Tests/PyramidCollectionWithCallbacksTest.class.st +++ b/src/Pyramid-Tests/PyramidCollectionWithCallbacksTest.class.st @@ -5,7 +5,7 @@ Class { 'valueToCheck', 'collection' ], - #category : 'Pyramid-Tests-cases-models' + #category : #'Pyramid-Tests-cases-models' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidColorInputMultiLinesPresenterTest.class.st b/src/Pyramid-Tests/PyramidColorInputMultiLinesPresenterTest.class.st index adf3bae6..2f26fe58 100644 --- a/src/Pyramid-Tests/PyramidColorInputMultiLinesPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidColorInputMultiLinesPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidColorInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidColorInputPresenterTest.class.st index 1c58b8cc..6f5c1cfc 100644 --- a/src/Pyramid-Tests/PyramidColorInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidColorInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidColorInputSingleLinePresenterTest.class.st b/src/Pyramid-Tests/PyramidColorInputSingleLinePresenterTest.class.st index 284dd6c6..6c1bd946 100644 --- a/src/Pyramid-Tests/PyramidColorInputSingleLinePresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidColorInputSingleLinePresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidColorInputSingleLineWithPickupButtonPresenterTest.class.st b/src/Pyramid-Tests/PyramidColorInputSingleLineWithPickupButtonPresenterTest.class.st index b6ba2ca0..c8cfa5c3 100644 --- a/src/Pyramid-Tests/PyramidColorInputSingleLineWithPickupButtonPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidColorInputSingleLineWithPickupButtonPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidCommandTest.class.st b/src/Pyramid-Tests/PyramidCommandTest.class.st index 47d2cc06..8403402a 100644 --- a/src/Pyramid-Tests/PyramidCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidCommandTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidCommandTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidCommandTestContainer.class.st b/src/Pyramid-Tests/PyramidCommandTestContainer.class.st index 17bc1f0f..a9f8912a 100644 --- a/src/Pyramid-Tests/PyramidCommandTestContainer.class.st +++ b/src/Pyramid-Tests/PyramidCommandTestContainer.class.st @@ -6,7 +6,7 @@ Class { 'targetWithProp', 'prop' ], - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidContextMenuPluginTest.class.st b/src/Pyramid-Tests/PyramidContextMenuPluginTest.class.st index 262fddcf..f099b03f 100644 --- a/src/Pyramid-Tests/PyramidContextMenuPluginTest.class.st +++ b/src/Pyramid-Tests/PyramidContextMenuPluginTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidContextMenuPluginTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-context-menu' + #category : #'Pyramid-Tests-cases-plugin-context-menu' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidCopyPastePluginTest.class.st b/src/Pyramid-Tests/PyramidCopyPastePluginTest.class.st index d00a9d3e..f4f63696 100644 --- a/src/Pyramid-Tests/PyramidCopyPastePluginTest.class.st +++ b/src/Pyramid-Tests/PyramidCopyPastePluginTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidCopyPastePluginTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-copy' + #category : #'Pyramid-Tests-cases-plugin-copy' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidCornerRadiiInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidCornerRadiiInputPresenterTest.class.st index 8338fb3e..cf93277f 100644 --- a/src/Pyramid-Tests/PyramidCornerRadiiInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidCornerRadiiInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-geometry' + #category : #'Pyramid-Tests-cases-plugin-bloc-geometry' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidDecreaseMockCommand.class.st b/src/Pyramid-Tests/PyramidDecreaseMockCommand.class.st index 07a22d3e..6e1c22c6 100644 --- a/src/Pyramid-Tests/PyramidDecreaseMockCommand.class.st +++ b/src/Pyramid-Tests/PyramidDecreaseMockCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDecreaseMockCommand, #superclass : #PyramidMockCommand, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidDynamicLayoutStrategyTest.class.st b/src/Pyramid-Tests/PyramidDynamicLayoutStrategyTest.class.st index 5d9588bc..11469e58 100644 --- a/src/Pyramid-Tests/PyramidDynamicLayoutStrategyTest.class.st +++ b/src/Pyramid-Tests/PyramidDynamicLayoutStrategyTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDynamicLayoutStrategyTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-dynamic-layout' + #category : #'Pyramid-Tests-cases-plugin-dynamic-layout' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidEditorBuilderTest.class.st b/src/Pyramid-Tests/PyramidEditorBuilderTest.class.st index 9fef616f..76a3d469 100644 --- a/src/Pyramid-Tests/PyramidEditorBuilderTest.class.st +++ b/src/Pyramid-Tests/PyramidEditorBuilderTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidEditorBuilderTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-core' + #category : #'Pyramid-Tests-cases-core' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidEditorTest.class.st b/src/Pyramid-Tests/PyramidEditorTest.class.st index bdee6a3c..baab7d2e 100644 --- a/src/Pyramid-Tests/PyramidEditorTest.class.st +++ b/src/Pyramid-Tests/PyramidEditorTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidEditorTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-core' + #category : #'Pyramid-Tests-cases-core' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidElementIdCommandTest.class.st b/src/Pyramid-Tests/PyramidElementIdCommandTest.class.st index 77217d3e..b235dc3b 100644 --- a/src/Pyramid-Tests/PyramidElementIdCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidElementIdCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidElementIdSortFunctionTest.class.st b/src/Pyramid-Tests/PyramidElementIdSortFunctionTest.class.st index 21a5bb51..46f21802 100644 --- a/src/Pyramid-Tests/PyramidElementIdSortFunctionTest.class.st +++ b/src/Pyramid-Tests/PyramidElementIdSortFunctionTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidElementIdSortFunctionTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-bloc-utils' + #category : #'Pyramid-Tests-cases-bloc-utils' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidElementsManipulationHelperTest.class.st b/src/Pyramid-Tests/PyramidElementsManipulationHelperTest.class.st index 3a6ea220..691ca691 100644 --- a/src/Pyramid-Tests/PyramidElementsManipulationHelperTest.class.st +++ b/src/Pyramid-Tests/PyramidElementsManipulationHelperTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidElementsManipulationHelperTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-bloc-utils' + #category : #'Pyramid-Tests-cases-bloc-utils' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidElevationSortFunctionTest.class.st b/src/Pyramid-Tests/PyramidElevationSortFunctionTest.class.st index 4609c119..9ad0b773 100644 --- a/src/Pyramid-Tests/PyramidElevationSortFunctionTest.class.st +++ b/src/Pyramid-Tests/PyramidElevationSortFunctionTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidElevationSortFunctionTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-bloc-utils' + #category : #'Pyramid-Tests-cases-bloc-utils' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidExternalRessourceDummyForTest.class.st b/src/Pyramid-Tests/PyramidExternalRessourceDummyForTest.class.st index 66fc643e..c23baa5c 100644 --- a/src/Pyramid-Tests/PyramidExternalRessourceDummyForTest.class.st +++ b/src/Pyramid-Tests/PyramidExternalRessourceDummyForTest.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'dummyValue' ], - #category : 'Pyramid-Tests-cases-external-ressources' + #category : #'Pyramid-Tests-cases-external-ressources' } { #category : #'tests - other' } diff --git a/src/Pyramid-Tests/PyramidExternalRessourceProxyTest.class.st b/src/Pyramid-Tests/PyramidExternalRessourceProxyTest.class.st index 40d6c889..53319120 100644 --- a/src/Pyramid-Tests/PyramidExternalRessourceProxyTest.class.st +++ b/src/Pyramid-Tests/PyramidExternalRessourceProxyTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidExternalRessourceProxyTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-external-ressources' + #category : #'Pyramid-Tests-cases-external-ressources' } { #category : #'tests - other' } diff --git a/src/Pyramid-Tests/PyramidExternalRessourceSourceTest.class.st b/src/Pyramid-Tests/PyramidExternalRessourceSourceTest.class.st index 41367f7c..5007962a 100644 --- a/src/Pyramid-Tests/PyramidExternalRessourceSourceTest.class.st +++ b/src/Pyramid-Tests/PyramidExternalRessourceSourceTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidExternalRessourceSourceTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-external-ressources' + #category : #'Pyramid-Tests-cases-external-ressources' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidFakeExtension.class.st b/src/Pyramid-Tests/PyramidFakeExtension.class.st index 55d5a239..72a83283 100644 --- a/src/Pyramid-Tests/PyramidFakeExtension.class.st +++ b/src/Pyramid-Tests/PyramidFakeExtension.class.st @@ -6,7 +6,7 @@ Class { 'editor', 'projectModel' ], - #category : 'Pyramid-Tests-cases-plugin-space' + #category : #'Pyramid-Tests-cases-plugin-space' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidFakePlugin.class.st b/src/Pyramid-Tests/PyramidFakePlugin.class.st index 8197d415..34d9e9fe 100644 --- a/src/Pyramid-Tests/PyramidFakePlugin.class.st +++ b/src/Pyramid-Tests/PyramidFakePlugin.class.st @@ -6,7 +6,7 @@ Class { 'configureBuilder', 'connectOn' ], - #category : 'Pyramid-Tests-cases-core' + #category : #'Pyramid-Tests-cases-core' } { #category : #asserting } diff --git a/src/Pyramid-Tests/PyramidFakePluginThatShouldNotBeInstalled.class.st b/src/Pyramid-Tests/PyramidFakePluginThatShouldNotBeInstalled.class.st index 3a2a9971..7f726cff 100644 --- a/src/Pyramid-Tests/PyramidFakePluginThatShouldNotBeInstalled.class.st +++ b/src/Pyramid-Tests/PyramidFakePluginThatShouldNotBeInstalled.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidFakePluginThatShouldNotBeInstalled, #superclass : #PyramidFakePlugin, - #category : 'Pyramid-Tests-cases-core' + #category : #'Pyramid-Tests-cases-core' } { #category : #asserting } diff --git a/src/Pyramid-Tests/PyramidFakePropertyForTestStrategy.class.st b/src/Pyramid-Tests/PyramidFakePropertyForTestStrategy.class.st index 22be45a7..13d1a2f2 100644 --- a/src/Pyramid-Tests/PyramidFakePropertyForTestStrategy.class.st +++ b/src/Pyramid-Tests/PyramidFakePropertyForTestStrategy.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'properties' ], - #category : 'Pyramid-Tests-cases-property' + #category : #'Pyramid-Tests-cases-property' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidFlowLayoutOrientationPresenterTest.class.st b/src/Pyramid-Tests/PyramidFlowLayoutOrientationPresenterTest.class.st index ddc86103..a112b867 100644 --- a/src/Pyramid-Tests/PyramidFlowLayoutOrientationPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidFlowLayoutOrientationPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidFontSizeCommandTest.class.st b/src/Pyramid-Tests/PyramidFontSizeCommandTest.class.st index b49ff25f..effab2f4 100644 --- a/src/Pyramid-Tests/PyramidFontSizeCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidFontSizeCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidFontAttributeCommandTest', #classTraits : 'TPyramidFontAttributeCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-text' + #category : #'Pyramid-Tests-cases-plugin-bloc-text' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidFontWeightCommandTest.class.st b/src/Pyramid-Tests/PyramidFontWeightCommandTest.class.st index 68850859..ca2f6b2e 100644 --- a/src/Pyramid-Tests/PyramidFontWeightCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidFontWeightCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidFontAttributeCommandTest', #classTraits : 'TPyramidFontAttributeCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-text' + #category : #'Pyramid-Tests-cases-plugin-bloc-text' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidGeometryCommandTest.class.st b/src/Pyramid-Tests/PyramidGeometryCommandTest.class.st index f695265b..070c4ad8 100644 --- a/src/Pyramid-Tests/PyramidGeometryCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidGeometryCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-geometry' + #category : #'Pyramid-Tests-cases-plugin-bloc-geometry' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidGeometryInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidGeometryInputPresenterTest.class.st index 857adf03..c2052534 100644 --- a/src/Pyramid-Tests/PyramidGeometryInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidGeometryInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-geometry' + #category : #'Pyramid-Tests-cases-plugin-bloc-geometry' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidGroupCommandTest.class.st b/src/Pyramid-Tests/PyramidGroupCommandTest.class.st index 60691f0a..8ba4c0db 100644 --- a/src/Pyramid-Tests/PyramidGroupCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidGroupCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-group' + #category : #'Pyramid-Tests-cases-plugin-bloc-group' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidHistoryTest.class.st b/src/Pyramid-Tests/PyramidHistoryTest.class.st index 62920c46..9018bea2 100644 --- a/src/Pyramid-Tests/PyramidHistoryTest.class.st +++ b/src/Pyramid-Tests/PyramidHistoryTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidHistoryTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-history' + #category : #'Pyramid-Tests-cases-history' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidHorizontalFrameConstraintsInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidHorizontalFrameConstraintsInputPresenterTest.class.st index 15f7f340..e50b71f6 100644 --- a/src/Pyramid-Tests/PyramidHorizontalFrameConstraintsInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidHorizontalFrameConstraintsInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidIncreaseMockCommand.class.st b/src/Pyramid-Tests/PyramidIncreaseMockCommand.class.st index b54ed72f..cd869468 100644 --- a/src/Pyramid-Tests/PyramidIncreaseMockCommand.class.st +++ b/src/Pyramid-Tests/PyramidIncreaseMockCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidIncreaseMockCommand, #superclass : #PyramidMockCommand, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidInsetsInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidInsetsInputPresenterTest.class.st index 6b2af84d..54a093d6 100644 --- a/src/Pyramid-Tests/PyramidInsetsInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidInsetsInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidLayoutBlocCommandTest.class.st b/src/Pyramid-Tests/PyramidLayoutBlocCommandTest.class.st index 79249f60..9482a8d8 100644 --- a/src/Pyramid-Tests/PyramidLayoutBlocCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidLayoutBlocCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidLayoutChangeOrientationCommandTest.class.st b/src/Pyramid-Tests/PyramidLayoutChangeOrientationCommandTest.class.st index d33a5f94..b0e2e9e5 100644 --- a/src/Pyramid-Tests/PyramidLayoutChangeOrientationCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidLayoutChangeOrientationCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidLibraryControllerTest.class.st b/src/Pyramid-Tests/PyramidLibraryControllerTest.class.st new file mode 100644 index 00000000..f6ff79b7 --- /dev/null +++ b/src/Pyramid-Tests/PyramidLibraryControllerTest.class.st @@ -0,0 +1,80 @@ +Class { + #name : #PyramidLibraryControllerTest, + #superclass : #TestCase, + #category : #'Pyramid-Tests-cases-plugin-navigation' +} + +{ #category : #tests } +PyramidLibraryControllerTest >> testOpenForRoot [ + "We generate a bunch of id and we verify that none are the same" + + | controller editor element | + controller := PyramidLibraryController new. + editor := PyramidEditor new. + controller editor: editor. + element := PyramidLibraryElement new + block: [ + { + BlElement new. + BlElement new. + BlElement new. + BlElement new. + BlElement new } ]; + yourself. + self assert: editor projectModel firstLevelElements size equals: 0. + self assert: editor projectModel selection size equals: 0. + + controller openForRoot. + controller addNewElement: element. + self assert: editor projectModel firstLevelElements size equals: 5. + self assert: editor projectModel selection size equals: 0. +] + +{ #category : #tests } +PyramidLibraryControllerTest >> testOpenForSelection [ + + | controller editor element selectedElement | + controller := PyramidLibraryController new. + editor := PyramidEditor new. + controller editor: editor. + element := PyramidLibraryElement new + block: [ + { + BlElement new. + BlElement new. + BlElement new. + BlElement new. + BlElement new } ]; + yourself. + selectedElement := BlElement new. + editor projectModel selection add: selectedElement. + self assert: editor projectModel firstLevelElements size equals: 0. + self assert: selectedElement children size equals: 0. + + controller openForRoot. + controller addNewElement: element. + self assert: editor projectModel firstLevelElements size equals: 5. + self assert: selectedElement children size equals: 0 +] + +{ #category : #tests } +PyramidLibraryControllerTest >> testRenameElements [ + "We generate a bunch of id and we verify that none are the same" + + | controller elementIds elements | + controller := PyramidLibraryController new. + elements := { + BlElement new. + BlElement new. + BlElement new. + BlElement new. + BlElement new }. + + elementIds := Bag new. + 1 to: 200 do: [ :i | + controller renameElements: elements. + elementIds addAll: (elements collect: [ :each | each id asSymbol ]) ]. + + self assert: elementIds size equals: 1000. + self assert: elementIds asSet size equals: 1000 +] diff --git a/src/Pyramid-Tests/PyramidLibraryPresenterTest.class.st b/src/Pyramid-Tests/PyramidLibraryPresenterTest.class.st deleted file mode 100644 index 24909076..00000000 --- a/src/Pyramid-Tests/PyramidLibraryPresenterTest.class.st +++ /dev/null @@ -1,41 +0,0 @@ -Class { - #name : #PyramidLibraryPresenterTest, - #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-tree-library' -} - -{ #category : #tests } -PyramidLibraryPresenterTest >> testIdGenerator [ - "We generate a bunch of id and we verify that none are the same" - - | treePlugin libraryPresForElements libraryPresForFirstLevel elementIds | - treePlugin := PyramidTreePlugin new. - libraryPresForElements := treePlugin libraryPresenterForElement. - libraryPresForFirstLevel := treePlugin libraryPresenterForRoot. - libraryPresForElements library currentFactory: - (PyramidElementToAddFactory new - elementBlock: [ - { - BlElement new. - BlElement new } ]; - yourself). - libraryPresForFirstLevel library currentFactory: - (PyramidElementToAddFactory new - elementBlock: [ - { - BlElement new. - BlElement new } ]; - yourself). - - elementIds := Bag new. - 1 to: 100 do: [ :i | - elementIds addAll: - (libraryPresForElements elementToAdd collect: [ :each | - each id asSymbol ]) ]. - 1 to: 100 do: [ :i | - elementIds addAll: - (libraryPresForFirstLevel elementToAdd collect: [ :each | - each id asSymbol ]) ]. - self assert: elementIds size equals: 400. - self assert: elementIds asSet size equals: 400. -] diff --git a/src/Pyramid-Tests/PyramidLinearLayoutOrientationPresenterTest.class.st b/src/Pyramid-Tests/PyramidLinearLayoutOrientationPresenterTest.class.st index e0e1a2d8..65542524 100644 --- a/src/Pyramid-Tests/PyramidLinearLayoutOrientationPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidLinearLayoutOrientationPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidMagicButtonsInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidMagicButtonsInputPresenterTest.class.st index 500e5a9e..65ddba88 100644 --- a/src/Pyramid-Tests/PyramidMagicButtonsInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidMagicButtonsInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidMarginCommandTest.class.st b/src/Pyramid-Tests/PyramidMarginCommandTest.class.st index a3e61636..1ff7ea4b 100644 --- a/src/Pyramid-Tests/PyramidMarginCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidMarginCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidMockCommand.class.st b/src/Pyramid-Tests/PyramidMockCommand.class.st index 12609a9b..752d6f2b 100644 --- a/src/Pyramid-Tests/PyramidMockCommand.class.st +++ b/src/Pyramid-Tests/PyramidMockCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidMockCommand, #superclass : #PyramidCommand, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #testing } diff --git a/src/Pyramid-Tests/PyramidMockObjectForTest.class.st b/src/Pyramid-Tests/PyramidMockObjectForTest.class.st index 8022b1aa..a9bceb18 100644 --- a/src/Pyramid-Tests/PyramidMockObjectForTest.class.st +++ b/src/Pyramid-Tests/PyramidMockObjectForTest.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'count' ], - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidMoveBackwardOrderCommandTest.class.st b/src/Pyramid-Tests/PyramidMoveBackwardOrderCommandTest.class.st index f114ad5f..beae1f5e 100644 --- a/src/Pyramid-Tests/PyramidMoveBackwardOrderCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidMoveBackwardOrderCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-order' + #category : #'Pyramid-Tests-cases-plugin-bloc-order' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidMoveForwardOrderCommandTest.class.st b/src/Pyramid-Tests/PyramidMoveForwardOrderCommandTest.class.st index 2c869ad5..876ebefa 100644 --- a/src/Pyramid-Tests/PyramidMoveForwardOrderCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidMoveForwardOrderCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-order' + #category : #'Pyramid-Tests-cases-plugin-bloc-order' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidNavigationPluginTest.class.st b/src/Pyramid-Tests/PyramidNavigationPluginTest.class.st new file mode 100644 index 00000000..0cf17884 --- /dev/null +++ b/src/Pyramid-Tests/PyramidNavigationPluginTest.class.st @@ -0,0 +1,33 @@ +Class { + #name : #PyramidNavigationPluginTest, + #superclass : #TestCase, + #category : #'Pyramid-Tests-cases-plugin-navigation' +} + +{ #category : #tests } +PyramidNavigationPluginTest >> testRemoveSelectedElements [ + + | plugin editor e1 e2 e3 | + e1 := BlElement new. + e2 := BlElement new. + e3 := BlElement new. + editor := PyramidEditor new. + editor window: PyramidSimpleWindow new. + plugin := PyramidNavigationPlugin new. + plugin connectOn: editor. + editor projectModel firstLevelElements addAll: { + e1. + e2. + e3 }. + editor projectModel setSelection: { + e1. + e2 }. + self assert: plugin navigation selectionPanel treeTable selectedItems size equals: 2. + self assert: (plugin navigation selectionPanel treeTable selectedItems includes: e1). + self assert: (plugin navigation selectionPanel treeTable selectedItems includes: e2). + plugin removeSelectedElements. + self assert: plugin navigation selectionPanel treeTable selectedItems size equals: 0. + self assert: editor projectModel selection size equals: 0. + self assert: editor projectModel firstLevelElements size equals: 1. + self assert: editor projectModel firstLevelElements first equals: e3 +] diff --git a/src/Pyramid-Tests/PyramidNumberArrayInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidNumberArrayInputPresenterTest.class.st index 6b6e3058..cb1df03e 100644 --- a/src/Pyramid-Tests/PyramidNumberArrayInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidNumberArrayInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidNumberInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidNumberInputPresenterTest.class.st index 28a63f86..85744a89 100644 --- a/src/Pyramid-Tests/PyramidNumberInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidNumberInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidOnBackgroundOrderCommandTest.class.st b/src/Pyramid-Tests/PyramidOnBackgroundOrderCommandTest.class.st index 77ade9ab..0e57fc9e 100644 --- a/src/Pyramid-Tests/PyramidOnBackgroundOrderCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidOnBackgroundOrderCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-order' + #category : #'Pyramid-Tests-cases-plugin-bloc-order' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidOnForegroundOrderCommandTest.class.st b/src/Pyramid-Tests/PyramidOnForegroundOrderCommandTest.class.st index 265bf52b..dfd10ec8 100644 --- a/src/Pyramid-Tests/PyramidOnForegroundOrderCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidOnForegroundOrderCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-order' + #category : #'Pyramid-Tests-cases-plugin-bloc-order' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidOpacityCommandTest.class.st b/src/Pyramid-Tests/PyramidOpacityCommandTest.class.st index 46ffe7c2..15abba92 100644 --- a/src/Pyramid-Tests/PyramidOpacityCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidOpacityCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-visuals' + #category : #'Pyramid-Tests-cases-plugin-bloc-visuals' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidPaddingCommandTest.class.st b/src/Pyramid-Tests/PyramidPaddingCommandTest.class.st index 9734cebf..842a6e73 100644 --- a/src/Pyramid-Tests/PyramidPaddingCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidPaddingCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st index 81f91fa4..5308dc28 100644 --- a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st +++ b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st @@ -7,7 +7,7 @@ Class { #instVars : [ 'setting' ], - #category : 'Pyramid-Tests-cases-plugin-edit-on-running' + #category : #'Pyramid-Tests-cases-plugin-edit-on-running' } { #category : #utils } diff --git a/src/Pyramid-Tests/PyramidPluginManagerTest.class.st b/src/Pyramid-Tests/PyramidPluginManagerTest.class.st index e848d3c6..e3e98a55 100644 --- a/src/Pyramid-Tests/PyramidPluginManagerTest.class.st +++ b/src/Pyramid-Tests/PyramidPluginManagerTest.class.st @@ -4,7 +4,7 @@ A PyramidPluginManagerTest is a test class for testing the behavior of PyramidPl Class { #name : #PyramidPluginManagerTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-core' + #category : #'Pyramid-Tests-cases-core' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidPluginTestModeTest.class.st b/src/Pyramid-Tests/PyramidPluginTestModeTest.class.st index d4750060..de346e56 100644 --- a/src/Pyramid-Tests/PyramidPluginTestModeTest.class.st +++ b/src/Pyramid-Tests/PyramidPluginTestModeTest.class.st @@ -6,5 +6,5 @@ Class { 'spacePlugin', 'editor' ], - #category : 'Pyramid-Tests-cases-plugin-testmode' + #category : #'Pyramid-Tests-cases-plugin-testmode' } diff --git a/src/Pyramid-Tests/PyramidPointInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidPointInputPresenterTest.class.st index cf1b585f..9e0170ed 100644 --- a/src/Pyramid-Tests/PyramidPointInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidPointInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidPositionCommandTest.class.st b/src/Pyramid-Tests/PyramidPositionCommandTest.class.st index a1a0c133..596e92eb 100644 --- a/src/Pyramid-Tests/PyramidPositionCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidPositionCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidPositionOffsetCommandTest.class.st b/src/Pyramid-Tests/PyramidPositionOffsetCommandTest.class.st index f9cbb90b..34285057 100644 --- a/src/Pyramid-Tests/PyramidPositionOffsetCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidPositionOffsetCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidProjectModelObserverForTest.class.st b/src/Pyramid-Tests/PyramidProjectModelObserverForTest.class.st index 886f8f67..5b4f43d4 100644 --- a/src/Pyramid-Tests/PyramidProjectModelObserverForTest.class.st +++ b/src/Pyramid-Tests/PyramidProjectModelObserverForTest.class.st @@ -6,7 +6,7 @@ Class { 'pyramidFirstLevelElementsChangedAction', 'pyramidSelectionChangedAction' ], - #category : 'Pyramid-Tests-cases-models' + #category : #'Pyramid-Tests-cases-models' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidProjectModelTest.class.st b/src/Pyramid-Tests/PyramidProjectModelTest.class.st index 8b2401ec..d8625721 100644 --- a/src/Pyramid-Tests/PyramidProjectModelTest.class.st +++ b/src/Pyramid-Tests/PyramidProjectModelTest.class.st @@ -8,7 +8,7 @@ Class { 'pyramidFirstLevelElementsChanged', 'pyramidSelectionChanged' ], - #category : 'Pyramid-Tests-cases-models' + #category : #'Pyramid-Tests-cases-models' } { #category : #running } diff --git a/src/Pyramid-Tests/PyramidPropertiesManagerTest.class.st b/src/Pyramid-Tests/PyramidPropertiesManagerTest.class.st index 41fdca08..8a704bc4 100644 --- a/src/Pyramid-Tests/PyramidPropertiesManagerTest.class.st +++ b/src/Pyramid-Tests/PyramidPropertiesManagerTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidPropertiesManagerTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-property' + #category : #'Pyramid-Tests-cases-property' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidProportionnalHorizontalConstraintsCommandTest.class.st b/src/Pyramid-Tests/PyramidProportionnalHorizontalConstraintsCommandTest.class.st index c62043bf..b7145a1b 100644 --- a/src/Pyramid-Tests/PyramidProportionnalHorizontalConstraintsCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidProportionnalHorizontalConstraintsCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidProportionnalVerticalConstraintsCommandTest.class.st b/src/Pyramid-Tests/PyramidProportionnalVerticalConstraintsCommandTest.class.st index b95c8126..e375e6c2 100644 --- a/src/Pyramid-Tests/PyramidProportionnalVerticalConstraintsCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidProportionnalVerticalConstraintsCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-layout' + #category : #'Pyramid-Tests-cases-plugin-bloc-layout' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidRemoveChildCommandTest.class.st b/src/Pyramid-Tests/PyramidRemoveChildCommandTest.class.st index 8c195544..30f24257 100644 --- a/src/Pyramid-Tests/PyramidRemoveChildCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidRemoveChildCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidRemoveMockCommandTest.class.st b/src/Pyramid-Tests/PyramidRemoveMockCommandTest.class.st index ee166273..8853340f 100644 --- a/src/Pyramid-Tests/PyramidRemoveMockCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidRemoveMockCommandTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidRemoveMockCommandTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidRemoveSelectionCommandTest.class.st b/src/Pyramid-Tests/PyramidRemoveSelectionCommandTest.class.st index 4ef63b7a..18aa0bb1 100644 --- a/src/Pyramid-Tests/PyramidRemoveSelectionCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidRemoveSelectionCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidRoundedRectangleCornerRadiiCommandTest.class.st b/src/Pyramid-Tests/PyramidRoundedRectangleCornerRadiiCommandTest.class.st index 845cd011..68db7048 100644 --- a/src/Pyramid-Tests/PyramidRoundedRectangleCornerRadiiCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidRoundedRectangleCornerRadiiCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-geometry' + #category : #'Pyramid-Tests-cases-plugin-bloc-geometry' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidSaveModelVerifierTest.class.st b/src/Pyramid-Tests/PyramidSaveModelVerifierTest.class.st index b9342ec4..7be7dfbf 100644 --- a/src/Pyramid-Tests/PyramidSaveModelVerifierTest.class.st +++ b/src/Pyramid-Tests/PyramidSaveModelVerifierTest.class.st @@ -4,7 +4,7 @@ A PyramidSaveModelVerifierTest is a test class for testing the behavior of Pyram Class { #name : #PyramidSaveModelVerifierTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-save' + #category : #'Pyramid-Tests-cases-plugin-save' } { #category : #test } diff --git a/src/Pyramid-Tests/PyramidSavingServiceTest.class.st b/src/Pyramid-Tests/PyramidSavingServiceTest.class.st index 7b2b52ee..807183b2 100644 --- a/src/Pyramid-Tests/PyramidSavingServiceTest.class.st +++ b/src/Pyramid-Tests/PyramidSavingServiceTest.class.st @@ -6,7 +6,7 @@ Class { 'savingService', 'savingClass' ], - #category : 'Pyramid-Tests-cases-plugin-save' + #category : #'Pyramid-Tests-cases-plugin-save' } { #category : #running } diff --git a/src/Pyramid-Tests/PyramidSimpleMockCommand.class.st b/src/Pyramid-Tests/PyramidSimpleMockCommand.class.st index 19f714d0..abf1e620 100644 --- a/src/Pyramid-Tests/PyramidSimpleMockCommand.class.st +++ b/src/Pyramid-Tests/PyramidSimpleMockCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSimpleMockCommand, #superclass : #PyramidMockCommand, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidSimpleMockCommandTest.class.st b/src/Pyramid-Tests/PyramidSimpleMockCommandTest.class.st index 87864823..ef6f433c 100644 --- a/src/Pyramid-Tests/PyramidSimpleMockCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidSimpleMockCommandTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSimpleMockCommandTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidSimpleMockGroupedCommand.class.st b/src/Pyramid-Tests/PyramidSimpleMockGroupedCommand.class.st index f1e4a1a1..84fcebb0 100644 --- a/src/Pyramid-Tests/PyramidSimpleMockGroupedCommand.class.st +++ b/src/Pyramid-Tests/PyramidSimpleMockGroupedCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSimpleMockGroupedCommand, #superclass : #PyramidSimpleMockCommand, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidSpCodeObjectInteractionModelTest.class.st b/src/Pyramid-Tests/PyramidSpCodeObjectInteractionModelTest.class.st index 22e3ae0b..5c79f0fb 100644 --- a/src/Pyramid-Tests/PyramidSpCodeObjectInteractionModelTest.class.st +++ b/src/Pyramid-Tests/PyramidSpCodeObjectInteractionModelTest.class.st @@ -6,7 +6,7 @@ Class { 'interactionModel', 'firstLevelElements' ], - #category : 'Pyramid-Tests-cases-plugin-playground' + #category : #'Pyramid-Tests-cases-plugin-playground' } { #category : #running } diff --git a/src/Pyramid-Tests/PyramidSpaceBuilderTest.class.st b/src/Pyramid-Tests/PyramidSpaceBuilderTest.class.st index 7f32f081..7d0700dd 100644 --- a/src/Pyramid-Tests/PyramidSpaceBuilderTest.class.st +++ b/src/Pyramid-Tests/PyramidSpaceBuilderTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSpaceBuilderTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-space' + #category : #'Pyramid-Tests-cases-plugin-space' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidSpacePluginTest.class.st b/src/Pyramid-Tests/PyramidSpacePluginTest.class.st index e4721cc2..45aac1df 100644 --- a/src/Pyramid-Tests/PyramidSpacePluginTest.class.st +++ b/src/Pyramid-Tests/PyramidSpacePluginTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSpacePluginTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-space' + #category : #'Pyramid-Tests-cases-plugin-space' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidSwitchInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidSwitchInputPresenterTest.class.st index 403fe8ff..4a26981c 100644 --- a/src/Pyramid-Tests/PyramidSwitchInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidSwitchInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidTestWindow.class.st b/src/Pyramid-Tests/PyramidTestWindow.class.st index 1d18faa0..29462407 100644 --- a/src/Pyramid-Tests/PyramidTestWindow.class.st +++ b/src/Pyramid-Tests/PyramidTestWindow.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidTestWindow, #superclass : #PyramidWindow, - #category : 'Pyramid-Tests-cases-views' + #category : #'Pyramid-Tests-cases-views' } { #category : #initialization } diff --git a/src/Pyramid-Tests/PyramidTextForegroundCommandTest.class.st b/src/Pyramid-Tests/PyramidTextForegroundCommandTest.class.st index 43d35800..36b77372 100644 --- a/src/Pyramid-Tests/PyramidTextForegroundCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidTextForegroundCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidFontAttributeCommandTest', #classTraits : 'TPyramidFontAttributeCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-text' + #category : #'Pyramid-Tests-cases-plugin-bloc-text' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/PyramidTextInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidTextInputPresenterTest.class.st index 8bfe7ddf..6ca9d02b 100644 --- a/src/Pyramid-Tests/PyramidTextInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidTextInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidTreePluginTest.class.st b/src/Pyramid-Tests/PyramidTreePluginTest.class.st deleted file mode 100644 index 2d78c2bf..00000000 --- a/src/Pyramid-Tests/PyramidTreePluginTest.class.st +++ /dev/null @@ -1,49 +0,0 @@ -Class { - #name : #PyramidTreePluginTest, - #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-plugin-tree-library' -} - -{ #category : #tests } -PyramidTreePluginTest >> testAddColumns [ - - | plugin | - plugin := PyramidTreePlugin new. - self assert: plugin treePresenter columns size equals: 0. - plugin addColumns: { SpStringTableColumn new - title: 'Test1'; - yourself. SpStringTableColumn new - title: 'Test2'; - yourself. SpStringTableColumn new - title: 'Test3'; - yourself }. - self assert: plugin treePresenter columns size equals: 3. -] - -{ #category : #tests } -PyramidTreePluginTest >> testRemoveSelectedElements [ - - | plugin editor e1 e2 e3 | - e1 := BlElement new. - e2 := BlElement new. - e3 := BlElement new. - editor := PyramidEditor new. - editor window: PyramidSimpleWindow new. - plugin := PyramidTreePlugin new. - plugin editor: editor. - editor projectModel firstLevelElements addAll: { - e1. - e2. - e3 }. - editor projectModel setSelection: { - e1. - e2 }. - self assert: plugin treePresenter tree selectedItems size equals: 2. - self assert: (plugin treePresenter tree selectedItems includes: e1). - self assert: (plugin treePresenter tree selectedItems includes: e2). - plugin removeSelectedElements. - self assert: plugin treePresenter tree selectedItems size equals: 0. - self assert: editor projectModel selection size equals: 0. - self assert: editor projectModel firstLevelElements size equals: 1. - self assert: editor projectModel firstLevelElements first equals: e3. -] diff --git a/src/Pyramid-Tests/PyramidVerticalFrameConstraintsInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidVerticalFrameConstraintsInputPresenterTest.class.st index bb0e4779..54377d79 100644 --- a/src/Pyramid-Tests/PyramidVerticalFrameConstraintsInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidVerticalFrameConstraintsInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidVisibilityCommandTest.class.st b/src/Pyramid-Tests/PyramidVisibilityCommandTest.class.st index b0cef520..abca3c83 100644 --- a/src/Pyramid-Tests/PyramidVisibilityCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidVisibilityCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidVisibilityInputPresenterTest.class.st b/src/Pyramid-Tests/PyramidVisibilityInputPresenterTest.class.st index 16b09cbb..332e72f0 100644 --- a/src/Pyramid-Tests/PyramidVisibilityInputPresenterTest.class.st +++ b/src/Pyramid-Tests/PyramidVisibilityInputPresenterTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidInputPresenterTest', #classTraits : 'TPyramidInputPresenterTest classTrait', - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Tests/PyramidVisibilitySortFunctionTest.class.st b/src/Pyramid-Tests/PyramidVisibilitySortFunctionTest.class.st index 3c173d02..ec815c10 100644 --- a/src/Pyramid-Tests/PyramidVisibilitySortFunctionTest.class.st +++ b/src/Pyramid-Tests/PyramidVisibilitySortFunctionTest.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidVisibilitySortFunctionTest, #superclass : #TestCase, - #category : 'Pyramid-Tests-cases-bloc-utils' + #category : #'Pyramid-Tests-cases-bloc-utils' } { #category : #tests } diff --git a/src/Pyramid-Tests/PyramidWindowTest.class.st b/src/Pyramid-Tests/PyramidWindowTest.class.st index 8f51fec4..2ad1b041 100644 --- a/src/Pyramid-Tests/PyramidWindowTest.class.st +++ b/src/Pyramid-Tests/PyramidWindowTest.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'window' ], - #category : 'Pyramid-Tests-cases-views' + #category : #'Pyramid-Tests-cases-views' } { #category : #running } diff --git a/src/Pyramid-Tests/PyramidZIndexCommandTest.class.st b/src/Pyramid-Tests/PyramidZIndexCommandTest.class.st index 4f15146b..ccb5fe23 100644 --- a/src/Pyramid-Tests/PyramidZIndexCommandTest.class.st +++ b/src/Pyramid-Tests/PyramidZIndexCommandTest.class.st @@ -3,7 +3,7 @@ Class { #superclass : #TestCase, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc' + #category : #'Pyramid-Tests-cases-plugin-bloc' } { #category : #accessing } diff --git a/src/Pyramid-Tests/TPyramidCommandTest.trait.st b/src/Pyramid-Tests/TPyramidCommandTest.trait.st index 54ed130f..fb408590 100644 --- a/src/Pyramid-Tests/TPyramidCommandTest.trait.st +++ b/src/Pyramid-Tests/TPyramidCommandTest.trait.st @@ -1,6 +1,6 @@ Trait { #name : #TPyramidCommandTest, - #category : 'Pyramid-Tests-cases-command' + #category : #'Pyramid-Tests-cases-command' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/TPyramidFontAttributeCommandTest.trait.st b/src/Pyramid-Tests/TPyramidFontAttributeCommandTest.trait.st index 371f6b73..0c0f1863 100644 --- a/src/Pyramid-Tests/TPyramidFontAttributeCommandTest.trait.st +++ b/src/Pyramid-Tests/TPyramidFontAttributeCommandTest.trait.st @@ -2,7 +2,7 @@ Trait { #name : #TPyramidFontAttributeCommandTest, #traits : 'TPyramidCommandTest', #classTraits : 'TPyramidCommandTest classTrait', - #category : 'Pyramid-Tests-cases-plugin-bloc-text' + #category : #'Pyramid-Tests-cases-plugin-bloc-text' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid-Tests/TPyramidInputPresenterTest.trait.st b/src/Pyramid-Tests/TPyramidInputPresenterTest.trait.st index 7f1e6d5e..9373bc0b 100644 --- a/src/Pyramid-Tests/TPyramidInputPresenterTest.trait.st +++ b/src/Pyramid-Tests/TPyramidInputPresenterTest.trait.st @@ -1,6 +1,6 @@ Trait { #name : #TPyramidInputPresenterTest, - #category : 'Pyramid-Tests-cases-specs-custom' + #category : #'Pyramid-Tests-cases-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid-Toplo-Examples/PyramidToploExamples.class.st b/src/Pyramid-Toplo-Examples/PyramidToploExamples.class.st index f9606da8..cfbbfe24 100644 --- a/src/Pyramid-Toplo-Examples/PyramidToploExamples.class.st +++ b/src/Pyramid-Toplo-Examples/PyramidToploExamples.class.st @@ -581,3 +581,85 @@ blfontsizedefaultattribute21 := BlFontSizeDefaultAttribute new. yourself)} ] value ] + +{ #category : #'pyramid-serialized-bloc' } +PyramidToploExamples class >> icons [ + "This class has been generated using Pyramid. + + By: YannLEGOFF + 2024-07-30 18:24:19" + + + ^ [ | blsvgconverterclass1 toantdesigniconproviderclass2 | +blsvgconverterclass1 := BlSvgConverter. +toantdesigniconproviderclass2 := ToAntDesignIconProvider. +{(ToImage new + innerImage: (PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: blsvgconverterclass1; + selector: #convertFromString:; + arguments: {(PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: toantdesigniconproviderclass2; + selector: #twotone_sound; + arguments: {}; + yourself); + yourself)}; + yourself); + yourself); + constraintsDo: [:constraints | constraints horizontal exact: 200.0. + constraints vertical exact: 200.0 ]; + layout: BlFrameLayout new; + id: #A; + yourself) . +(ToImage new + innerImage: (PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: blsvgconverterclass1; + selector: #convertFromString:; + arguments: {(PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: toantdesigniconproviderclass2; + selector: #outlined_code; + arguments: {}; + yourself); + yourself)}; + yourself); + yourself); + constraintsDo: [:constraints | constraints horizontal exact: 48.0. + constraints vertical exact: 48.0 ]; + layout: BlFrameLayout new; + id: #B; + yourself)} ] value +] + +{ #category : #'pyramid-serialized-bloc' } +PyramidToploExamples class >> icons2 [ + "This class has been generated using Pyramid. + + By: YannLEGOFF + 2024-07-31 10:27:35" + + + ^ [ {(ToImage new + innerImage: (PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: BlSvgConverter; + selector: #convertFromString:; + arguments: {(PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: (PyramidExternalRessourceSource new + target: ToMaterialDesignIconProvider; + selector: #twotone_mediation; + arguments: {}; + yourself); + yourself)}; + postConstructionBlock: [:obj | obj constraints horizontal matchParent. + obj constraints vertical matchParent ]; + yourself); + yourself); + constraintsDo: [:constraints | constraints horizontal exact: 128.0. + constraints vertical exact: 128.0 ]; + layout: BlFrameLayout new; + id: #A; + yourself)} ] value +] diff --git a/src/Pyramid-Toplo/PyramidContainsValidSelectorInterpreter.class.st b/src/Pyramid-Toplo/PyramidContainsValidSelectorInterpreter.class.st index 71d2a390..93a8c932 100644 --- a/src/Pyramid-Toplo/PyramidContainsValidSelectorInterpreter.class.st +++ b/src/Pyramid-Toplo/PyramidContainsValidSelectorInterpreter.class.st @@ -1,18 +1,16 @@ Class { - #name : 'PyramidContainsValidSelectorInterpreter', - #superclass : 'ToElementSelectorVisitor', + #name : #PyramidContainsValidSelectorInterpreter, + #superclass : #ToElementSelectorVisitor, #instVars : [ 'targetElement', 'validSelectors', 'invalidSelectors', 'ignoredSelectors' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'operating' } +{ #category : #operating } PyramidContainsValidSelectorInterpreter >> check: aSelector on: anElement [ targetElement := anElement. @@ -22,39 +20,39 @@ PyramidContainsValidSelectorInterpreter >> check: aSelector on: anElement [ aSelector accept: self. ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidContainsValidSelectorInterpreter >> ignoredSelectors [ ^ ignoredSelectors ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidContainsValidSelectorInterpreter >> invalidSelectors [ ^ invalidSelectors ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidContainsValidSelectorInterpreter >> result [ invalidSelectors ifNil: [ ^ false ]. ^ invalidSelectors isEmpty ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidContainsValidSelectorInterpreter >> targetElement [ ^ targetElement ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidContainsValidSelectorInterpreter >> validSelectors [ ^ validSelectors ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitActionSelector: aSelector [ (aSelector action value: self targetElement) @@ -62,7 +60,7 @@ PyramidContainsValidSelectorInterpreter >> visitActionSelector: aSelector [ ifFalse: [ self invalidSelectors add: aSelector ] ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitAndSelector: aSelector [ | interpreterForAndLeft interpreterForAndRight | @@ -85,7 +83,7 @@ PyramidContainsValidSelectorInterpreter >> visitAndSelector: aSelector [ self ignoredSelectors addAll: interpreterForAndRight ignoredSelectors ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitChildSelector: aSelector [ | parent interpreterForLeft interpreterForRight | @@ -109,7 +107,7 @@ PyramidContainsValidSelectorInterpreter >> visitChildSelector: aSelector [ self invalidSelectors add: aSelector ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitIdSelector: aSelector [ aSelector id = self targetElement id @@ -117,7 +115,7 @@ PyramidContainsValidSelectorInterpreter >> visitIdSelector: aSelector [ ifFalse: [ self invalidSelectors add: aSelector ] ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitNotSelector: aSelector [ | interpreterForNot | @@ -128,7 +126,7 @@ PyramidContainsValidSelectorInterpreter >> visitNotSelector: aSelector [ self ignoredSelectors addAll: interpreterForNot ignoredSelectors ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitOrSelector: aSelector [ | interpreterForOrLeft interpreterForOrRight | @@ -151,7 +149,7 @@ PyramidContainsValidSelectorInterpreter >> visitOrSelector: aSelector [ self validSelectors add: aSelector ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitParentSelector: aSelector [ | depth current interpreterForLeft interpreterForRight | @@ -184,7 +182,7 @@ PyramidContainsValidSelectorInterpreter >> visitParentSelector: aSelector [ ^ self ] ] ] repeat ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitSiblingSelector: aSelector [ | current interpreterForSiblingLeft interpreterForSiblingRight | @@ -210,13 +208,13 @@ PyramidContainsValidSelectorInterpreter >> visitSiblingSelector: aSelector [ self invalidSelectors add: aSelector ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitStyleStampSelector: aSelector [ self ignoredSelectors add: aSelector ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitTypeSelector: aSelector [ (aSelector selectType: self targetElement class) @@ -224,7 +222,7 @@ PyramidContainsValidSelectorInterpreter >> visitTypeSelector: aSelector [ ifFalse: [ self invalidSelectors add: aSelector ] ] -{ #category : 'visiting' } +{ #category : #visiting } PyramidContainsValidSelectorInterpreter >> visitUniversalSelector: aSelector [ "Must be valid for not" diff --git a/src/Pyramid-Toplo/PyramidElementThemeSelectorPresenter.class.st b/src/Pyramid-Toplo/PyramidElementThemeSelectorPresenter.class.st index e54aecc9..be82e5f7 100644 --- a/src/Pyramid-Toplo/PyramidElementThemeSelectorPresenter.class.st +++ b/src/Pyramid-Toplo/PyramidElementThemeSelectorPresenter.class.st @@ -1,6 +1,6 @@ Class { - #name : 'PyramidElementThemeSelectorPresenter', - #superclass : 'PyramidThemeSelectorPresenter', + #name : #PyramidElementThemeSelectorPresenter, + #superclass : #PyramidThemeSelectorPresenter, #instVars : [ 'projectModel', 'inheritSelector', @@ -8,12 +8,10 @@ Class { 'commandExecutor', 'themeCommand' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> applyTheme [ | themeToApplied | @@ -28,19 +26,19 @@ PyramidElementThemeSelectorPresenter >> applyTheme [ self projectModel informElementsChanged ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> commandExecutor [ ^ commandExecutor ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> commandExecutor: aCommandExecutor [ commandExecutor := aCommandExecutor ] -{ #category : 'layout' } +{ #category : #layout } PyramidElementThemeSelectorPresenter >> defaultLayout [ ^ SpBoxLayout newVertical @@ -64,7 +62,7 @@ PyramidElementThemeSelectorPresenter >> defaultLayout [ yourself ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> elementsOrSelectionChanged: anEvent [ self triggerThemeChangement: false. @@ -72,13 +70,13 @@ PyramidElementThemeSelectorPresenter >> elementsOrSelectionChanged: anEvent [ self triggerThemeChangement: true ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidElementThemeSelectorPresenter >> inheritSelector [ ^ inheritSelector ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidElementThemeSelectorPresenter >> initializePresenters [ super initializePresenters. @@ -96,19 +94,19 @@ PyramidElementThemeSelectorPresenter >> initializePresenters [ self triggerThemeChangement: true ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidElementThemeSelectorPresenter >> labelPresenter [ ^ labelPresenter ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidElementThemeSelectorPresenter >> projectModel [ ^ projectModel ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidElementThemeSelectorPresenter >> projectModel: aPyramidProjectModel [ projectModel := aPyramidProjectModel. @@ -122,7 +120,7 @@ PyramidElementThemeSelectorPresenter >> projectModel: aPyramidProjectModel [ for: self. ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> setDefaultStateForPresenters [ self themeSelector enabled: false. @@ -130,13 +128,13 @@ PyramidElementThemeSelectorPresenter >> setDefaultStateForPresenters [ self inheritSelector state: true. ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> themeCommand [ ^ themeCommand ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidElementThemeSelectorPresenter >> updatePresenterFor: aCollectionOfElement [ | collectionOfLocalThemes | diff --git a/src/Pyramid-Toplo/PyramidSelectorPossibleStamps.class.st b/src/Pyramid-Toplo/PyramidSelectorPossibleStamps.class.st index 8bdff1d7..34b51949 100644 --- a/src/Pyramid-Toplo/PyramidSelectorPossibleStamps.class.st +++ b/src/Pyramid-Toplo/PyramidSelectorPossibleStamps.class.st @@ -1,15 +1,13 @@ Class { - #name : 'PyramidSelectorPossibleStamps', - #superclass : 'Object', + #name : #PyramidSelectorPossibleStamps, + #superclass : #Object, #instVars : [ 'theme' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidSelectorPossibleStamps >> findAllSelectorFor: aBlElement [ ^ self theme styleSheet styleRules flatCollect: [ @@ -17,7 +15,7 @@ PyramidSelectorPossibleStamps >> findAllSelectorFor: aBlElement [ self findAllSelectorFor: aBlElement on: rule ]. ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidSelectorPossibleStamps >> findAllSelectorFor: aBlElement on: aToStyleRule [ | interpreter | @@ -31,7 +29,7 @@ PyramidSelectorPossibleStamps >> findAllSelectorFor: aBlElement on: aToStyleRule ifFalse: [ ^ { } ] ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidSelectorPossibleStamps >> findAllStampsFor: aBlElement [ | allValidSelectors allStampsSelectors | @@ -42,13 +40,13 @@ PyramidSelectorPossibleStamps >> findAllStampsFor: aBlElement [ sorted ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidSelectorPossibleStamps >> theme [ ^ theme ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidSelectorPossibleStamps >> theme: anObject [ theme := anObject diff --git a/src/Pyramid-Toplo/PyramidSpaceThemeSelectorPresenter.class.st b/src/Pyramid-Toplo/PyramidSpaceThemeSelectorPresenter.class.st index 2345119e..28df7ae8 100644 --- a/src/Pyramid-Toplo/PyramidSpaceThemeSelectorPresenter.class.st +++ b/src/Pyramid-Toplo/PyramidSpaceThemeSelectorPresenter.class.st @@ -1,24 +1,22 @@ Class { - #name : 'PyramidSpaceThemeSelectorPresenter', - #superclass : 'PyramidThemeSelectorPresenter', + #name : #PyramidSpaceThemeSelectorPresenter, + #superclass : #PyramidThemeSelectorPresenter, #traits : 'TPyramidSpaceExtension', #classTraits : 'TPyramidSpaceExtension classTrait', #instVars : [ 'projectModel' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidSpaceThemeSelectorPresenter >> applyTheme [ self builder space toTheme: self currentTheme. self projectModel informElementsChanged ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidSpaceThemeSelectorPresenter >> labelPresenter [ ^ SpLabelPresenter new @@ -27,13 +25,13 @@ PyramidSpaceThemeSelectorPresenter >> labelPresenter [ yourself ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidSpaceThemeSelectorPresenter >> projectModel [ ^ projectModel ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidSpaceThemeSelectorPresenter >> projectModel: anObject [ projectModel := anObject diff --git a/src/Pyramid-Toplo/PyramidStampCommand.class.st b/src/Pyramid-Toplo/PyramidStampCommand.class.st index 3fe41464..e26d219a 100644 --- a/src/Pyramid-Toplo/PyramidStampCommand.class.st +++ b/src/Pyramid-Toplo/PyramidStampCommand.class.st @@ -1,21 +1,19 @@ Class { - #name : 'PyramidStampCommand', - #superclass : 'PyramidAbstractBlocCommand', + #name : #PyramidStampCommand, + #superclass : #PyramidAbstractBlocCommand, #instVars : [ 'stamp' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidStampCommand >> getValueFor: anObject [ ^ anObject hasStamp: self stamp ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidStampCommand >> setValueFor: anObject with: aBoolean [ aBoolean @@ -23,13 +21,13 @@ PyramidStampCommand >> setValueFor: anObject with: aBoolean [ ifFalse: [ anObject removeStamp: self stamp ] ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidStampCommand >> stamp [ ^ stamp ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidStampCommand >> stamp: anObject [ stamp := anObject diff --git a/src/Pyramid-Toplo/PyramidStyleSheetEditorPresenter.class.st b/src/Pyramid-Toplo/PyramidStyleSheetEditorPresenter.class.st index a9fcf705..461b0a89 100644 --- a/src/Pyramid-Toplo/PyramidStyleSheetEditorPresenter.class.st +++ b/src/Pyramid-Toplo/PyramidStyleSheetEditorPresenter.class.st @@ -1,17 +1,15 @@ Class { - #name : 'PyramidStyleSheetEditorPresenter', - #superclass : 'SpPresenter', + #name : #PyramidStyleSheetEditorPresenter, + #superclass : #SpPresenter, #instVars : [ 'themeSelector', 'styleSheetEditor', 'stampPresenter' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'accessing' } +{ #category : #accessing } PyramidStyleSheetEditorPresenter >> defaultLayout [ ^ SpBoxLayout new @@ -24,19 +22,19 @@ PyramidStyleSheetEditorPresenter >> defaultLayout [ yourself ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidStyleSheetEditorPresenter >> initializePresenters [ stampPresenter := SpNullPresenter new ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidStyleSheetEditorPresenter >> stampPresenter [ ^ stampPresenter ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidStyleSheetEditorPresenter >> stampPresenter: anObject [ stampPresenter := anObject diff --git a/src/Pyramid-Toplo/PyramidThemeCommand.class.st b/src/Pyramid-Toplo/PyramidThemeCommand.class.st index f8e857bb..f7b52034 100644 --- a/src/Pyramid-Toplo/PyramidThemeCommand.class.st +++ b/src/Pyramid-Toplo/PyramidThemeCommand.class.st @@ -1,18 +1,16 @@ Class { - #name : 'PyramidThemeCommand', - #superclass : 'PyramidAbstractBlocCommand', - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #name : #PyramidThemeCommand, + #superclass : #PyramidAbstractBlocCommand, + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeCommand >> getValueFor: anObject [ ^ anObject localTheme ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeCommand >> setValueFor: anObject with: nilOrToTheme [ anObject localTheme: nilOrToTheme diff --git a/src/Pyramid-Toplo/PyramidThemeFromSpaceExtension.class.st b/src/Pyramid-Toplo/PyramidThemeFromSpaceExtension.class.st index 3136ea67..4fd98854 100644 --- a/src/Pyramid-Toplo/PyramidThemeFromSpaceExtension.class.st +++ b/src/Pyramid-Toplo/PyramidThemeFromSpaceExtension.class.st @@ -1,6 +1,6 @@ Class { - #name : 'PyramidThemeFromSpaceExtension', - #superclass : 'Object', + #name : #PyramidThemeFromSpaceExtension, + #superclass : #Object, #traits : 'TPyramidPlugin + TPyramidSpaceExtension + TPyramidEditorSpaceIsReadyObserver + TPyramidOpenFromSpacePluginExtension', #classTraits : 'TPyramidPlugin classTrait + TPyramidSpaceExtension classTrait + TPyramidEditorSpaceIsReadyObserver classTrait + TPyramidOpenFromSpacePluginExtension classTrait', #instVars : [ @@ -8,18 +8,16 @@ Class { 'themeSpaceSelector', 'spaceIsReady' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'asserting' } +{ #category : #asserting } PyramidThemeFromSpaceExtension class >> shouldInstall [ ^ false ] -{ #category : 'actions' } +{ #category : #actions } PyramidThemeFromSpaceExtension >> configureBuilder: aPyramidEditorBuilder [ (aPyramidEditorBuilder findPlugin: PyramidOpenFromSpacePlugin) @@ -30,14 +28,14 @@ PyramidThemeFromSpaceExtension >> configureBuilder: aPyramidEditorBuilder [ themePresenter themeSpaceSelector ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeFromSpaceExtension >> configureCloseOnSpace: aSpace [ aSpace toTheme: themeSpaceSelector currentTheme. aSpace root skinManager postponeRequestSkinIn: aSpace root ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeFromSpaceExtension >> configureOpenFromSpace: aSpace [ "Do something with the space" @@ -45,13 +43,13 @@ PyramidThemeFromSpaceExtension >> configureOpenFromSpace: aSpace [ aSpace root skinManager postponeRequestSkinIn: aSpace root ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeFromSpaceExtension >> defaultToTheme [ ^ defaultToTheme ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeFromSpaceExtension >> defaultToTheme: anObject [ defaultToTheme := anObject. @@ -59,45 +57,45 @@ PyramidThemeFromSpaceExtension >> defaultToTheme: anObject [ self spaceIsReady ifTrue: [ self informSpaceIsReady ]. ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeFromSpaceExtension >> informSpaceIsReady [ self defaultToTheme ifNil: [ self spaceIsReady: true. ^ self ]. self builder space toTheme: self defaultToTheme ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidThemeFromSpaceExtension >> initialize [ spaceIsReady := false. ] -{ #category : 'displaying' } +{ #category : #displaying } PyramidThemeFromSpaceExtension >> installOn: aBuilder [ self builder: aBuilder. aBuilder addSpaceIsReadyObserver: self. ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeFromSpaceExtension >> spaceIsReady [ ^ spaceIsReady ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeFromSpaceExtension >> spaceIsReady: anObject [ spaceIsReady := anObject ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeFromSpaceExtension >> themeSpaceSelector [ ^ themeSpaceSelector ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeFromSpaceExtension >> themeSpaceSelector: anObject [ themeSpaceSelector := anObject diff --git a/src/Pyramid-Toplo/PyramidThemePresenter.class.st b/src/Pyramid-Toplo/PyramidThemePresenter.class.st index abaeb1d2..d77c8367 100644 --- a/src/Pyramid-Toplo/PyramidThemePresenter.class.st +++ b/src/Pyramid-Toplo/PyramidThemePresenter.class.st @@ -1,17 +1,15 @@ Class { - #name : 'PyramidThemePresenter', - #superclass : 'SpPresenter', + #name : #PyramidThemePresenter, + #superclass : #SpPresenter, #instVars : [ 'styleSheetEditor', 'themeSpaceSelector', 'themeElementSelector' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'layout' } +{ #category : #layout } PyramidThemePresenter >> defaultLayout [ ^ SpBoxLayout newVertical @@ -22,7 +20,7 @@ PyramidThemePresenter >> defaultLayout [ yourself ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemePresenter >> editor: aPyramidEditor [ self themeSpaceSelector projectModel: aPyramidEditor projectModel. @@ -30,7 +28,7 @@ PyramidThemePresenter >> editor: aPyramidEditor [ self themeElementSelector commandExecutor: aPyramidEditor propertiesManager commandExecutor ] -{ #category : 'layout' } +{ #category : #layout } PyramidThemePresenter >> initializePresenters [ themeSpaceSelector := PyramidSpaceThemeSelectorPresenter new. @@ -38,25 +36,25 @@ PyramidThemePresenter >> initializePresenters [ styleSheetEditor := PyramidStyleSheetEditorPresenter new ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemePresenter >> pyramidSpaceBuilderConfigurationOn: aSpaceBuilder [ aSpaceBuilder addExtension: self themeSpaceSelector ] -{ #category : 'layout' } +{ #category : #layout } PyramidThemePresenter >> styleSheetEditor [ ^ styleSheetEditor ] -{ #category : 'layout' } +{ #category : #layout } PyramidThemePresenter >> themeElementSelector [ ^ themeElementSelector ] -{ #category : 'layout' } +{ #category : #layout } PyramidThemePresenter >> themeSpaceSelector [ ^ themeSpaceSelector diff --git a/src/Pyramid-Toplo/PyramidThemePropertyStrategy.class.st b/src/Pyramid-Toplo/PyramidThemePropertyStrategy.class.st index 8981bc46..59a0ac89 100644 --- a/src/Pyramid-Toplo/PyramidThemePropertyStrategy.class.st +++ b/src/Pyramid-Toplo/PyramidThemePropertyStrategy.class.st @@ -1,12 +1,10 @@ Class { - #name : 'PyramidThemePropertyStrategy', - #superclass : 'PyramidHideEmptyPropertyStrategy', - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #name : #PyramidThemePropertyStrategy, + #superclass : #PyramidHideEmptyPropertyStrategy, + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemePropertyStrategy >> buildPresenterFromCollection: aCollection andManager: aManager [ aManager removeAllProperties. @@ -14,7 +12,7 @@ PyramidThemePropertyStrategy >> buildPresenterFromCollection: aCollection andMan ^ super buildPresenterFromCollection: aCollection andManager: aManager ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemePropertyStrategy >> propertiesFor: aCollectionOfElements [ | elementsWithStyleSheetTheme allPossibleStamps allCommonStamps | @@ -35,7 +33,7 @@ PyramidThemePropertyStrategy >> propertiesFor: aCollectionOfElements [ ^ allCommonStamps collect: [ :each | self propertyForStamp: each ]. ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemePropertyStrategy >> propertyForStamp: aStamp [ | property | diff --git a/src/Pyramid-Toplo/PyramidThemeSelectorPresenter.class.st b/src/Pyramid-Toplo/PyramidThemeSelectorPresenter.class.st index 07bd7e57..6753c8a9 100644 --- a/src/Pyramid-Toplo/PyramidThemeSelectorPresenter.class.st +++ b/src/Pyramid-Toplo/PyramidThemeSelectorPresenter.class.st @@ -1,35 +1,33 @@ Class { - #name : 'PyramidThemeSelectorPresenter', - #superclass : 'SpPresenter', + #name : #PyramidThemeSelectorPresenter, + #superclass : #SpPresenter, #instVars : [ 'themeSelector', 'buttonRefreshTheme', 'triggerThemeChangement' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : 'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeSelectorPresenter >> applyTheme [ self shouldBeImplemented ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeSelectorPresenter >> buttonRefreshTheme [ ^ buttonRefreshTheme ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeSelectorPresenter >> currentTheme [ ^ self themeSelector selectedItem ] -{ #category : 'layout' } +{ #category : #layout } PyramidThemeSelectorPresenter >> defaultLayout [ ^ SpBoxLayout newVertical @@ -52,7 +50,7 @@ PyramidThemeSelectorPresenter >> defaultLayout [ yourself ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidThemeSelectorPresenter >> initializeAllPossibleThemes [ | allThemes previousTheme | @@ -72,7 +70,7 @@ PyramidThemeSelectorPresenter >> initializeAllPossibleThemes [ self triggerThemeChangement: true. ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidThemeSelectorPresenter >> initializePresenters [ triggerThemeChangement := false. @@ -88,13 +86,13 @@ PyramidThemeSelectorPresenter >> initializePresenters [ self initializeAllPossibleThemes ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidThemeSelectorPresenter >> labelPresenter [ ^ self shouldBeImplemented ] -{ #category : 'private' } +{ #category : #private } PyramidThemeSelectorPresenter >> selectTheme: aToTheme [ self triggerThemeChangement: false. @@ -103,7 +101,7 @@ PyramidThemeSelectorPresenter >> selectTheme: aToTheme [ ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeSelectorPresenter >> themeSelectionChanged: aThemeClass [ aThemeClass ifNil: [ ^ self ]. @@ -111,25 +109,25 @@ PyramidThemeSelectorPresenter >> themeSelectionChanged: aThemeClass [ ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeSelectorPresenter >> themeSelector [ ^ themeSelector ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeSelectorPresenter >> triggerThemeChangement [ ^ triggerThemeChangement ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidThemeSelectorPresenter >> triggerThemeChangement: anObject [ triggerThemeChangement := anObject ] -{ #category : 'as yet unclassified' } +{ #category : #'as yet unclassified' } PyramidThemeSelectorPresenter >> variantSelectionChanged: aVariantClass [ aVariantClass ifNil: [ ^ self ]. diff --git a/src/Pyramid-Toplo/PyramidToploThemePlugin.class.st b/src/Pyramid-Toplo/PyramidToploThemePlugin.class.st index c54d95ba..fa3f0d8a 100644 --- a/src/Pyramid-Toplo/PyramidToploThemePlugin.class.st +++ b/src/Pyramid-Toplo/PyramidToploThemePlugin.class.st @@ -1,45 +1,126 @@ Class { - #name : 'PyramidToploThemePlugin', - #superclass : 'Object', - #traits : 'TPyramidPlugin + TPyramidElementToAdd', - #classTraits : 'TPyramidPlugin classTrait + TPyramidElementToAdd classTrait', + #name : #PyramidToploThemePlugin, + #superclass : #Object, + #traits : 'TPyramidPlugin', + #classTraits : 'TPyramidPlugin classTrait', #instVars : [ 'themePresenter', 'themePropertyManager' ], - #category : 'Pyramid-Toplo-plugin-theme-management', - #package : 'Pyramid-Toplo', - #tag : 'plugin-theme-management' + #category : #'Pyramid-Toplo-plugin-theme-management' } -{ #category : 'adding' } -PyramidToploThemePlugin class >> addOnLibrary: aLibrary [ - - | classes factories | - classes := ToElement allSubclasses. - factories := classes - reject: [ :each | each isAbstract ] - thenCollect: [ :class | - PyramidElementToAddFactory new - elementIcon: - (Smalltalk ui icons iconNamed: class systemIconName); - elementName: class name; - elementBlock: [ { class new } ]; - yourself ]. - - aLibrary - addCategoryWithName: 'Toplo' - withIcon: (Smalltalk ui icons iconNamed: #smallInfo) - withAllFactories: factories asArray sorted. -] - -{ #category : 'asserting' } +{ #category : #asserting } PyramidToploThemePlugin class >> shouldInstall [ ^ false ] -{ #category : 'adding' } +{ #category : #adding } +PyramidToploThemePlugin class >> toploAntIconCategory [ + + + ^ PyramidToploThemePlugin + toploIconThemeCategoryFromClass: ToAntDesignIconProvider + withCategoryPrefix: 'Ant Design - ' +] + +{ #category : #adding } +PyramidToploThemePlugin class >> toploIconThemeCategoryFromClass: aClass withCategoryPrefix: aString [ + + | categoriesMethods | + categoriesMethods := aClass class methods select: [ :method | + method selector first = $_ and: [ + ($_ split: method selector) last = 'loaded' ] ]. + + ^ categoriesMethods collect: [ :method | + | prefix elementSelectors elements | + prefix := ($_ split: method selector) second. + + elementSelectors := (aClass perform: method selector) collect: [ + :suffix | prefix , '_' , suffix ]. + + elements := elementSelectors collect: [ :selector | + PyramidLibraryElement new + name: selector; + icon: (Smalltalk ui icons iconNamed: #blank); + block: [ + | image | + image := ToImage new + size: 48 asPoint; + innerImage: + (PyramidExternalRessourceProxy new + pyramidExternalRessourceSource: + (PyramidExternalRessourceSource new + postConstructionBlock: [ :obj | + obj constraints horizontal + matchParent. + obj constraints vertical + matchParent ]; + target: BlSvgConverter; + selector: #convertFromString:; + arguments: + { (PyramidExternalRessourceProxy + new + pyramidExternalRessourceSource: + (PyramidExternalRessourceSource + new + target: aClass; + selector: selector asSymbol; + arguments: { }; + yourself); + yourself) }; + yourself); + yourself). + { image } ]; + yourself ]. + PyramidLibraryCategory new + name: aString , prefix; + icon: (Smalltalk ui icons iconNamed: #image); + elements: elements; + yourself ] +] + +{ #category : #adding } +PyramidToploThemePlugin class >> toploLibraryCategory [ + + + | classes elements | + classes := ToElement allSubclasses , { ToElement }. + elements := classes + reject: [ :each | + each isAbstract or: [ + (each name findString: 'Abstract') > 0 or: [ + [ + each new. + false ] + on: Error + do: [ true ] ] ] ] + thenCollect: [ :class | + PyramidLibraryElement new + icon: + (Smalltalk ui icons iconNamed: class systemIconName); + name: class name; + block: [ { class new } ]; + yourself ]. + + ^ { (PyramidLibraryCategory new + name: 'Toplo'; + icon: (Smalltalk ui icons iconNamed: #box); + elements: (elements sorted: [ :a :b | a name < b name ]); + yourself) } +] + +{ #category : #adding } +PyramidToploThemePlugin class >> toploMaterialIconCategory [ + + + ^ PyramidToploThemePlugin + toploIconThemeCategoryFromClass: ToMaterialDesignIconProvider + withCategoryPrefix: 'Material Design - ' +] + +{ #category : #adding } PyramidToploThemePlugin >> addPanelsOn: aPyramidSimpleWindow [ aPyramidSimpleWindow at: #tabRight addItem: [ :builder | @@ -50,7 +131,7 @@ PyramidToploThemePlugin >> addPanelsOn: aPyramidSimpleWindow [ order: 1 ] ] -{ #category : 'actions' } +{ #category : #actions } PyramidToploThemePlugin >> configureBuilder: aPyramidEditorBuilder [ | spacePlugin | @@ -58,14 +139,14 @@ PyramidToploThemePlugin >> configureBuilder: aPyramidEditorBuilder [ self themePresenter pyramidSpaceBuilderConfigurationOn: spacePlugin builder ] -{ #category : 'connecting' } +{ #category : #connecting } PyramidToploThemePlugin >> connectOn: aPyramidEditor [ self themePresenter editor: aPyramidEditor. self themePropertyManager projectModel: aPyramidEditor projectModel ] -{ #category : 'initialization' } +{ #category : #initialization } PyramidToploThemePlugin >> initialize [ themePresenter := PyramidThemePresenter new. @@ -76,13 +157,13 @@ PyramidToploThemePlugin >> initialize [ themePresenter styleSheetEditor stampPresenter: themePropertyManager presenter ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidToploThemePlugin >> themePresenter [ ^ themePresenter ] -{ #category : 'accessing' } +{ #category : #accessing } PyramidToploThemePlugin >> themePropertyManager [ ^ themePropertyManager diff --git a/src/Pyramid-Toplo/package.st b/src/Pyramid-Toplo/package.st index f130d9ab..3788959f 100644 --- a/src/Pyramid-Toplo/package.st +++ b/src/Pyramid-Toplo/package.st @@ -1 +1 @@ -Package { #name : 'Pyramid-Toplo' } +Package { #name : #'Pyramid-Toplo' } diff --git a/src/Pyramid/Object.extension.st b/src/Pyramid/Object.extension.st new file mode 100644 index 00000000..30172d0c --- /dev/null +++ b/src/Pyramid/Object.extension.st @@ -0,0 +1,7 @@ +Extension { #name : #Object } + +{ #category : #'*Pyramid' } +Object >> isPyramidProxy [ + + ^ false +] diff --git a/src/Pyramid/PyramidAbstractMemento.class.st b/src/Pyramid/PyramidAbstractMemento.class.st index 34aead3d..c46d77d0 100644 --- a/src/Pyramid/PyramidAbstractMemento.class.st +++ b/src/Pyramid/PyramidAbstractMemento.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidAbstractMemento, #superclass : #Object, - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #testing } diff --git a/src/Pyramid/PyramidAddAllToCollectionCommand.class.st b/src/Pyramid/PyramidAddAllToCollectionCommand.class.st index b4a0224b..6e949f47 100644 --- a/src/Pyramid/PyramidAddAllToCollectionCommand.class.st +++ b/src/Pyramid/PyramidAddAllToCollectionCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidAddAllToCollectionCommand, #superclass : #PyramidCollectionCommand, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidAddToCollectionCommand.class.st b/src/Pyramid/PyramidAddToCollectionCommand.class.st index c1eb5377..4fe0c85f 100644 --- a/src/Pyramid/PyramidAddToCollectionCommand.class.st +++ b/src/Pyramid/PyramidAddToCollectionCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidAddToCollectionCommand, #superclass : #PyramidCollectionCommand, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidCallbackCommandExecutor.class.st b/src/Pyramid/PyramidCallbackCommandExecutor.class.st index 01669d1d..9c5d599d 100644 --- a/src/Pyramid/PyramidCallbackCommandExecutor.class.st +++ b/src/Pyramid/PyramidCallbackCommandExecutor.class.st @@ -5,7 +5,7 @@ Class { 'beforeDo', 'afterDo' ], - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #accessing } diff --git a/src/Pyramid/PyramidCluster.class.st b/src/Pyramid/PyramidCluster.class.st index b008d470..1eaf90b9 100644 --- a/src/Pyramid/PyramidCluster.class.st +++ b/src/Pyramid/PyramidCluster.class.st @@ -7,7 +7,7 @@ Class { 'groupedAssociations', 'individualAssociations' ], - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidCollectionCommand.class.st b/src/Pyramid/PyramidCollectionCommand.class.st index 3a225279..5e54f874 100644 --- a/src/Pyramid/PyramidCollectionCommand.class.st +++ b/src/Pyramid/PyramidCollectionCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidCollectionCommand, #superclass : #PyramidCommand, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #testing } diff --git a/src/Pyramid/PyramidCollectionWithCallbacks.class.st b/src/Pyramid/PyramidCollectionWithCallbacks.class.st index fb260465..b8abac35 100644 --- a/src/Pyramid/PyramidCollectionWithCallbacks.class.st +++ b/src/Pyramid/PyramidCollectionWithCallbacks.class.st @@ -5,7 +5,7 @@ Class { 'collection', 'subscriptions' ], - #category : #'Pyramid-models' + #category : 'Pyramid-models' } { #category : #adding } diff --git a/src/Pyramid/PyramidColorInputMultiLinesPresenter.class.st b/src/Pyramid/PyramidColorInputMultiLinesPresenter.class.st index c9ef304d..149a4fba 100644 --- a/src/Pyramid/PyramidColorInputMultiLinesPresenter.class.st +++ b/src/Pyramid/PyramidColorInputMultiLinesPresenter.class.st @@ -6,7 +6,7 @@ Class { 'colorInput', 'whenValueChangedDo' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid/PyramidColorInputPresenter.class.st b/src/Pyramid/PyramidColorInputPresenter.class.st index 5a938884..4c90f21d 100644 --- a/src/Pyramid/PyramidColorInputPresenter.class.st +++ b/src/Pyramid/PyramidColorInputPresenter.class.st @@ -7,7 +7,7 @@ Class { 'svMorph', 'whenValueChangedDo' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid/PyramidColorInputSingleLinePresenter.class.st b/src/Pyramid/PyramidColorInputSingleLinePresenter.class.st index a8e43c2a..7e360de6 100644 --- a/src/Pyramid/PyramidColorInputSingleLinePresenter.class.st +++ b/src/Pyramid/PyramidColorInputSingleLinePresenter.class.st @@ -7,7 +7,7 @@ Class { 'previewPresenter', 'whenValueChangedDo' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid/PyramidColorInputSingleLineWithPickupButtonPresenter.class.st b/src/Pyramid/PyramidColorInputSingleLineWithPickupButtonPresenter.class.st index 714b612e..1555fb4c 100644 --- a/src/Pyramid/PyramidColorInputSingleLineWithPickupButtonPresenter.class.st +++ b/src/Pyramid/PyramidColorInputSingleLineWithPickupButtonPresenter.class.st @@ -7,7 +7,7 @@ Class { 'multiLinesInput', 'whenValueChangedDo' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidCommand.class.st b/src/Pyramid/PyramidCommand.class.st index 4bf754c6..2d357fcd 100644 --- a/src/Pyramid/PyramidCommand.class.st +++ b/src/Pyramid/PyramidCommand.class.st @@ -12,7 +12,7 @@ In some rare case, the method saveStatesOf: aCollection withCommand: aCommand wi Class { #name : #PyramidCommand, #superclass : #Object, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #testing } diff --git a/src/Pyramid/PyramidCommandExecutor.class.st b/src/Pyramid/PyramidCommandExecutor.class.st index 8c3a2038..5772a51d 100644 --- a/src/Pyramid/PyramidCommandExecutor.class.st +++ b/src/Pyramid/PyramidCommandExecutor.class.st @@ -7,7 +7,7 @@ I’m an abstract class use to define the API. Class { #name : #PyramidCommandExecutor, #superclass : #Object, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #testing } diff --git a/src/Pyramid/PyramidCommandExecutorDecorator.class.st b/src/Pyramid/PyramidCommandExecutorDecorator.class.st index ec7ddd8a..2ac31b4b 100644 --- a/src/Pyramid/PyramidCommandExecutorDecorator.class.st +++ b/src/Pyramid/PyramidCommandExecutorDecorator.class.st @@ -8,7 +8,7 @@ Class { #instVars : [ 'wrappee' ], - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #testing } diff --git a/src/Pyramid/PyramidCommandMemento.class.st b/src/Pyramid/PyramidCommandMemento.class.st index ad4e0420..a916836b 100644 --- a/src/Pyramid/PyramidCommandMemento.class.st +++ b/src/Pyramid/PyramidCommandMemento.class.st @@ -6,7 +6,7 @@ Class { 'target', 'arguments' ], - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #visiting } diff --git a/src/Pyramid/PyramidCompositeMemento.class.st b/src/Pyramid/PyramidCompositeMemento.class.st index f3eb07f9..21205187 100644 --- a/src/Pyramid/PyramidCompositeMemento.class.st +++ b/src/Pyramid/PyramidCompositeMemento.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'mementos' ], - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #visiting } diff --git a/src/Pyramid/PyramidDashArrayInputPresenter.class.st b/src/Pyramid/PyramidDashArrayInputPresenter.class.st index 4f483d5f..f6681a39 100644 --- a/src/Pyramid/PyramidDashArrayInputPresenter.class.st +++ b/src/Pyramid/PyramidDashArrayInputPresenter.class.st @@ -5,7 +5,7 @@ Class { 'submitBlock', 'inputArray' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidDynamicLayoutAllPanels.class.st b/src/Pyramid/PyramidDynamicLayoutAllPanels.class.st index 71042492..163e7b7b 100644 --- a/src/Pyramid/PyramidDynamicLayoutAllPanels.class.st +++ b/src/Pyramid/PyramidDynamicLayoutAllPanels.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDynamicLayoutAllPanels, #superclass : #PyramidDynamicLayoutStrategy, - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidDynamicLayoutOnlyCenter.class.st b/src/Pyramid/PyramidDynamicLayoutOnlyCenter.class.st index 860e12b3..d2eb1287 100644 --- a/src/Pyramid/PyramidDynamicLayoutOnlyCenter.class.st +++ b/src/Pyramid/PyramidDynamicLayoutOnlyCenter.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDynamicLayoutOnlyCenter, #superclass : #PyramidDynamicLayoutStrategy, - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidDynamicLayoutOnlyLeft.class.st b/src/Pyramid/PyramidDynamicLayoutOnlyLeft.class.st index 5556f2b0..aa2b005c 100644 --- a/src/Pyramid/PyramidDynamicLayoutOnlyLeft.class.st +++ b/src/Pyramid/PyramidDynamicLayoutOnlyLeft.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDynamicLayoutOnlyLeft, #superclass : #PyramidDynamicLayoutStrategy, - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidDynamicLayoutOnlyRight.class.st b/src/Pyramid/PyramidDynamicLayoutOnlyRight.class.st index 802da25a..a7dc8427 100644 --- a/src/Pyramid/PyramidDynamicLayoutOnlyRight.class.st +++ b/src/Pyramid/PyramidDynamicLayoutOnlyRight.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDynamicLayoutOnlyRight, #superclass : #PyramidDynamicLayoutStrategy, - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidDynamicLayoutStrategy.class.st b/src/Pyramid/PyramidDynamicLayoutStrategy.class.st index 8503c2a0..1f5856e5 100644 --- a/src/Pyramid/PyramidDynamicLayoutStrategy.class.st +++ b/src/Pyramid/PyramidDynamicLayoutStrategy.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidDynamicLayoutStrategy, #superclass : #Object, - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidDynamicWindow.class.st b/src/Pyramid/PyramidDynamicWindow.class.st index 995c2ae8..580bfe38 100644 --- a/src/Pyramid/PyramidDynamicWindow.class.st +++ b/src/Pyramid/PyramidDynamicWindow.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'layoutStrategy' ], - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #accessing } diff --git a/src/Pyramid/PyramidEditor.class.st b/src/Pyramid/PyramidEditor.class.st index b4177428..f77eaa30 100644 --- a/src/Pyramid/PyramidEditor.class.st +++ b/src/Pyramid/PyramidEditor.class.st @@ -10,7 +10,7 @@ Class { 'propertiesManager', 'announcer' ], - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #private } diff --git a/src/Pyramid/PyramidEditorBuilder.class.st b/src/Pyramid/PyramidEditorBuilder.class.st index d2e9ba64..0177e0e1 100644 --- a/src/Pyramid/PyramidEditorBuilder.class.st +++ b/src/Pyramid/PyramidEditorBuilder.class.st @@ -8,7 +8,7 @@ Class { 'editor', 'window' ], - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #building } diff --git a/src/Pyramid/PyramidElementsChangedEvent.class.st b/src/Pyramid/PyramidElementsChangedEvent.class.st index 32699db6..2d2b18b2 100644 --- a/src/Pyramid/PyramidElementsChangedEvent.class.st +++ b/src/Pyramid/PyramidElementsChangedEvent.class.st @@ -1,5 +1,5 @@ Class { #name : #PyramidElementsChangedEvent, #superclass : #PyramidProjectModelEvent, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } diff --git a/src/Pyramid/PyramidEmptyValue.class.st b/src/Pyramid/PyramidEmptyValue.class.st index 5d6002d3..008c8d64 100644 --- a/src/Pyramid/PyramidEmptyValue.class.st +++ b/src/Pyramid/PyramidEmptyValue.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidEmptyValue, #superclass : #PyramidUnknowState, - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #converting } diff --git a/src/Pyramid/PyramidError.class.st b/src/Pyramid/PyramidError.class.st index e75716ca..a7b3e921 100644 --- a/src/Pyramid/PyramidError.class.st +++ b/src/Pyramid/PyramidError.class.st @@ -1,5 +1,5 @@ Class { #name : #PyramidError, #superclass : #Error, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } diff --git a/src/Pyramid/PyramidEvent.class.st b/src/Pyramid/PyramidEvent.class.st index c7ebff97..f8c0c807 100644 --- a/src/Pyramid/PyramidEvent.class.st +++ b/src/Pyramid/PyramidEvent.class.st @@ -1,5 +1,5 @@ Class { #name : #PyramidEvent, #superclass : #Announcement, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } diff --git a/src/Pyramid/PyramidExternalRessourceProxy.class.st b/src/Pyramid/PyramidExternalRessourceProxy.class.st index 880cc1a3..049fdf16 100644 --- a/src/Pyramid/PyramidExternalRessourceProxy.class.st +++ b/src/Pyramid/PyramidExternalRessourceProxy.class.st @@ -3,7 +3,8 @@ Class { #superclass : #Object, #instVars : [ 'object', - 'source' + 'source', + 'hasComputedObject' ], #category : #'Pyramid-external-ressources' } @@ -13,19 +14,46 @@ PyramidExternalRessourceProxy class >> fromSource: aSource [ ^ self new pyramidExternalRessourceSource: aSource; - pyramidExternalRessourceObject: aSource getRessource; yourself ] +{ #category : #'instance creation' } +PyramidExternalRessourceProxy class >> fromTarget: aTarget selector: aSelector arguments: aCollection [ + + ^ self fromTarget: aTarget selector: aSelector arguments: aCollection withPostConstructionBlock: nil +] + +{ #category : #'instance creation' } +PyramidExternalRessourceProxy class >> fromTarget: aTarget selector: aSelector arguments: aCollection withPostConstructionBlock: aBlock [ + + ^ self fromSource: (PyramidExternalRessourceSource + target: aTarget + selector: aSelector + arguments: aCollection + postConstructionBlock: aBlock) +] + +{ #category : #converting } +PyramidExternalRessourceProxy >> asStashConstructor [ + + ^ self class printString , ' new' +] + { #category : #'as yet unclassified' } PyramidExternalRessourceProxy >> doesNotUnderstand: aMessage [ - ^ (self pyramidExternalRessourceObject respondsTo: aMessage selector) - ifTrue: [ - self pyramidExternalRessourceObject - perform: aMessage selector - withEnoughArguments: aMessage arguments ] - ifFalse: [ super doesNotUnderstand: aMessage ] + | returnValue target | + target := self pyramidExternalRessourceObject. + self pyramidExternalRessourceObject isPyramidProxy ifTrue: [ ^ target doesNotUnderstand: aMessage ]. + + (target respondsTo: aMessage selector) + ifFalse: [ ^ super doesNotUnderstand: aMessage ]. + + returnValue := target + perform: aMessage selector + withEnoughArguments: aMessage arguments. + returnValue == object ifTrue: [ ^ self ]. + ^ returnValue ] { #category : #'instance creation' } @@ -37,10 +65,265 @@ PyramidExternalRessourceProxy >> fromSton: stonReader [ ] ] ] +{ #category : #initialization } +PyramidExternalRessourceProxy >> initialize [ + + super initialize. + hasComputedObject := false. +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isArray [ + + ^ self pyramidExternalRessourceObject isArray +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isAssociation [ + + ^ self pyramidExternalRessourceObject isAssociation +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isBehavior [ + + ^ self pyramidExternalRessourceObject isBehavior +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isBlock [ + + ^ self pyramidExternalRessourceObject isBlock +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isCharacter [ + + ^ self pyramidExternalRessourceObject isCharacter +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isClass [ + + ^ self pyramidExternalRessourceObject isClass +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isClassOrTrait [ + + ^ self pyramidExternalRessourceObject isClassOrTrait +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isClosure [ + + ^ self pyramidExternalRessourceObject isClosure +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isCollection [ + + ^ self pyramidExternalRessourceObject isCollection +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isColor [ + + ^ self pyramidExternalRessourceObject isColor +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isColorForm [ + + ^ self pyramidExternalRessourceObject isColorForm +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isCompiledBlock [ + + ^ self pyramidExternalRessourceObject isCompiledBlock +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isCompiledMethod [ + + ^ self pyramidExternalRessourceObject isCompiledMethod +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isContext [ + + ^ self pyramidExternalRessourceObject isContext +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isDictionary [ + + ^ self pyramidExternalRessourceObject isDictionary +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isEmbeddedBlock [ + + ^ self pyramidExternalRessourceObject isEmbeddedBlock +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isFloat [ + + ^ self pyramidExternalRessourceObject isFloat +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isForm [ + + ^ self pyramidExternalRessourceObject isForm +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isFraction [ + + ^ self pyramidExternalRessourceObject isFraction +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isHeap [ + + ^ self pyramidExternalRessourceObject isHeap +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isInteger [ + + ^ self pyramidExternalRessourceObject isInteger +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isInterval [ + + ^ self pyramidExternalRessourceObject isInterval +] + +{ #category : #'class membership' } +PyramidExternalRessourceProxy >> isKindOf: aClass [ + + ^ self pyramidExternalRessourceObject isKindOf: aClass +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isLiteral [ + + ^ self pyramidExternalRessourceObject isLiteral +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isMessageSend [ + + ^ self pyramidExternalRessourceObject isMessageSend +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isMethodProperties [ + + ^ self pyramidExternalRessourceObject isMethodProperties +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isMorph [ + + ^ self pyramidExternalRessourceObject isMorph +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isMorphicEvent [ + + ^ self pyramidExternalRessourceObject isMorphicEvent +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isNotNil [ + + ^ self pyramidExternalRessourceObject isNotNil +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isNumber [ + + ^ self pyramidExternalRessourceObject isNumber +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isPoint [ + + ^ self pyramidExternalRessourceObject isPoint +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isPyramidProxy [ + + ^ true +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isRectangle [ + + ^ self pyramidExternalRessourceObject isRectangle +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isStream [ + + ^ self pyramidExternalRessourceObject isStream +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isString [ + + ^ self pyramidExternalRessourceObject isString +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isSymbol [ + + ^ self pyramidExternalRessourceObject isSymbol +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isSystemWindow [ + + ^ self pyramidExternalRessourceObject isSystemWindow +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isText [ + + ^ self pyramidExternalRessourceObject isText +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isTrait [ + + ^ self pyramidExternalRessourceObject isTrait +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> isVariableBinding [ + + ^ self pyramidExternalRessourceObject isVariableBinding +] + +{ #category : #testing } +PyramidExternalRessourceProxy >> notNil [ + + ^ self pyramidExternalRessourceObject notNil +] + { #category : #accessing } PyramidExternalRessourceProxy >> pyramidExternalRessourceObject [ - object ifNil: [ object := self pyramidExternalRessourceSource getRessource ]. + hasComputedObject ifFalse: [ + hasComputedObject := true. + object := self pyramidExternalRessourceSource getRessource ]. ^ object ] @@ -62,11 +345,23 @@ PyramidExternalRessourceProxy >> pyramidExternalRessourceSource: anObject [ source := anObject ] +{ #category : #asserting } +PyramidExternalRessourceProxy >> shouldSerializedChildren [ + + ^ false +] + +{ #category : #accessing } +PyramidExternalRessourceProxy >> size [ + + ^ self pyramidExternalRessourceObject size +] + { #category : #'as yet unclassified' } PyramidExternalRessourceProxy >> stashAccessors [ - ^ { #pyramidExternalRessourceSource } + ^ { #pyramidExternalRessourceSource . #pyramidExternalRessourceObject onlyGetOnStash } ] { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidExternalRessourceSource.class.st b/src/Pyramid/PyramidExternalRessourceSource.class.st index 562455dc..9bf6ea03 100644 --- a/src/Pyramid/PyramidExternalRessourceSource.class.st +++ b/src/Pyramid/PyramidExternalRessourceSource.class.st @@ -4,7 +4,8 @@ Class { #instVars : [ 'target', 'selector', - 'arguments' + 'arguments', + 'postConstructionBlock' ], #category : #'Pyramid-external-ressources' } @@ -20,21 +21,33 @@ PyramidExternalRessourceSource class >> formFromFileNamed: aFileReference [ ] { #category : #initialization } -PyramidExternalRessourceSource class >> target: aClass selector: aSelector [ +PyramidExternalRessourceSource class >> target: anObject selector: aSelector [ - ^ self new - target: aClass; - selector: aSelector; - yourself + ^ self + target: anObject + selector: aSelector + arguments: { } + postConstructionBlock: nil +] + +{ #category : #initialization } +PyramidExternalRessourceSource class >> target: anObject selector: aSelector arguments: anArray [ + + ^ self + target: anObject + selector: aSelector + arguments: anArray + postConstructionBlock: nil ] { #category : #initialization } -PyramidExternalRessourceSource class >> target: aClass selector: aSelector arguments: anArray [ +PyramidExternalRessourceSource class >> target: anObject selector: aSelector arguments: anArray postConstructionBlock: aBlock [ ^ self new - target: aClass; + target: anObject; selector: aSelector; arguments: anArray; + postConstructionBlock: aBlock; yourself ] @@ -63,13 +76,32 @@ PyramidExternalRessourceSource >> fromSton: stonReader [ { #category : #'as yet unclassified' } PyramidExternalRessourceSource >> getRessource [ - ^ self target perform: self selector withArguments: self arguments + | ressource | + ressource := self target + perform: self selector + withArguments: self arguments. + self postConstructionBlock ifNotNil: [ :block | + block value: ressource ]. + ^ ressource ] { #category : #initialization } PyramidExternalRessourceSource >> initialize [ - arguments := { } + arguments := { }. + postConstructionBlock := nil. +] + +{ #category : #accessing } +PyramidExternalRessourceSource >> postConstructionBlock [ + + ^ postConstructionBlock +] + +{ #category : #accessing } +PyramidExternalRessourceSource >> postConstructionBlock: anObject [ + + postConstructionBlock := anObject ] { #category : #accessing } @@ -88,7 +120,12 @@ PyramidExternalRessourceSource >> selector: anObject [ PyramidExternalRessourceSource >> stashAccessors [ - ^ { #target . #selector . #arguments } + | accessors | + accessors := OrderedCollection new. + accessors addAll: { #target. #selector. #arguments }. + self postConstructionBlock ifNotNil: [ + accessors add: #postConstructionBlock ]. + ^ accessors ] { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidFirstLevelElementsChangedEvent.class.st b/src/Pyramid/PyramidFirstLevelElementsChangedEvent.class.st index ff3b191c..87df6823 100644 --- a/src/Pyramid/PyramidFirstLevelElementsChangedEvent.class.st +++ b/src/Pyramid/PyramidFirstLevelElementsChangedEvent.class.st @@ -1,5 +1,5 @@ Class { #name : #PyramidFirstLevelElementsChangedEvent, #superclass : #PyramidProjectModelEvent, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } diff --git a/src/Pyramid/PyramidHideEmptyPropertyStrategy.class.st b/src/Pyramid/PyramidHideEmptyPropertyStrategy.class.st index 88b4473b..947f16af 100644 --- a/src/Pyramid/PyramidHideEmptyPropertyStrategy.class.st +++ b/src/Pyramid/PyramidHideEmptyPropertyStrategy.class.st @@ -11,7 +11,7 @@ In other terms, any property who is not linked to any object in the collection w Class { #name : #PyramidHideEmptyPropertyStrategy, #superclass : #PyramidPresenterPropertiesStrategy, - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidHistory.class.st b/src/Pyramid/PyramidHistory.class.st index 05a8d77e..ef604005 100644 --- a/src/Pyramid/PyramidHistory.class.st +++ b/src/Pyramid/PyramidHistory.class.st @@ -5,7 +5,7 @@ Class { 'mementosStack', 'position' ], - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #testing } diff --git a/src/Pyramid/PyramidHistoryCommandExecutor.class.st b/src/Pyramid/PyramidHistoryCommandExecutor.class.st index db1f02d1..5244150a 100644 --- a/src/Pyramid/PyramidHistoryCommandExecutor.class.st +++ b/src/Pyramid/PyramidHistoryCommandExecutor.class.st @@ -8,7 +8,7 @@ Class { #instVars : [ 'history' ], - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #accessing } diff --git a/src/Pyramid/PyramidHistoryPlugin.class.st b/src/Pyramid/PyramidHistoryPlugin.class.st index 1d34c2b8..54e8d3c3 100644 --- a/src/Pyramid/PyramidHistoryPlugin.class.st +++ b/src/Pyramid/PyramidHistoryPlugin.class.st @@ -9,7 +9,7 @@ Class { 'history', 'projectModel' ], - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #adding } diff --git a/src/Pyramid/PyramidInputPresenter.class.st b/src/Pyramid/PyramidInputPresenter.class.st index a69babbd..07234de5 100644 --- a/src/Pyramid/PyramidInputPresenter.class.st +++ b/src/Pyramid/PyramidInputPresenter.class.st @@ -15,7 +15,7 @@ Class { #instVars : [ 'strings' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #testing } diff --git a/src/Pyramid/PyramidInputStrings.class.st b/src/Pyramid/PyramidInputStrings.class.st index 1e71cb65..3c6c87c5 100644 --- a/src/Pyramid/PyramidInputStrings.class.st +++ b/src/Pyramid/PyramidInputStrings.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'help' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid/PyramidMagicButtonModel.class.st b/src/Pyramid/PyramidMagicButtonModel.class.st index 70cf3671..6896975c 100644 --- a/src/Pyramid/PyramidMagicButtonModel.class.st +++ b/src/Pyramid/PyramidMagicButtonModel.class.st @@ -9,7 +9,7 @@ Class { 'label', 'inputValidation' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid/PyramidMagicButtonsInputPresenter.class.st b/src/Pyramid/PyramidMagicButtonsInputPresenter.class.st index 9b25f781..78aeeb53 100644 --- a/src/Pyramid/PyramidMagicButtonsInputPresenter.class.st +++ b/src/Pyramid/PyramidMagicButtonsInputPresenter.class.st @@ -13,7 +13,7 @@ Class { #classInstVars : [ 'whenValueChangedDo' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #deprecated } diff --git a/src/Pyramid/PyramidMagicButtonsModel.class.st b/src/Pyramid/PyramidMagicButtonsModel.class.st index 5dc13c58..212f63ff 100644 --- a/src/Pyramid/PyramidMagicButtonsModel.class.st +++ b/src/Pyramid/PyramidMagicButtonsModel.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'buttonsModel' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #adding } diff --git a/src/Pyramid/PyramidMainCommandExecutor.class.st b/src/Pyramid/PyramidMainCommandExecutor.class.st index 2f95fb28..7fe07c65 100644 --- a/src/Pyramid/PyramidMainCommandExecutor.class.st +++ b/src/Pyramid/PyramidMainCommandExecutor.class.st @@ -5,7 +5,7 @@ I execute the command on the given targets with the given arguments. Class { #name : #PyramidMainCommandExecutor, #superclass : #PyramidCommandExecutor, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidMementoInverser.class.st b/src/Pyramid/PyramidMementoInverser.class.st index 11e5ba91..f7c9366d 100644 --- a/src/Pyramid/PyramidMementoInverser.class.st +++ b/src/Pyramid/PyramidMementoInverser.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidMementoInverser, #superclass : #PyramidMementoVisitor, - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #visiting } diff --git a/src/Pyramid/PyramidMementoVisitor.class.st b/src/Pyramid/PyramidMementoVisitor.class.st index c57aa50e..346271e3 100644 --- a/src/Pyramid/PyramidMementoVisitor.class.st +++ b/src/Pyramid/PyramidMementoVisitor.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidMementoVisitor, #superclass : #Object, - #category : #'Pyramid-history' + #category : 'Pyramid-history' } { #category : #visiting } diff --git a/src/Pyramid/PyramidMenuPanelBuilder.class.st b/src/Pyramid/PyramidMenuPanelBuilder.class.st index ac63c5f9..22e9231a 100644 --- a/src/Pyramid/PyramidMenuPanelBuilder.class.st +++ b/src/Pyramid/PyramidMenuPanelBuilder.class.st @@ -7,7 +7,7 @@ Class { 'multiGroups', 'singleGroups' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #adding } diff --git a/src/Pyramid/PyramidMixedValues.class.st b/src/Pyramid/PyramidMixedValues.class.st index d3922776..ceb678b2 100644 --- a/src/Pyramid/PyramidMixedValues.class.st +++ b/src/Pyramid/PyramidMixedValues.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidMixedValues, #superclass : #PyramidUnknowState, - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #converting } diff --git a/src/Pyramid/PyramidModalInputStrings.class.st b/src/Pyramid/PyramidModalInputStrings.class.st index dacde292..5dfc8a0a 100644 --- a/src/Pyramid/PyramidModalInputStrings.class.st +++ b/src/Pyramid/PyramidModalInputStrings.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'windowTitle' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #initialization } diff --git a/src/Pyramid/PyramidMultiplePluginsFoundError.class.st b/src/Pyramid/PyramidMultiplePluginsFoundError.class.st index e9d18706..0fd8d9db 100644 --- a/src/Pyramid/PyramidMultiplePluginsFoundError.class.st +++ b/src/Pyramid/PyramidMultiplePluginsFoundError.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'plugins' ], - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #accessing } diff --git a/src/Pyramid/PyramidNoPluginFoundError.class.st b/src/Pyramid/PyramidNoPluginFoundError.class.st index 44d26e83..140a4fbb 100644 --- a/src/Pyramid/PyramidNoPluginFoundError.class.st +++ b/src/Pyramid/PyramidNoPluginFoundError.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'query' ], - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #accessing } diff --git a/src/Pyramid/PyramidNumberArrayInputPresenter.class.st b/src/Pyramid/PyramidNumberArrayInputPresenter.class.st index 8d4a5b5c..cae0b377 100644 --- a/src/Pyramid/PyramidNumberArrayInputPresenter.class.st +++ b/src/Pyramid/PyramidNumberArrayInputPresenter.class.st @@ -5,7 +5,7 @@ Class { 'submitBlock', 'inputArray' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidNumberInputPresenter.class.st b/src/Pyramid/PyramidNumberInputPresenter.class.st index 138106b3..a39df4d2 100644 --- a/src/Pyramid/PyramidNumberInputPresenter.class.st +++ b/src/Pyramid/PyramidNumberInputPresenter.class.st @@ -8,7 +8,7 @@ Class { 'inputNumber', 'submitBlock' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidPanelBuilder.class.st b/src/Pyramid/PyramidPanelBuilder.class.st index f87319a7..0fa3f566 100644 --- a/src/Pyramid/PyramidPanelBuilder.class.st +++ b/src/Pyramid/PyramidPanelBuilder.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidPanelBuilder, #superclass : #Object, - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPanelModel.class.st b/src/Pyramid/PyramidPanelModel.class.st index b9485ade..6b5512c7 100644 --- a/src/Pyramid/PyramidPanelModel.class.st +++ b/src/Pyramid/PyramidPanelModel.class.st @@ -7,7 +7,7 @@ Class { 'window', 'presenter' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPlaygroundView.class.st b/src/Pyramid/PyramidPlaygroundView.class.st index eb1d2274..304a7345 100644 --- a/src/Pyramid/PyramidPlaygroundView.class.st +++ b/src/Pyramid/PyramidPlaygroundView.class.st @@ -7,7 +7,7 @@ Class { 'codeObjectInteractionModel', 'contextLabel' ], - #category : #'Pyramid-plugin-playground' + #category : 'Pyramid-plugin-playground' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPluginDynamicLayout.class.st b/src/Pyramid/PyramidPluginDynamicLayout.class.st index 08019f82..f9ee24f3 100644 --- a/src/Pyramid/PyramidPluginDynamicLayout.class.st +++ b/src/Pyramid/PyramidPluginDynamicLayout.class.st @@ -10,7 +10,7 @@ Class { 'isRightOpened', 'editorWindow' ], - #category : #'Pyramid-plugin-dynamic-layout' + #category : 'Pyramid-plugin-dynamic-layout' } { #category : #adding } diff --git a/src/Pyramid/PyramidPluginManager.class.st b/src/Pyramid/PyramidPluginManager.class.st index 621ccdc9..59365d8d 100644 --- a/src/Pyramid/PyramidPluginManager.class.st +++ b/src/Pyramid/PyramidPluginManager.class.st @@ -7,7 +7,7 @@ Class { #classInstVars : [ 'uniqueInstance' ], - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #'instance creation' } diff --git a/src/Pyramid/PyramidPluginPlayground.class.st b/src/Pyramid/PyramidPluginPlayground.class.st index fa066358..d64e1aa2 100644 --- a/src/Pyramid/PyramidPluginPlayground.class.st +++ b/src/Pyramid/PyramidPluginPlayground.class.st @@ -7,7 +7,7 @@ Class { 'activeProject', 'view' ], - #category : #'Pyramid-plugin-playground' + #category : 'Pyramid-plugin-playground' } { #category : #adding } diff --git a/src/Pyramid/PyramidPointInputPresenter.class.st b/src/Pyramid/PyramidPointInputPresenter.class.st index 7e531bbd..863b777a 100644 --- a/src/Pyramid/PyramidPointInputPresenter.class.st +++ b/src/Pyramid/PyramidPointInputPresenter.class.st @@ -8,7 +8,7 @@ Class { 'labelX', 'labelY' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPointInputStrings.class.st b/src/Pyramid/PyramidPointInputStrings.class.st index cc620893..692431d8 100644 --- a/src/Pyramid/PyramidPointInputStrings.class.st +++ b/src/Pyramid/PyramidPointInputStrings.class.st @@ -5,7 +5,7 @@ Class { 'labelX', 'labelY' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #initialization } diff --git a/src/Pyramid/PyramidPopingPresenterBuilder.class.st b/src/Pyramid/PyramidPopingPresenterBuilder.class.st index ff684f5f..ac7cf9b0 100644 --- a/src/Pyramid/PyramidPopingPresenterBuilder.class.st +++ b/src/Pyramid/PyramidPopingPresenterBuilder.class.st @@ -7,7 +7,7 @@ I create a presenter with a main input to change property of all element at once Class { #name : #PyramidPopingPresenterBuilder, #superclass : #PyramidPropertyPresenterBuilder, - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidPopoverFactory.class.st b/src/Pyramid/PyramidPopoverFactory.class.st index 3ac14869..360c92b2 100644 --- a/src/Pyramid/PyramidPopoverFactory.class.st +++ b/src/Pyramid/PyramidPopoverFactory.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidPopoverFactory, #superclass : #Object, - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidPresenterPanelBuilder.class.st b/src/Pyramid/PyramidPresenterPanelBuilder.class.st index 555ffa0e..fa28e68e 100644 --- a/src/Pyramid/PyramidPresenterPanelBuilder.class.st +++ b/src/Pyramid/PyramidPresenterPanelBuilder.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'item' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidPresenterPropertiesStrategy.class.st b/src/Pyramid/PyramidPresenterPropertiesStrategy.class.st index d915aae3..8645e67d 100644 --- a/src/Pyramid/PyramidPresenterPropertiesStrategy.class.st +++ b/src/Pyramid/PyramidPresenterPropertiesStrategy.class.st @@ -7,7 +7,7 @@ I do that with the message `#buildPresenterFromCollection:andManager:` Class { #name : #PyramidPresenterPropertiesStrategy, #superclass : #Object, - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #testing } diff --git a/src/Pyramid/PyramidProjectModel.class.st b/src/Pyramid/PyramidProjectModel.class.st index 4cb9ccf6..0fc5a122 100644 --- a/src/Pyramid/PyramidProjectModel.class.st +++ b/src/Pyramid/PyramidProjectModel.class.st @@ -6,7 +6,7 @@ Class { 'firstLevelElements', 'selection' ], - #category : #'Pyramid-models' + #category : 'Pyramid-models' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidProjectModelEvent.class.st b/src/Pyramid/PyramidProjectModelEvent.class.st index 2188ab33..fc4f9a59 100644 --- a/src/Pyramid/PyramidProjectModelEvent.class.st +++ b/src/Pyramid/PyramidProjectModelEvent.class.st @@ -5,7 +5,7 @@ Class { 'selection', 'firstLevelElements' ], - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPropertiesManager.class.st b/src/Pyramid/PyramidPropertiesManager.class.st index 06fdd063..bc4c20bc 100644 --- a/src/Pyramid/PyramidPropertiesManager.class.st +++ b/src/Pyramid/PyramidPropertiesManager.class.st @@ -7,7 +7,7 @@ Class { 'presenterStrategy', 'history' ], - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #removing } diff --git a/src/Pyramid/PyramidPropertiesManagerForSelection.class.st b/src/Pyramid/PyramidPropertiesManagerForSelection.class.st index 050d83c7..60a4f063 100644 --- a/src/Pyramid/PyramidPropertiesManagerForSelection.class.st +++ b/src/Pyramid/PyramidPropertiesManagerForSelection.class.st @@ -6,7 +6,7 @@ Class { 'shouldComputeProperties', 'projectModel' ], - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidProperty.class.st b/src/Pyramid/PyramidProperty.class.st index 52ded07c..22eeaad6 100644 --- a/src/Pyramid/PyramidProperty.class.st +++ b/src/Pyramid/PyramidProperty.class.st @@ -9,7 +9,7 @@ Class { 'name', 'pyramidInputPresenterStrings' ], - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidPropertyNotInstalledError.class.st b/src/Pyramid/PyramidPropertyNotInstalledError.class.st index 839cb6c3..7d3481d4 100644 --- a/src/Pyramid/PyramidPropertyNotInstalledError.class.st +++ b/src/Pyramid/PyramidPropertyNotInstalledError.class.st @@ -5,7 +5,7 @@ Class { 'manager', 'property' ], - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPropertyPopupPresenter.class.st b/src/Pyramid/PyramidPropertyPopupPresenter.class.st index a0af4e94..afb43214 100644 --- a/src/Pyramid/PyramidPropertyPopupPresenter.class.st +++ b/src/Pyramid/PyramidPropertyPopupPresenter.class.st @@ -8,7 +8,7 @@ Class { 'groupedPresenters', 'name' ], - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #accessing } diff --git a/src/Pyramid/PyramidPropertyPresenterBuilder.class.st b/src/Pyramid/PyramidPropertyPresenterBuilder.class.st index 1eedbf21..8acdca0d 100644 --- a/src/Pyramid/PyramidPropertyPresenterBuilder.class.st +++ b/src/Pyramid/PyramidPropertyPresenterBuilder.class.st @@ -9,7 +9,7 @@ Class { 'cluster', 'property' ], - #category : #'Pyramid-property' + #category : 'Pyramid-property' } { #category : #testing } diff --git a/src/Pyramid/PyramidRemoveAllFromCollectionCommand.class.st b/src/Pyramid/PyramidRemoveAllFromCollectionCommand.class.st index e039ab4d..906f28c3 100644 --- a/src/Pyramid/PyramidRemoveAllFromCollectionCommand.class.st +++ b/src/Pyramid/PyramidRemoveAllFromCollectionCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidRemoveAllFromCollectionCommand, #superclass : #PyramidCollectionCommand, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidRemoveFromCollectionCommand.class.st b/src/Pyramid/PyramidRemoveFromCollectionCommand.class.st index cf9386a4..364c829a 100644 --- a/src/Pyramid/PyramidRemoveFromCollectionCommand.class.st +++ b/src/Pyramid/PyramidRemoveFromCollectionCommand.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidRemoveFromCollectionCommand, #superclass : #PyramidCollectionCommand, - #category : #'Pyramid-commands' + #category : 'Pyramid-commands' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidSelectionChangedEvent.class.st b/src/Pyramid/PyramidSelectionChangedEvent.class.st index 363506a3..9f8f2f2f 100644 --- a/src/Pyramid/PyramidSelectionChangedEvent.class.st +++ b/src/Pyramid/PyramidSelectionChangedEvent.class.st @@ -1,5 +1,5 @@ Class { #name : #PyramidSelectionChangedEvent, #superclass : #PyramidProjectModelEvent, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } diff --git a/src/Pyramid/PyramidSimpleWindow.class.st b/src/Pyramid/PyramidSimpleWindow.class.st index 1f5a6e7a..56ec2b4d 100644 --- a/src/Pyramid/PyramidSimpleWindow.class.st +++ b/src/Pyramid/PyramidSimpleWindow.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSimpleWindow, #superclass : #PyramidWindow, - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #specs } diff --git a/src/Pyramid/PyramidSortedCollectionWithCallbacks.class.st b/src/Pyramid/PyramidSortedCollectionWithCallbacks.class.st index f3ad34a3..2dadf5af 100644 --- a/src/Pyramid/PyramidSortedCollectionWithCallbacks.class.st +++ b/src/Pyramid/PyramidSortedCollectionWithCallbacks.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'sortFunction' ], - #category : #'Pyramid-models' + #category : 'Pyramid-models' } { #category : #signalling } diff --git a/src/Pyramid/PyramidSpCodeObjectInteractionModel.class.st b/src/Pyramid/PyramidSpCodeObjectInteractionModel.class.st index 5ae77801..15200275 100644 --- a/src/Pyramid/PyramidSpCodeObjectInteractionModel.class.st +++ b/src/Pyramid/PyramidSpCodeObjectInteractionModel.class.st @@ -4,7 +4,7 @@ Class { #instVars : [ 'projectModel' ], - #category : #'Pyramid-plugin-playground' + #category : 'Pyramid-plugin-playground' } { #category : #accessing } diff --git a/src/Pyramid/PyramidSpPresenter.class.st b/src/Pyramid/PyramidSpPresenter.class.st index 2939f972..3e3c884c 100644 --- a/src/Pyramid/PyramidSpPresenter.class.st +++ b/src/Pyramid/PyramidSpPresenter.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidSpPresenter, #superclass : #SpPresenter, - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #accessing } diff --git a/src/Pyramid/PyramidSwitchInputStrings.class.st b/src/Pyramid/PyramidSwitchInputStrings.class.st index 5304a8ef..f7c1c547 100644 --- a/src/Pyramid/PyramidSwitchInputStrings.class.st +++ b/src/Pyramid/PyramidSwitchInputStrings.class.st @@ -6,7 +6,7 @@ Class { 'offLabel', 'uncertainLabel' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #initialization } diff --git a/src/Pyramid/PyramidTabItem.class.st b/src/Pyramid/PyramidTabItem.class.st index b2277756..90a32b64 100644 --- a/src/Pyramid/PyramidTabItem.class.st +++ b/src/Pyramid/PyramidTabItem.class.st @@ -7,7 +7,7 @@ Class { 'label', 'icon' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #comparing } diff --git a/src/Pyramid/PyramidTabPanelBuilder.class.st b/src/Pyramid/PyramidTabPanelBuilder.class.st index b2f5aa0c..71065a73 100644 --- a/src/Pyramid/PyramidTabPanelBuilder.class.st +++ b/src/Pyramid/PyramidTabPanelBuilder.class.st @@ -5,7 +5,7 @@ Class { 'presenter', 'item' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #accessing } diff --git a/src/Pyramid/PyramidTextInputPresenter.class.st b/src/Pyramid/PyramidTextInputPresenter.class.st index a3323814..81f20676 100644 --- a/src/Pyramid/PyramidTextInputPresenter.class.st +++ b/src/Pyramid/PyramidTextInputPresenter.class.st @@ -8,7 +8,7 @@ Class { #instVars : [ 'textInput' ], - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/PyramidToolbarItem.class.st b/src/Pyramid/PyramidToolbarItem.class.st index 1872c58a..b31fc578 100644 --- a/src/Pyramid/PyramidToolbarItem.class.st +++ b/src/Pyramid/PyramidToolbarItem.class.st @@ -6,7 +6,7 @@ Class { 'constraints', 'order' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #comparing } diff --git a/src/Pyramid/PyramidToolbarPanelBuilder.class.st b/src/Pyramid/PyramidToolbarPanelBuilder.class.st index cb40c62d..8adfdd4e 100644 --- a/src/Pyramid/PyramidToolbarPanelBuilder.class.st +++ b/src/Pyramid/PyramidToolbarPanelBuilder.class.st @@ -5,7 +5,7 @@ Class { 'item', 'isHorizontal' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #accessing } diff --git a/src/Pyramid/PyramidUnknowState.class.st b/src/Pyramid/PyramidUnknowState.class.st index 8ac2ac34..052394ad 100644 --- a/src/Pyramid/PyramidUnknowState.class.st +++ b/src/Pyramid/PyramidUnknowState.class.st @@ -1,7 +1,7 @@ Class { #name : #PyramidUnknowState, #superclass : #Object, - #category : #'Pyramid-specs-custom' + #category : 'Pyramid-specs-custom' } { #category : #comparing } diff --git a/src/Pyramid/PyramidWindow.class.st b/src/Pyramid/PyramidWindow.class.st index 6b4fdc96..e5b0012f 100644 --- a/src/Pyramid/PyramidWindow.class.st +++ b/src/Pyramid/PyramidWindow.class.st @@ -8,7 +8,7 @@ Class { 'spec', 'whenClosedDo' ], - #category : #'Pyramid-views' + #category : 'Pyramid-views' } { #category : #'window - properties' } diff --git a/src/Pyramid/TPyramidFindPlugin.trait.st b/src/Pyramid/TPyramidFindPlugin.trait.st index 79944593..d6ae1080 100644 --- a/src/Pyramid/TPyramidFindPlugin.trait.st +++ b/src/Pyramid/TPyramidFindPlugin.trait.st @@ -1,6 +1,6 @@ Trait { #name : #TPyramidFindPlugin, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #'as yet unclassified' } diff --git a/src/Pyramid/TPyramidPlugin.trait.st b/src/Pyramid/TPyramidPlugin.trait.st index 20e56c9a..5472abad 100644 --- a/src/Pyramid/TPyramidPlugin.trait.st +++ b/src/Pyramid/TPyramidPlugin.trait.st @@ -1,6 +1,6 @@ Trait { #name : #TPyramidPlugin, - #category : #'Pyramid-core' + #category : 'Pyramid-core' } { #category : #initialization }