78 lines
1.7 KiB
Smalltalk
78 lines
1.7 KiB
Smalltalk
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
|
|
]
|