2015-05-02 17:27 GMT+02:00 Ben Coman <[email protected]>: > btw, can someone remind we of the semantics of "Pluggable" here, and what > you gain over the unplugged classes? > cheers -ben >
MVC with pluggable controller ? You can plug in the model and define the controller behavrior by supplying the different setter/getter selectors. > > On Sat, May 2, 2015 at 9:19 PM, Nicolai Hess <[email protected]> wrote: > >> I think this is a bug, introduced early in the move from squeak to pharo. >> (It used to work in squeak). >> Although we don't have any use of a "pure" TextMorph (I don't know of any >> place/project, >> either it uses String/LabelMorphs for texts or it uses another >> TextEditorMorph), without any pluggableXXXMorph around it, I think we >> should fix this. >> >> 2015-05-02 12:44 GMT+02:00 Ben Coman <[email protected]>: >> >>> >>> On Sat, May 2, 2015 at 5:31 PM, Stephan Eggermont <[email protected]> >>> wrote: >>> >>>> TextMorph new contents: 'Text'; openInWorld >>> >>> >>> I don't know anything about this area, but thought it would be >>> interesting to dig... >>> >>> There is only one implementor of #editView which is TextMorphEditView, a >>> subclass of TextMorph. But... >>> TextMorphEditView new contents: 'Text'; openInWorld >>> >>> right-click gives... "MessageNotUnderstood: receiver of "model" is nil" >>> in TextMorphEditView>>handleInteraction: >>> in this code... >>> self editor model: editView model. "For evaluateSelection, etc" >>> where /editView/ ivar is nil. Only TextMorphEditView>>setEditView: >>> stores into this, and this has only one sender: >>> PluggableTextMorph>>configureTextMorph: >>> >>> Then I notice method "PluggableTextMorph class >> on: text: accept:", >>> so creating the following with usual accessors with Transcript tracing >>> in them... >>> >>> Object subclass: #MyData >>> instanceVariableNames: 'text' >>> classVariableNames: '' >>> category: 'MyPlay' >>> >>> The following lets me edit and save... >>> (PluggableTextMorph on: (MyData new text: 'hello') text: #text >>> accept: #text:) openInWorld >>> >>> Though saving doesn't clear the yellow triangle and I don't yet know how >>> to restrict it to one line without a scroll bar (if you needed that?) >>> >> >> We have PluggableTextFieldMorph, that is used in >> UITheme>>#newTextEntryIn: aThemedMorph for: aModel get: getSel set: >> setSel class: aClass getEnabled: enabledSel help: helpText >> >> >>> >>> cheers -ben >>> >> >> >
