Class { #name : #GrafoscopioNewTextModel, #superclass : #SpPresenterWithModel, #instVars : [ 'body', 'onModifyNodeLocationDo' ], #category : #'Grafoscopio-New-UI' } { #category : #specs } GrafoscopioNewTextModel class >> defaultSpec [ ^ SpBoxLayout newVertical add: #body; yourself ] { #category : #'as yet unclassified' } GrafoscopioNewTextModel >> body [ ^ body ] { #category : #initialization } GrafoscopioNewTextModel >> contextMenuFromCommandsGroup: aBlock [ ^ body contextMenuFromCommandsGroup: aBlock ] { #category : #initialization } GrafoscopioNewTextModel >> informModification [ onModifyNodeLocationDo ifNotNil: [ onModifyNodeLocationDo cull: self ] ] { #category : #initialization } GrafoscopioNewTextModel >> initialize [ super initialize. ] { #category : #initialization } GrafoscopioNewTextModel >> initializeWidgets [ body := self newText. body text: self model text. body whenTextChangedDo: [ self informModification ] ] { #category : #initialization } GrafoscopioNewTextModel >> inspectNRun [ body text inspectRunAt: (body selectionInterval ifNil: [ body cursorPositionIndex ] ifNotNil: [ :i | i first ]) ] { #category : #initialization } GrafoscopioNewTextModel >> inspectNode [ body text inspectNodeAt: (body selectionInterval ifNil: [ body cursorPositionIndex ] ifNotNil: [ :i | i first ]) ] { #category : #'as yet unclassified' } GrafoscopioNewTextModel >> inspectRuns [ ^ self inspectNRun ] { #category : #initialization } GrafoscopioNewTextModel >> modelChanged [ body text: self model text. ] { #category : #initialization } GrafoscopioNewTextModel >> onModifyNodeLocationDo: aBlock [ onModifyNodeLocationDo := aBlock ]