Why not TxBaseEditDecorator ?
On Tue, May 21, 2013 at 9:23 AM, stephane ducasse <[email protected]>wrote: > > I named it "none" edit decorator because It actually not performs any > decoration around basic editing operations. TxNoneEditDecorator just > performs it. > > > Yes this is what TxNullEditDecorator would convey. I do not see why > TxNoneEditDecorator would mean that and not the TxNullEditDecorator. > > Concrete edit decorator can execute specific action on text to perform > requested edit operation. There are three edit operations: > #insertCharacters:at:, #removeNextCharacterAt:, > #removePreviousCharacterAt:. They take aTextSelection as "at" argument. > For example TxInsertModeEditDecorator extends text selection before > characters insertion: > > TxInsertModeEditDecorato>>insertCharacters: aString at: aTextSelection > aTextSelection isEmpty ifTrue: [aTextSelection end moveRight: aString > size] > aTextSelection replaceWith: aString > > > Yes my point is still valid. > the NullDecorator does not decorate. > > > >> > TxMaskedEditDecorator- input masked values like phone numbers >> > TxInsertModeEditDecorator - input with "insert mode" where any new >> character >> > replace next one. >> insert mode is actually opposite - inserts when you type. >> replace mode is replaces when you type. >> > > I choose this name because on Windows you have "insert key" to activate > such mode in many text editors. > > > I think that igor suggestion is better. because replace is replace :) and > insert is insert. > > > > > > >> >> > TxSmartCharsEditDecorator- input smart characters like ()[]{} >> > TxSingleLineEditDecorator - general way to decorate editing with simple >> > decoration format. TxSmartNumbersDecorationFormat is example. It >> transform >> > text with number format like: '10 000 000' or '10'000'000'. >> > >> btw, can you wrap decorators on top of each other i.e. >> >> Masked-SimgleLine >> so i could have a single-line editor for entering only a phone number? >> > > Now with mask decorator you have single line text field. Multilined mask > is not supported (I dont try it actually). When you insert miltiline text > to masked field only first line will be used. I make such restriction to > simplify implementation. Actually I never see multilined masked field. > > Decorators can not be wrapped in general way. Maybe some of it. But there > is no cases in current decorators. > Main reason: most of decorators change cursor position with very specific > way. And wrapping decorators will lead to unpredictable and useless results. > > Your example Masked-SingleLine (if mask can be multilined) is not about > wrapping decorators. It is about input "filtering" . It is my next task. I > want put at text morph specification of correct input. So you can forbid > "cr" characters, can allow only numbers and etc. > And at same time decorators can restrict input by its implementation > requirements which happens with masked decorator. But edit decorators and > "filters" are different concepts (I not choose name for "filters" yet). > > TxSingleLineEditDecorator implements general way to edit single line text > with simple decoration format. Maybe it should be renamed. > TxSingleLineEditDecorator transforms full text by decoration format after > any edit operation. And it saves logical cursor position after > transformation. Look at methods of TxSmartNumbersDecorationFormat as > example. > > I will be happy if you introduce more clever names. Good names is > difficult task for single brain. Especially if you are not native english > speaker. > But many of you already suggest different names. How we can agree on any > one? > > Best regards, > Denis > > >> also, going ahead.. how easy/hard would be to implement a password input >> field, >> when model contains what user types, but display all *** chars? >> >> > According methods were added to TxTextMorph: >> > >> > #editDecorator: - set specific edit decorator (TxNoneEditDecorator by >> > default) >> > #inputContents - returns "native" value (undecorated). >> > #displayedContents - returns raw text model asString >> > >> > See new examples on TxTextMorph class side. >> > >> > Best regards, >> > Denis >> >> >> >> -- >> Best regards, >> Igor Stasenko. >> >> > >
