[[BackLinksMenu]]

[[TicketQuery(summary=HOT_TEXT_REDESIGN_R4, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]]

= Analysis =
The purpose of this task is to clarify text internals related to indexing of positions and the text history.

== Overview ==
 * Problems and difficulties of the current implementation of text
  * Indexing
   * Calculation of the indexes of HotPoses takes place in ImmHotText.
   * This makes ImmHotText responsible for too many functionality.
  * Text History (needed again for indexing)
   * Each ImmHotText refers to its previous and holds the last operation by which it has be created.
   * This is too complex and makes the history hard to save.
   * The history is not persisted at the moment, but it would be needed for tasks including server interactions and real-time collaboration.
  * The text classes are not well separated into packages (useless packages, etc.).

== Task requirements ==
 * Extraction of most of the responsibities for indexing calculations from ImmHotText.
 * History representation simplifications.
 * History persistence (optional).
 * Appropriate package split of text classes.

== Task result ==
 * The result of this task is source code.

== Implementation idea ==
 * Move indexing responsibility to HotPos.
 * Represent text history as a list of operations.
  * This will make history persistence easier.
 * Remove useless packages (such as the smart package).

== Related ==
 * [wiki:HOT_TEXT_REDESIGN_R0]
 * [wiki:HOT_TEXT_REDESIGN_R1]
 * [wiki:HOT_TEXT_REDESIGN_R2]
 * [wiki:HOT_TEXT_REDESIGN_R3]

== How to demo ==

= Design =
^(Describe your design here.)^

= Implementation =
^(Describe and link the implementation results here (from the wiki or the repository).)^

= Testing =
^(Place the testing results here.)^

= Comments =
^(Write comments for this or later revisions here.)