# 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

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

Commit messages:
 - test
 - 26
 - Merge branch 'master' into 8374035.insert.styles
 - Merge branch 'master' into 8374035.insert.styles
 - insert styles

Changes: https://git.openjdk.org/jfx/pull/2017/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2017&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8374035
  Stats: 71 lines in 3 files changed: 69 ins; 0 del; 2 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