Text - текстовая последовательность в документе

class Text

Наследник Node

data

Текст, со­дер­жа­щий­ся в дан­ном уз­ле.

length

Дли­на тек­ста в сим­во­лах.

wholeText

Тек­сто­вое со­дер­жи­мое дан­но­го уз­ла и лю­бых смеж­ных с ним тек­сто­вых уз­лов, пред­ше­ст­вую­щих ему и сле­дую­щих за ним. По­сле вы­зо­ва ме­то­да normalize() ро­ди­тель­ско­го эле­мен­та Node это свой­ст­во бу­дет иметь то же зна­че­ние, что и свой­ст­во data.

appendData(string text)

До­бав­ля­ет текст text в ко­нец дан­но­го тек­сто­во­го уз­ла.

deleteData(unsigned long offset, unsigned long count)

Уда­ля­ет count сим­во­лов из дан­но­го тек­сто­во­го уз­ла, на­чи­ная с сим­во­ла в по­зи­ции offset. Ес­ли сум­ма зна­че­ний offset и count пре­вы­сит ко­ли­че­ст­во сим­во­лов в тек­сто­вом уз­ле, бу­дут уда­ле­ны все сим­во­лы до кон­ца стро­ки, на­чи­ная с сим­во­ла в по­зи­ции offset.

insertData(unsigned long offset, string text)

Встав­ля­ет текст text в тек­сто­вый узел в по­зи­цию offset.

replaceData(unsigned long offset, unsigned long count, string text)

За­ме­ща­ет count сим­во­лов, на­чи­ная с по­зи­ции offset, со­дер­жи­мым стро­ки text. Ес­ли сум­ма зна­че­ний offset и count пре­вы­сит зна­че­ние свой­ст­ва length тек­сто­во­го уз­ла, бу­дут за­ме­ще­ны все сим­во­лы, на­чи­ная с по­зи­ции offset.

replaceWholeText(string text)

Соз­да­ет но­вый узел Text, со­дер­жа­щий текст text, а за­тем за­ме­ща­ет дан­ный и смеж­ные с ним тек­сто­вые уз­лы но­вым уз­лом и воз­вра­ща­ет но­вый узел. См. так­же опи­са­ние свой­ст­ва wholeText вы­ше и ме­то­да normalize() ин­тер­фей­са Node.

splitText(unsigned long offset)

Раз­би­ва­ет узел Text на два по сме­ще­нию offset. Ис­ход­ный узел Text мо­ди­фи­ци­ру­ет­ся так, что­бы он со­дер­жал весь текст до сим­во­ла в по­зи­ции offset, но не вклю­чая его. Соз­да­ет­ся но­вый узел, ко­то­рый со­дер­жит все сим­во­лы от по­зи­ции offset (вклю­чая ее) до кон­ца стро­ки. Этот но­вый узел Text яв­ля­ет­ся воз­вра­щае­мым зна­че­ни­ем ме­то­да. Кро­ме то­го, ес­ли ис­ход­ный узел Text име­ет ро­ди­тель­ский узел, то но­вый узел встав­ля­ет­ся в ро­ди­тель­ский узел не­по­сред­ст­вен­но по­сле ис­ход­но­го уз­ла.

substringData(unsigned long offset, unsigned long count)

Из­вле­ка­ет и воз­вра­ща­ет под­стро­ку дли­ной count сим­во­лов, на­чи­наю­щую­ся с сим­во­ла в по­зи­ции offset в тек­сте уз­ла Text. Ес­ли узел Text со­дер­жит слиш­ком боль­шой объ­ем тек­ста, этот ме­тод мо­жет ока­зать­ся бо­лее эф­фек­тив­ным, чем ме­тод String.substring().