> # Use Case
> 
> typing into RichTextArea with a default model (or any other model that 
> supports discrete styles), in the presence of a tool bar or similar UI that 
> allows to specify the styles to take effect on the next key press.  Example:
> - open MS Word or another rich text editor such as TextEdit
> - type something
> - place cursor at the middle of the typed text and hit command-B or ctrl-B on 
> Win/Linux
> - notice how the formatting toolbar highlights [b] button indicating that the 
> style for next character to be inserted has changed to bold
> - type something and confirm that inserted text is bold
> the new style is captured only in the toolbar UI, so clicking on some other 
> part of the text reverts the bold button to the unselected state.
> 
> 
> # Problem
>  
> typing a character uses the model's logic to deal with the styles, via 
> StyledTextModel::replace(StyleResolver resolver, TextPos start, TextPos end, 
> String text) method, see RichTextAreaBehavior::handleTypedChar().  This 
> worked well initially, however it makes it impossible (without extending 
> RichTextAreaBehavior which is not a public class) to implement the behavior 
> described earlier.
> 
> 
> # Solution
> 
> - add 'insertStyles<StyleAttributeMap>' property to the RichTextArea, which 
> will override the model styles in RichTextAreaBehavior::handleTypedChar() if 
> the value is not null

Andy Goryachev has updated the pull request incrementally with one additional 
commit since the last revision:

  review comments

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/2017/files
  - new: https://git.openjdk.org/jfx/pull/2017/files/67066b6e..ff264fc0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=2017&range=02
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=2017&range=01-02

  Stats: 8 lines in 2 files changed: 7 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jfx/pull/2017.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2017/head:pull/2017

PR: https://git.openjdk.org/jfx/pull/2017

Reply via email to