From c265031d5d3e33f213e435a8d287e60a05f4c6b8 Mon Sep 17 00:00:00 2001 From: Soufyane Labsari <75275113+LABSARI@users.noreply.github.com> Date: Mon, 18 Sep 2023 12:21:02 +0200 Subject: [PATCH 01/10] Regroup all hierarchical visualisations under MiAbstractHierarchicalVisualization in order to unify selection for propagation in visualizations. Fix #906 --- .../MiButterflyMapVisualization.class.st | 16 +-------------- .../MiArchitecturalMapBrowser.class.st | 15 +------------- .../MiArchitecturalMapVisualization.class.st | 11 +--------- .../MiDMVisualization.class.st | 5 +---- .../MiLayerVisualization.class.st | 12 +---------- ...AbstractHierarchicalVisualization.class.st | 20 +++++++++++++++++++ .../MiAbstractVisualization.class.st | 9 ++++++++- .../MiSystemComplexityBrowser.class.st | 11 +--------- .../MiSystemComplexityVisualization.class.st | 2 +- 9 files changed, 35 insertions(+), 66 deletions(-) create mode 100644 src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st diff --git a/src/MooseIDE-ButterflyMap/MiButterflyMapVisualization.class.st b/src/MooseIDE-ButterflyMap/MiButterflyMapVisualization.class.st index 7323935a1..7198bbdee 100644 --- a/src/MooseIDE-ButterflyMap/MiButterflyMapVisualization.class.st +++ b/src/MooseIDE-ButterflyMap/MiButterflyMapVisualization.class.st @@ -3,24 +3,10 @@ Butterfly visualization. " Class { #name : #MiButterflyMapVisualization, - #superclass : #MiAbstractVisualization, - #instVars : [ - 'builder' - ], + #superclass : #MiAbstractHierarchicalVisualization, #category : #'MooseIDE-ButterflyMap-Browser' } -{ #category : #running } -MiButterflyMapVisualization >> builder [ - - ^ builder -] - -{ #category : #highlighting } -MiButterflyMapVisualization >> highlightShapes [ - -] - { #category : #running } MiButterflyMapVisualization >> model [ diff --git a/src/MooseIDE-Dependency/MiArchitecturalMapBrowser.class.st b/src/MooseIDE-Dependency/MiArchitecturalMapBrowser.class.st index 190d1a88f..83f54bccf 100644 --- a/src/MooseIDE-Dependency/MiArchitecturalMapBrowser.class.st +++ b/src/MooseIDE-Dependency/MiArchitecturalMapBrowser.class.st @@ -22,10 +22,7 @@ Controls: " Class { #name : #MiArchitecturalMapBrowser, - #superclass : #MiAbstractBrowser, - #instVars : [ - 'visualization' - ], + #superclass : #MiAbstractVisualizationBrowser, #category : #'MooseIDE-Dependency-ArchitecturalMap' } @@ -154,16 +151,6 @@ MiArchitecturalMapBrowser >> initializePresenters [ self initializeLayout ] -{ #category : #accessing } -MiArchitecturalMapBrowser >> miSelectedItem [ - - ^visualization canvas selectedShapes - ifEmpty: [ specModel entities mooseInterestingEntity ] - ifNotEmpty: [ :selectedShapes | - (selectedShapes collect: [:shape | shape model rawModel]) - asMooseGroup ] -] - { #category : #actions } MiArchitecturalMapBrowser >> runVisualization [ diff --git a/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st b/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st index 9f536a9c3..a62533cfa 100644 --- a/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st +++ b/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st @@ -6,19 +6,10 @@ Handle interactions. " Class { #name : #MiArchitecturalMapVisualization, - #superclass : #MiAbstractVisualization, - #instVars : [ - 'builder' - ], + #superclass : #MiAbstractHierarchicalVisualization, #category : #'MooseIDE-Dependency-ArchitecturalMap' } -{ #category : #accessing } -MiArchitecturalMapVisualization >> builder [ - - ^ builder -] - { #category : #highlighting } MiArchitecturalMapVisualization >> highlightShapes [ diff --git a/src/MooseIDE-Dependency/MiDMVisualization.class.st b/src/MooseIDE-Dependency/MiDMVisualization.class.st index 32e9d054c..a68661115 100644 --- a/src/MooseIDE-Dependency/MiDMVisualization.class.st +++ b/src/MooseIDE-Dependency/MiDMVisualization.class.st @@ -5,10 +5,7 @@ I am a visualization, using a builder to draw a distribution map [1] on my canva " Class { #name : #MiDMVisualization, - #superclass : #MiAbstractVisualization, - #instVars : [ - 'builder' - ], + #superclass : #MiAbstractHierarchicalVisualization, #category : #'MooseIDE-Dependency-DistributionMap' } diff --git a/src/MooseIDE-LayerVisualization/MiLayerVisualization.class.st b/src/MooseIDE-LayerVisualization/MiLayerVisualization.class.st index 8f0c53c2c..af4b12309 100644 --- a/src/MooseIDE-LayerVisualization/MiLayerVisualization.class.st +++ b/src/MooseIDE-LayerVisualization/MiLayerVisualization.class.st @@ -4,20 +4,10 @@ I have a canvas and I use a builder (MiLayerVisualizationBuilder). " Class { #name : #MiLayerVisualization, - #superclass : #MiAbstractVisualization, - #instVars : [ - 'builder' - ], + #superclass : #MiAbstractHierarchicalVisualization, #category : #'MooseIDE-LayerVisualization-Presenters' } -{ #category : #highlighting } -MiLayerVisualization >> highlightShapes [ - - - -] - { #category : #accessing } MiLayerVisualization >> model [ diff --git a/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st b/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st new file mode 100644 index 000000000..8a2de538c --- /dev/null +++ b/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st @@ -0,0 +1,20 @@ +Class { + #name : #MiAbstractHierarchicalVisualization, + #superclass : #MiAbstractVisualization, + #instVars : [ + 'builder' + ], + #category : #'MooseIDE-Visualization-Helpers' +} + +{ #category : #accessing } +MiAbstractHierarchicalVisualization >> builder [ + + ^ builder +] + +{ #category : #accessing } +MiAbstractHierarchicalVisualization >> builder: anObject [ + + builder := anObject +] diff --git a/src/MooseIDE-Visualization/MiAbstractVisualization.class.st b/src/MooseIDE-Visualization/MiAbstractVisualization.class.st index 2106b1e07..f9d473d01 100644 --- a/src/MooseIDE-Visualization/MiAbstractVisualization.class.st +++ b/src/MooseIDE-Visualization/MiAbstractVisualization.class.st @@ -21,7 +21,8 @@ MiAbstractVisualization >> highlightColor [ { #category : #highlighting } MiAbstractVisualization >> highlightEntities: someEntities [ - self highlightedEntities: someEntities. + + self highlightedEntities: someEntities asMooseGroup. self highlightShapes. self canvas signalUpdate ] @@ -50,6 +51,12 @@ MiAbstractVisualization >> initialize [ self script: [ :canvas | canvas @ RSCanvasController new noLegend ] ] +{ #category : #accessing } +MiAbstractVisualization >> miSelectedItem [ + + ^ self canvas selectedShapes collect: [ :shape | shape model ] +] + { #category : #helpers } MiAbstractVisualization >> noHighlightColorFor: anEntity [ ^ self theme selectionColor diff --git a/src/MooseIDE-Visualization/MiSystemComplexityBrowser.class.st b/src/MooseIDE-Visualization/MiSystemComplexityBrowser.class.st index 8ea0c36e4..5774112be 100644 --- a/src/MooseIDE-Visualization/MiSystemComplexityBrowser.class.st +++ b/src/MooseIDE-Visualization/MiSystemComplexityBrowser.class.st @@ -22,10 +22,7 @@ Controls: " Class { #name : #MiSystemComplexityBrowser, - #superclass : #MiAbstractBrowser, - #instVars : [ - 'visualization' - ], + #superclass : #MiAbstractVisualizationBrowser, #category : #'MooseIDE-Visualization-System Complexity' } @@ -117,12 +114,6 @@ MiSystemComplexityBrowser >> initializePresenters [ self initializeLayout ] -{ #category : #accessing } -MiSystemComplexityBrowser >> miSelectedItem [ - - ^ specModel entities -] - { #category : #actions } MiSystemComplexityBrowser >> settings [ diff --git a/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st b/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st index 44187a564..dfb86e367 100644 --- a/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st +++ b/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st @@ -1,6 +1,6 @@ Class { #name : #MiSystemComplexityVisualization, - #superclass : #MiAbstractVisualization, + #superclass : #MiAbstractHierarchicalVisualization, #category : #'MooseIDE-Visualization-System Complexity' } From f616aeda0c0cef3d7d7eec6ff36c18c80eadf12d Mon Sep 17 00:00:00 2001 From: Soufyane Labsari <75275113+LABSARI@users.noreply.github.com> Date: Mon, 18 Sep 2023 12:22:27 +0200 Subject: [PATCH 02/10] Add shape highlighting for browsers using visualization (MiAbstractVisualization). --- src/MooseIDE-Core/MiAbstractBrowser.class.st | 4 +-- .../MiAbstractVisualizationBrowser.class.st | 31 +++++++++++++++++++ .../MiArchitecturalMapVisualization.class.st | 6 ---- .../MiDMVisualization.class.st | 5 --- ...AbstractHierarchicalVisualization.class.st | 17 ++++++++++ .../MiHierarchicalVisualization.class.st | 8 +---- .../MiSystemComplexityVisualization.class.st | 6 ---- 7 files changed, 51 insertions(+), 26 deletions(-) create mode 100644 src/MooseIDE-Core/MiAbstractVisualizationBrowser.class.st diff --git a/src/MooseIDE-Core/MiAbstractBrowser.class.st b/src/MooseIDE-Core/MiAbstractBrowser.class.st index 8eb7823ba..b30e92ee6 100644 --- a/src/MooseIDE-Core/MiAbstractBrowser.class.st +++ b/src/MooseIDE-Core/MiAbstractBrowser.class.st @@ -344,7 +344,7 @@ MiAbstractBrowser >> canFollowEntity: anObject [ self subclassResponsibility ] -{ #category : #testing } +{ #category : #highlighting } MiAbstractBrowser >> canHighlight [ "Override to retrun true if you want to give your browser a highlight behavior. @@ -415,7 +415,7 @@ MiAbstractBrowser >> hasSettings [ ^false ] -{ #category : #actions } +{ #category : #highlighting } MiAbstractBrowser >> highlightEntity: anEntity [ "Override to add behavior on highlight. diff --git a/src/MooseIDE-Core/MiAbstractVisualizationBrowser.class.st b/src/MooseIDE-Core/MiAbstractVisualizationBrowser.class.st new file mode 100644 index 000000000..cf2a74581 --- /dev/null +++ b/src/MooseIDE-Core/MiAbstractVisualizationBrowser.class.st @@ -0,0 +1,31 @@ +Class { + #name : #MiAbstractVisualizationBrowser, + #superclass : #MiAbstractBrowser, + #instVars : [ + 'visualization' + ], + #category : #'MooseIDE-Core-Browser' +} + +{ #category : #actions } +MiAbstractVisualizationBrowser >> canHighlight [ + + ^ true +] + +{ #category : #highlighting } +MiAbstractVisualizationBrowser >> highlightEntity: entities [ + + + visualization highlightEntities: entities +] + +{ #category : #accessing } +MiAbstractVisualizationBrowser >> miSelectedItem [ + + ^visualization canvas selectedShapes + ifEmpty: [ specModel entities mooseInterestingEntity ] + ifNotEmpty: [ :selectedShapes | + (selectedShapes collect: [:shape | shape model rawModel]) + asMooseGroup ] +] diff --git a/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st b/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st index a62533cfa..123d78c52 100644 --- a/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st +++ b/src/MooseIDE-Dependency/MiArchitecturalMapVisualization.class.st @@ -10,12 +10,6 @@ Class { #category : #'MooseIDE-Dependency-ArchitecturalMap' } -{ #category : #highlighting } -MiArchitecturalMapVisualization >> highlightShapes [ - - -] - { #category : #running } MiArchitecturalMapVisualization >> run [ diff --git a/src/MooseIDE-Dependency/MiDMVisualization.class.st b/src/MooseIDE-Dependency/MiDMVisualization.class.st index a68661115..3ebad3061 100644 --- a/src/MooseIDE-Dependency/MiDMVisualization.class.st +++ b/src/MooseIDE-Dependency/MiDMVisualization.class.st @@ -9,11 +9,6 @@ Class { #category : #'MooseIDE-Dependency-DistributionMap' } -{ #category : #highlighting } -MiDMVisualization >> highlightShapes [ - -] - { #category : #running } MiDMVisualization >> run [ diff --git a/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st b/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st index 8a2de538c..1e46a4d16 100644 --- a/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st +++ b/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st @@ -18,3 +18,20 @@ MiAbstractHierarchicalVisualization >> builder: anObject [ builder := anObject ] + +{ #category : #highlighting } +MiAbstractHierarchicalVisualization >> highlightShapes [ + + self canvas setSelectedShapes: + (self canvas shapes select: [ :shape | + shape isLine not and: [ + shape model notNil and: [ + highlightedEntities includes: shape model rawModel ] ] ]) +] + +{ #category : #accessing } +MiAbstractHierarchicalVisualization >> miSelectedItem [ + + ^ self canvas selectedShapes collect: [ :shape | + shape model rawModel ] +] diff --git a/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st b/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st index 4609ceacc..b1cad92fa 100644 --- a/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st +++ b/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st @@ -1,9 +1,8 @@ Class { #name : #MiHierarchicalVisualization, - #superclass : #MiAbstractVisualization, + #superclass : #MiAbstractHierarchicalVisualization, #instVars : [ 'rootNode', - 'builder', 'childrenBlock', 'visualizationTheme' ], @@ -25,11 +24,6 @@ MiHierarchicalVisualization >> entities: aCollection [ (aCollection collect: [ :entity | self nodeFor: entity ]) ] -{ #category : #highlighting } -MiHierarchicalVisualization >> highlightShapes [ - -] - { #category : #initialization } MiHierarchicalVisualization >> initialize [ diff --git a/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st b/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st index dfb86e367..a64f26597 100644 --- a/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st +++ b/src/MooseIDE-Visualization/MiSystemComplexityVisualization.class.st @@ -4,12 +4,6 @@ Class { #category : #'MooseIDE-Visualization-System Complexity' } -{ #category : #highlighting } -MiSystemComplexityVisualization >> highlightShapes [ - - -] - { #category : #accessing } MiSystemComplexityVisualization >> model [ From 0e49ccc883b84ed2d27051e8576203737ac69b46 Mon Sep 17 00:00:00 2001 From: Soufyane Labsari <75275113+LABSARI@users.noreply.github.com> Date: Mon, 18 Sep 2023 14:38:31 +0200 Subject: [PATCH 03/10] Add highlight selection and and propagation of selected entities in Distribution map. --- src/MooseIDE-Dependency/MiDMBrowser.class.st | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/MooseIDE-Dependency/MiDMBrowser.class.st b/src/MooseIDE-Dependency/MiDMBrowser.class.st index 3642cfdd9..ddeeeefa8 100644 --- a/src/MooseIDE-Dependency/MiDMBrowser.class.st +++ b/src/MooseIDE-Dependency/MiDMBrowser.class.st @@ -22,10 +22,7 @@ Controls: " Class { #name : #MiDMBrowser, - #superclass : #MiAbstractBrowser, - #instVars : [ - 'visualization' - ], + #superclass : #MiAbstractVisualizationBrowser, #category : #'MooseIDE-Dependency-DistributionMap' } @@ -146,12 +143,6 @@ MiDMBrowser >> initializePresenters [ self initializeLayout ] -{ #category : #accessing } -MiDMBrowser >> miSelectedItem [ - - ^ specModel entities mooseInterestingEntity -] - { #category : #actions } MiDMBrowser >> runVisualization [ From 42560a2d65b3b5bfd702f7339daa2d5db190bb66 Mon Sep 17 00:00:00 2001 From: Soufyane Labsari <75275113+LABSARI@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:10:36 +0200 Subject: [PATCH 04/10] Refactoring shape selection for all visualizations. --- .../MiButterflyMapBrowser.class.st | 11 +---------- ...iAbstractHierarchicalVisualization.class.st | 7 ++----- .../MiAbstractVisualization.class.st | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/MooseIDE-ButterflyMap/MiButterflyMapBrowser.class.st b/src/MooseIDE-ButterflyMap/MiButterflyMapBrowser.class.st index b0396273a..baa1f5a03 100644 --- a/src/MooseIDE-ButterflyMap/MiButterflyMapBrowser.class.st +++ b/src/MooseIDE-ButterflyMap/MiButterflyMapBrowser.class.st @@ -25,10 +25,7 @@ Controls: " Class { #name : #MiButterflyMapBrowser, - #superclass : #MiAbstractBrowser, - #instVars : [ - 'visualization' - ], + #superclass : #MiAbstractVisualizationBrowser, #category : #'MooseIDE-ButterflyMap-Browser' } @@ -125,12 +122,6 @@ MiButterflyMapBrowser >> itemsFor: aClass [ ^ self application itemsFor: aClass ] -{ #category : #accessing } -MiButterflyMapBrowser >> miSelectedItem [ - - ^ specModel currentEntity -] - { #category : #running } MiButterflyMapBrowser >> run [ diff --git a/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st b/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st index 1e46a4d16..4de319f74 100644 --- a/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st +++ b/src/MooseIDE-Visualization/MiAbstractHierarchicalVisualization.class.st @@ -22,11 +22,8 @@ MiAbstractHierarchicalVisualization >> builder: anObject [ { #category : #highlighting } MiAbstractHierarchicalVisualization >> highlightShapes [ - self canvas setSelectedShapes: - (self canvas shapes select: [ :shape | - shape isLine not and: [ - shape model notNil and: [ - highlightedEntities includes: shape model rawModel ] ] ]) + self selectShapes: + (self shapesWithModel: [ :shape | shape model rawModel ]) ] { #category : #accessing } diff --git a/src/MooseIDE-Visualization/MiAbstractVisualization.class.st b/src/MooseIDE-Visualization/MiAbstractVisualization.class.st index f9d473d01..1c8a19a71 100644 --- a/src/MooseIDE-Visualization/MiAbstractVisualization.class.st +++ b/src/MooseIDE-Visualization/MiAbstractVisualization.class.st @@ -29,9 +29,8 @@ MiAbstractVisualization >> highlightEntities: someEntities [ { #category : #highlighting } MiAbstractVisualization >> highlightShapes [ - "Override to react to Midas highlight action" - self subclassResponsibility + self selectShapes: (self shapesWithModel: [ :shape | shape model ]) ] { #category : #accessing } @@ -67,6 +66,21 @@ MiAbstractVisualization >> run [ self refresh ] +{ #category : #highlighting } +MiAbstractVisualization >> selectShapes: shapes [ + + self canvas setSelectedShapes: shapes +] + +{ #category : #highlighting } +MiAbstractVisualization >> shapesWithModel: aBlock [ + "aBlock should return the model of a shape." + ^ self canvas shapes select: [ :shape | + shape isLine not and: [ + shape model notNil and: [ + highlightedEntities includes: (aBlock value: shape) ] ] ] +] + { #category : #highlighting } MiAbstractVisualization >> unHighlight [ highlightedEntities := MooseGroup new From 2215e0e7af28d8ec026f4b5f240a50b6e06271da Mon Sep 17 00:00:00 2001 From: Soufyane Labsari <75275113+LABSARI@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:19:05 +0200 Subject: [PATCH 05/10] Remove old hierarchical visualization. Now it is architectural visualization. --- .../MiHierarchicalVisualizationTest.class.st | 37 -------- .../MiHierarchicalVisualization.class.st | 87 ------------------- ...iHierarchicalVisualizationBrowser.class.st | 86 ------------------ 3 files changed, 210 deletions(-) delete mode 100644 src/MooseIDE-Tests/MiHierarchicalVisualizationTest.class.st delete mode 100644 src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st delete mode 100644 src/MooseIDE-Visualization/MiHierarchicalVisualizationBrowser.class.st diff --git a/src/MooseIDE-Tests/MiHierarchicalVisualizationTest.class.st b/src/MooseIDE-Tests/MiHierarchicalVisualizationTest.class.st deleted file mode 100644 index 347ec7f6f..000000000 --- a/src/MooseIDE-Tests/MiHierarchicalVisualizationTest.class.st +++ /dev/null @@ -1,37 +0,0 @@ -Class { - #name : #MiHierarchicalVisualizationTest, - #superclass : #TestCase, - #instVars : [ - 'viz' - ], - #category : #'MooseIDE-Tests-Browsers' -} - -{ #category : #tests } -MiHierarchicalVisualizationTest >> setUp [ - super setUp. - viz := MiHierarchicalVisualization new. - viz childrenBlock: [ :any | #() ] - -] - -{ #category : #tests } -MiHierarchicalVisualizationTest >> testDefaultNodeIconForClass [ - - self assert: (viz nodeFor: FamixJavaClass new) iconName equals: #famixClass -] - -{ #category : #tests } -MiHierarchicalVisualizationTest >> testDefaultNodeIconForUnknown [ - - self assert: (viz nodeFor: FamixJavaComment new) iconName equals: nil -] - -{ #category : #tests } -MiHierarchicalVisualizationTest >> testNodeName [ - | entity | - entity := FamixJavaClass new - name: #blah ; - yourself. - self assert: (viz nodeFor: entity) name equals: #blah -] diff --git a/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st b/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st deleted file mode 100644 index b1cad92fa..000000000 --- a/src/MooseIDE-Visualization/MiHierarchicalVisualization.class.st +++ /dev/null @@ -1,87 +0,0 @@ -Class { - #name : #MiHierarchicalVisualization, - #superclass : #MiAbstractHierarchicalVisualization, - #instVars : [ - 'rootNode', - 'childrenBlock', - 'visualizationTheme' - ], - #category : #'MooseIDE-Visualization-Hierarchical Visualization' -} - -{ #category : #accessing } -MiHierarchicalVisualization >> childrenBlock: aBlock [ - - "a block with one parameter: entity that return the list of children of this entity" - - childrenBlock := aBlock -] - -{ #category : #running } -MiHierarchicalVisualization >> entities: aCollection [ - - rootNode children: - (aCollection collect: [ :entity | self nodeFor: entity ]) -] - -{ #category : #initialization } -MiHierarchicalVisualization >> initialize [ - - super initialize. - rootNode := HNode new name: 'Root'. - visualizationTheme := MiVisualizationTheme new - -] - -{ #category : #running } -MiHierarchicalVisualization >> mooseIconNameFor: anEntity [ - ^self visualizationTheme mooseIconNameFor: anEntity -] - -{ #category : #running } -MiHierarchicalVisualization >> nodeColor [ - - ^ Color - r: 0.68 - g: 0.83 - b: 0.97 - alpha: 0.4 -] - -{ #category : #running } -MiHierarchicalVisualization >> nodeFor: entity [ - - | node | - node := HNode new - name: entity name ; - color: self nodeColor ; - iconName: (self mooseIconNameFor: entity) ; - yourself. - - node addAll: ((childrenBlock value: entity) collect: [ :child | - (self nodeFor: child) collapse ]). - ^ node -] - -{ #category : #running } -MiHierarchicalVisualization >> run [ - - super run. - builder := HSimpleVisualizationBuilder new - nodeStyler: MiNodeStyler new ; - rootNode: rootNode ; - container: self canvas ; - yourself. - builder build. - self canvas zoomToFit -] - -{ #category : #accessing } -MiHierarchicalVisualization >> visualizationTheme [ - ^visualizationTheme -] - -{ #category : #accessing } -MiHierarchicalVisualization >> visualizationTheme: anObject [ - visualizationTheme := anObject -] diff --git a/src/MooseIDE-Visualization/MiHierarchicalVisualizationBrowser.class.st b/src/MooseIDE-Visualization/MiHierarchicalVisualizationBrowser.class.st deleted file mode 100644 index 2837bb098..000000000 --- a/src/MooseIDE-Visualization/MiHierarchicalVisualizationBrowser.class.st +++ /dev/null @@ -1,86 +0,0 @@ -" -I am a browser that displays hierarchical visualization. - -Controls: - -* Mouse over to highlight common inner boxes -* Mouse click to keep the highlight -* right click over a box, to use the menu -* right click over the view to use the general menu -* command+click to use the last tag. - -* Mouse left to drag -* Arrrow keys to move the visualization around -* Scrolls bars to change the view's position -* M to collapse or expand the window -* I to zoom in -* O to zoom out -* Moouse Wheel to zoom in/out -* S to search entities by their name (several search can be applied) -* R to clear all searches -" -Class { - #name : #MiHierarchicalVisualizationBrowser, - #superclass : #MiAbstractBrowser, - #instVars : [ - 'diagram' - ], - #category : #'MooseIDE-Visualization-Hierarchical Visualization' -} - -{ #category : #menu } -MiHierarchicalVisualizationBrowser class >> addToMiBrowsersMenu: aMenuGroupPresenter [ - - "Do not appear in menu" - - -] - -{ #category : #layout } -MiHierarchicalVisualizationBrowser class >> defaultLayout [ - - ^ super defaultLayout - add: #diagram; - yourself -] - -{ #category : #'instance creation' } -MiHierarchicalVisualizationBrowser class >> open [ - -