[ https://issues.apache.org/jira/browse/PIVOT-850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16048364#comment-16048364 ]
Roger Whitcomb commented on PIVOT-850:
First cut of IME support in TextPane (complicated):
PIVOT-850: First round of changes to allow Input Method Editors to work
with TextPane. This involves several things:
1. Change AttributedStringCharacterIterator to add new methods to
attach underline and strikethrough attributes to a complete string.
Make a new private method to attach attributes, and use that for
existing code (such as for Font) as well.
2. Add the required method call to return the TextInputMethodListener
interface for the component.
3. Implement that interface, similarly to TerraTextInputSkin.
4. Make necessary changes in TextPaneSkinTextNodeView.java to paint
text using TextLayout instead of GlyphVector; do layout using the
composed text as well as the committed text (again resulting in
4a. Using LineBreakMeasurer now to do line wrapping, which results
in a TextLayout as is needed.
4b. Using the underline and strikethrough attributes available through
TextLayout instead of drawing them ourselves.
4c. Using the TextLayout and TextHitInfo classes to compute caret
position and insertion points.
5. Store and retrieve the composed text inside TextPane itself.
6. Allow for any composed text length in "setSelection" logic.
7.. Update the TextPaneDemo program to work a little better (pressing
the style buttons puts focus back on the TextPane; correct some of
the Span construction so the correct amount of text is affected).
Along the way did some other things:
A. Use Utils.checkXXX methods where applicable to validate parameters.
B. Simplify the code in some of the methods that look up the tree for
attributes in their parents.
C. (Hopefully) speed up the process of creating the NodeView objects
in TextPaneSkinNodeView by not using reflection to find and call
the object constructors, but a simple interface/callback to do so.
D. Add some Javadoc.
E. Use the new ApplicationContext.runAndScheduleRecurringCallback for
scrolling and caret blink.
F. Add a new "setSize(Dimensions)" method to TextPaneSkinNodeView for
use by subclasses.
G. Changed some "toString()" methods to be similar to changes made
earlier to "Bounds", "Point", etc.
Note: There are still issues in this code to be worked out (and so
some debugging code has been left in for now):
a. Caret positioning for composed text at the end of lines is incorrect.
b. Sometimes duplicated or missing composed text is displayed.
c. There may be other times when selection outside of composed text
messes things up.
> Fail to take input characters other than English in Mac Lion
> Key: PIVOT-850
> URL: https://issues.apache.org/jira/browse/PIVOT-850
> Project: Pivot
> Issue Type: Bug
> Components: wtk, wtk-terra
> Affects Versions: 2.0.1, 2.0.2, 2.0.3
> Environment: Mac Lion
> Reporter: Brendan
> Assignee: Roger Whitcomb
> Labels: jre, mac
> Fix For: 2.5
> Attachments: ASF.LICENSE.NOT.GRANTED--Input to Mac Lion of Chinese Character show nothing.jpg, ASF.LICENSE.NOT.GRANTED--Window 7 and Text Area to show Chinese Input as Box.jpg, inputProblem.png, Screen Shot 2013-03-11 at 10.56.51 AM.png, Screen Shot 2013-03-11 at 10.59.23 AM.png, Screen Shot 2013-03-11 at 11.00.14 AM.png, WebStartInput.png
> In Mac Lion, no Chinese and Korean character can appear in TextInput and TextArea thru the input method.
> However, these components can take the character thru copy and paste.
This message was sent by Atlassian JIRA
|Free forum by Nabble||Edit this page|