Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / Utilities.js
index daa5c2c..eac11a9 100644 (file)
-Clazz.declarePackage ("javax.swing.text");\r
-Clazz.load (null, "javax.swing.text.Utilities", ["javax.swing.JComponent", "javax.swing.text.CompositeView", "$.Position", "$.StyleConstants", "$.StyledDocument"], function () {\r
-c$ = Clazz.declareType (javax.swing.text, "Utilities");\r
-c$.getJComponent = Clazz.defineMethod (c$, "getJComponent", \r
-function (view) {\r
-if (view != null) {\r
-var component = view.getContainer ();\r
-if (Clazz.instanceOf (component, javax.swing.JComponent)) {\r
-return component;\r
-}}return null;\r
-}, "javax.swing.text.View");\r
-c$.getTabbedTextWidth = Clazz.defineMethod (c$, "getTabbedTextWidth", \r
-function (s, metrics, x, e, startOffset) {\r
-return javax.swing.text.Utilities.getTabbedTextWidth (null, s, metrics, x, e, startOffset, null);\r
-}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,javax.swing.text.TabExpander,~N");\r
-c$.getTabbedTextWidth = Clazz.defineMethod (c$, "getTabbedTextWidth", \r
-function (view, s, metrics, x, e, startOffset, justificationData) {\r
-var nextX = x;\r
-var txt = s.array;\r
-var txtOffset = s.offset;\r
-var n = s.offset + s.count;\r
-var charCount = 0;\r
-var spaceAddon = 0;\r
-var spaceAddonLeftoverEnd = -1;\r
-var startJustifiableContent = 0;\r
-var endJustifiableContent = 0;\r
-if (justificationData != null) {\r
-var offset = -startOffset + txtOffset;\r
-var parent = null;\r
-if (view != null && (parent = view.getParent ()) != null) {\r
-offset += parent.getStartOffset ();\r
-}spaceAddon = justificationData[0];\r
-spaceAddonLeftoverEnd = justificationData[1] + offset;\r
-startJustifiableContent = justificationData[2] + offset;\r
-endJustifiableContent = justificationData[3] + offset;\r
-}for (var i = txtOffset; i < n; i++) {\r
-if (txt[i] == '\t' || ((spaceAddon != 0 || i <= spaceAddonLeftoverEnd) && (txt[i] == ' ') && startJustifiableContent <= i && i <= endJustifiableContent)) {\r
-nextX += metrics.charsWidth (txt, i - charCount, charCount);\r
-charCount = 0;\r
-if (txt[i] == '\t') {\r
-if (e != null) {\r
-nextX = Clazz.floatToInt (e.nextTabStop (nextX, startOffset + i - txtOffset));\r
-} else {\r
-nextX += metrics.charWidth (' ');\r
-}} else if (txt[i] == ' ') {\r
-nextX += metrics.charWidth (' ') + spaceAddon;\r
-if (i <= spaceAddonLeftoverEnd) {\r
-nextX++;\r
-}}} else if (txt[i] == '\n') {\r
-nextX += metrics.charsWidth (txt, i - charCount, charCount);\r
-charCount = 0;\r
-} else {\r
-charCount++;\r
-}}\r
-nextX += metrics.charsWidth (txt, n - charCount, charCount);\r
-return nextX - x;\r
-}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,javax.swing.text.TabExpander,~N,~A");\r
-c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", \r
-function (s, metrics, x0, x, e, startOffset) {\r
-return javax.swing.text.Utilities.getTabbedTextOffset (s, metrics, x0, x, e, startOffset, true);\r
-}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N");\r
-c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", \r
-function (view, s, metrics, x0, x, e, startOffset, justificationData) {\r
-return javax.swing.text.Utilities.getTabbedTextOffset (view, s, metrics, x0, x, e, startOffset, true, justificationData);\r
-}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~A");\r
-c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", \r
-function (s, metrics, x0, x, e, startOffset, round) {\r
-return javax.swing.text.Utilities.getTabbedTextOffset (null, s, metrics, x0, x, e, startOffset, round, null);\r
-}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~B");\r
-c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", \r
-function (view, s, metrics, x0, x, e, startOffset, round, justificationData) {\r
-if (x0 >= x) {\r
-return 0;\r
-}var currX = x0;\r
-var nextX = currX;\r
-var txt = s.array;\r
-var txtOffset = s.offset;\r
-var txtCount = s.count;\r
-var spaceAddon = 0;\r
-var spaceAddonLeftoverEnd = -1;\r
-var startJustifiableContent = 0;\r
-var endJustifiableContent = 0;\r
-if (justificationData != null) {\r
-var offset = -startOffset + txtOffset;\r
-var parent = null;\r
-if (view != null && (parent = view.getParent ()) != null) {\r
-offset += parent.getStartOffset ();\r
-}spaceAddon = justificationData[0];\r
-spaceAddonLeftoverEnd = justificationData[1] + offset;\r
-startJustifiableContent = justificationData[2] + offset;\r
-endJustifiableContent = justificationData[3] + offset;\r
-}var n = s.offset + s.count;\r
-for (var i = s.offset; i < n; i++) {\r
-if (txt[i] == '\t' || ((spaceAddon != 0 || i <= spaceAddonLeftoverEnd) && (txt[i] == ' ') && startJustifiableContent <= i && i <= endJustifiableContent)) {\r
-if (txt[i] == '\t') {\r
-if (e != null) {\r
-nextX = Clazz.floatToInt (e.nextTabStop (nextX, startOffset + i - txtOffset));\r
-} else {\r
-nextX += metrics.charWidth (' ');\r
-}} else if (txt[i] == ' ') {\r
-nextX += metrics.charWidth (' ') + spaceAddon;\r
-if (i <= spaceAddonLeftoverEnd) {\r
-nextX++;\r
-}}} else {\r
-nextX += metrics.charWidth (txt[i]);\r
-}if ((x >= currX) && (x < nextX)) {\r
-if ((round == false) || ((x - currX) < (nextX - x))) {\r
-return i - txtOffset;\r
-} else {\r
-return i + 1 - txtOffset;\r
-}}currX = nextX;\r
-}\r
-return txtCount;\r
-}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~B,~A");\r
-c$.getBreakLocation = Clazz.defineMethod (c$, "getBreakLocation", \r
-function (s, metrics, x0, x, e, startOffset) {\r
-return 0;\r
-}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N");\r
-c$.getRowStart = Clazz.defineMethod (c$, "getRowStart", \r
-function (c, offs) {\r
-var r = c.modelToView (offs);\r
-if (r == null) {\r
-return -1;\r
-}var lastOffs = offs;\r
-var y = r.y;\r
-while ((r != null) && (y == r.y)) {\r
-if (r.height != 0) {\r
-offs = lastOffs;\r
-}lastOffs -= 1;\r
-r = (lastOffs >= 0) ? c.modelToView (lastOffs) : null;\r
-}\r
-return offs;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.getRowEnd = Clazz.defineMethod (c$, "getRowEnd", \r
-function (c, offs) {\r
-var r = c.modelToView (offs);\r
-if (r == null) {\r
-return -1;\r
-}var n = c.getDocument ().getLength ();\r
-var lastOffs = offs;\r
-var y = r.y;\r
-while ((r != null) && (y == r.y)) {\r
-if (r.height != 0) {\r
-offs = lastOffs;\r
-}lastOffs += 1;\r
-r = (lastOffs <= n) ? c.modelToView (lastOffs) : null;\r
-}\r
-return offs;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.getPositionAbove = Clazz.defineMethod (c$, "getPositionAbove", \r
-function (c, offs, x) {\r
-var lastOffs = javax.swing.text.Utilities.getRowStart (c, offs) - 1;\r
-if (lastOffs < 0) {\r
-return -1;\r
-}var bestSpan = 2147483647;\r
-var y = 0;\r
-var r = null;\r
-if (lastOffs >= 0) {\r
-r = c.modelToView (lastOffs);\r
-y = r.y;\r
-}while ((r != null) && (y == r.y)) {\r
-var span = Math.abs (r.x - x);\r
-if (span < bestSpan) {\r
-offs = lastOffs;\r
-bestSpan = span;\r
-}lastOffs -= 1;\r
-r = (lastOffs >= 0) ? c.modelToView (lastOffs) : null;\r
-}\r
-return offs;\r
-}, "javax.swing.text.JTextComponent,~N,~N");\r
-c$.getPositionBelow = Clazz.defineMethod (c$, "getPositionBelow", \r
-function (c, offs, x) {\r
-var lastOffs = javax.swing.text.Utilities.getRowEnd (c, offs) + 1;\r
-if (lastOffs <= 0) {\r
-return -1;\r
-}var bestSpan = 2147483647;\r
-var n = c.getDocument ().getLength ();\r
-var y = 0;\r
-var r = null;\r
-if (lastOffs <= n) {\r
-r = c.modelToView (lastOffs);\r
-y = r.y;\r
-}while ((r != null) && (y == r.y)) {\r
-var span = Math.abs (x - r.x);\r
-if (span < bestSpan) {\r
-offs = lastOffs;\r
-bestSpan = span;\r
-}lastOffs += 1;\r
-r = (lastOffs <= n) ? c.modelToView (lastOffs) : null;\r
-}\r
-return offs;\r
-}, "javax.swing.text.JTextComponent,~N,~N");\r
-c$.getWordStart = Clazz.defineMethod (c$, "getWordStart", \r
-function (c, offs) {\r
-return 0;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.getWordEnd = Clazz.defineMethod (c$, "getWordEnd", \r
-function (c, offs) {\r
-return 0;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.getNextWord = Clazz.defineMethod (c$, "getNextWord", \r
-function (c, offs) {\r
-var nextWord;\r
-var line = javax.swing.text.Utilities.getParagraphElement (c, offs);\r
-for (nextWord = javax.swing.text.Utilities.getNextWordInParagraph (c, line, offs, false); nextWord == -1; nextWord = javax.swing.text.Utilities.getNextWordInParagraph (c, line, offs, true)) {\r
-offs = line.getEndOffset ();\r
-line = javax.swing.text.Utilities.getParagraphElement (c, offs);\r
-}\r
-return nextWord;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.getNextWordInParagraph = Clazz.defineMethod (c$, "getNextWordInParagraph", \r
-function (c, line, offs, first) {\r
-return 0;\r
-}, "javax.swing.text.JTextComponent,javax.swing.text.Element,~N,~B");\r
-c$.getPreviousWord = Clazz.defineMethod (c$, "getPreviousWord", \r
-function (c, offs) {\r
-var prevWord;\r
-var line = javax.swing.text.Utilities.getParagraphElement (c, offs);\r
-for (prevWord = javax.swing.text.Utilities.getPrevWordInParagraph (c, line, offs); prevWord == -1; prevWord = javax.swing.text.Utilities.getPrevWordInParagraph (c, line, offs)) {\r
-offs = line.getStartOffset () - 1;\r
-line = javax.swing.text.Utilities.getParagraphElement (c, offs);\r
-}\r
-return prevWord;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.getPrevWordInParagraph = Clazz.defineMethod (c$, "getPrevWordInParagraph", \r
-function (c, line, offs) {\r
-return 0;\r
-}, "javax.swing.text.JTextComponent,javax.swing.text.Element,~N");\r
-c$.getParagraphElement = Clazz.defineMethod (c$, "getParagraphElement", \r
-function (c, offs) {\r
-var doc = c.getDocument ();\r
-if (Clazz.instanceOf (doc, javax.swing.text.StyledDocument)) {\r
-return (doc).getParagraphElement (offs);\r
-}var map = doc.getDefaultRootElement ();\r
-var index = map.getElementIndex (offs);\r
-var paragraph = map.getElement (index);\r
-if ((offs >= paragraph.getStartOffset ()) && (offs < paragraph.getEndOffset ())) {\r
-return paragraph;\r
-}return null;\r
-}, "javax.swing.text.JTextComponent,~N");\r
-c$.isComposedTextElement = Clazz.defineMethod (c$, "isComposedTextElement", \r
-function (doc, offset) {\r
-var elem = doc.getDefaultRootElement ();\r
-while (!elem.isLeaf ()) {\r
-elem = elem.getElement (elem.getElementIndex (offset));\r
-}\r
-return javax.swing.text.Utilities.isComposedTextElement (elem);\r
-}, "javax.swing.text.Document,~N");\r
-c$.isComposedTextElement = Clazz.defineMethod (c$, "isComposedTextElement", \r
-function (elem) {\r
-var as = elem.getAttributes ();\r
-return javax.swing.text.Utilities.isComposedTextAttributeDefined (as);\r
-}, "javax.swing.text.Element");\r
-c$.isComposedTextAttributeDefined = Clazz.defineMethod (c$, "isComposedTextAttributeDefined", \r
-function (as) {\r
-return ((as != null) && (as.isDefined (javax.swing.text.StyleConstants.ComposedTextAttribute)));\r
-}, "javax.swing.text.AttributeSet");\r
-c$.isLeftToRight = Clazz.defineMethod (c$, "isLeftToRight", \r
-function (c) {\r
-return c.getComponentOrientation ().isLeftToRight ();\r
-}, "java.awt.Component");\r
-c$.getNextVisualPositionFrom = Clazz.defineMethod (c$, "getNextVisualPositionFrom", \r
-function (v, pos, b, alloc, direction, biasRet) {\r
-if (v.getViewCount () == 0) {\r
-return pos;\r
-}var top = (direction == 1 || direction == 7);\r
-var retValue;\r
-if (pos == -1) {\r
-var childIndex = (top) ? v.getViewCount () - 1 : 0;\r
-var child = v.getView (childIndex);\r
-var childBounds = v.getChildAllocation (childIndex, alloc);\r
-retValue = child.getNextVisualPositionFrom (pos, b, childBounds, direction, biasRet);\r
-if (retValue == -1 && !top && v.getViewCount () > 1) {\r
-child = v.getView (1);\r
-childBounds = v.getChildAllocation (1, alloc);\r
-retValue = child.getNextVisualPositionFrom (-1, biasRet[0], childBounds, direction, biasRet);\r
-}} else {\r
-var increment = (top) ? -1 : 1;\r
-var childIndex;\r
-if (b === javax.swing.text.Position.Bias.Backward && pos > 0) {\r
-childIndex = v.getViewIndex (pos - 1, javax.swing.text.Position.Bias.Forward);\r
-} else {\r
-childIndex = v.getViewIndex (pos, javax.swing.text.Position.Bias.Forward);\r
-}var child = v.getView (childIndex);\r
-var childBounds = v.getChildAllocation (childIndex, alloc);\r
-retValue = child.getNextVisualPositionFrom (pos, b, childBounds, direction, biasRet);\r
-if ((direction == 3 || direction == 7) && (Clazz.instanceOf (v, javax.swing.text.CompositeView)) && (v).flipEastAndWestAtEnds (pos, b)) {\r
-increment *= -1;\r
-}childIndex += increment;\r
-if (retValue == -1 && childIndex >= 0 && childIndex < v.getViewCount ()) {\r
-child = v.getView (childIndex);\r
-childBounds = v.getChildAllocation (childIndex, alloc);\r
-retValue = child.getNextVisualPositionFrom (-1, b, childBounds, direction, biasRet);\r
-if (retValue == pos && biasRet[0] !== b) {\r
-return javax.swing.text.Utilities.getNextVisualPositionFrom (v, pos, biasRet[0], alloc, direction, biasRet);\r
-}} else if (retValue != -1 && biasRet[0] !== b && ((increment == 1 && child.getEndOffset () == retValue) || (increment == -1 && child.getStartOffset () == retValue)) && childIndex >= 0 && childIndex < v.getViewCount ()) {\r
-child = v.getView (childIndex);\r
-childBounds = v.getChildAllocation (childIndex, alloc);\r
-var originalBias = biasRet[0];\r
-var nextPos = child.getNextVisualPositionFrom (-1, b, childBounds, direction, biasRet);\r
-if (biasRet[0] === b) {\r
-retValue = nextPos;\r
-} else {\r
-biasRet[0] = originalBias;\r
-}}}return retValue;\r
-}, "javax.swing.text.View,~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");\r
-});\r
+Clazz.declarePackage ("javax.swing.text");
+Clazz.load (null, "javax.swing.text.Utilities", ["javax.swing.JComponent", "javax.swing.text.CompositeView", "$.Position", "$.StyleConstants", "$.StyledDocument"], function () {
+c$ = Clazz.declareType (javax.swing.text, "Utilities");
+c$.getJComponent = Clazz.defineMethod (c$, "getJComponent", 
+function (view) {
+if (view != null) {
+var component = view.getContainer ();
+if (Clazz.instanceOf (component, javax.swing.JComponent)) {
+return component;
+}}return null;
+}, "javax.swing.text.View");
+c$.getTabbedTextWidth = Clazz.defineMethod (c$, "getTabbedTextWidth", 
+function (s, metrics, x, e, startOffset) {
+return javax.swing.text.Utilities.getTabbedTextWidth (null, s, metrics, x, e, startOffset, null);
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,javax.swing.text.TabExpander,~N");
+c$.getTabbedTextWidth = Clazz.defineMethod (c$, "getTabbedTextWidth", 
+function (view, s, metrics, x, e, startOffset, justificationData) {
+var nextX = x;
+var txt = s.array;
+var txtOffset = s.offset;
+var n = s.offset + s.count;
+var charCount = 0;
+var spaceAddon = 0;
+var spaceAddonLeftoverEnd = -1;
+var startJustifiableContent = 0;
+var endJustifiableContent = 0;
+if (justificationData != null) {
+var offset = -startOffset + txtOffset;
+var parent = null;
+if (view != null && (parent = view.getParent ()) != null) {
+offset += parent.getStartOffset ();
+}spaceAddon = justificationData[0];
+spaceAddonLeftoverEnd = justificationData[1] + offset;
+startJustifiableContent = justificationData[2] + offset;
+endJustifiableContent = justificationData[3] + offset;
+}for (var i = txtOffset; i < n; i++) {
+if (txt[i] == '\t' || ((spaceAddon != 0 || i <= spaceAddonLeftoverEnd) && (txt[i] == ' ') && startJustifiableContent <= i && i <= endJustifiableContent)) {
+nextX += metrics.charsWidth (txt, i - charCount, charCount);
+charCount = 0;
+if (txt[i] == '\t') {
+if (e != null) {
+nextX = Clazz.floatToInt (e.nextTabStop (nextX, startOffset + i - txtOffset));
+} else {
+nextX += metrics.charWidth (' ');
+}} else if (txt[i] == ' ') {
+nextX += metrics.charWidth (' ') + spaceAddon;
+if (i <= spaceAddonLeftoverEnd) {
+nextX++;
+}}} else if (txt[i] == '\n') {
+nextX += metrics.charsWidth (txt, i - charCount, charCount);
+charCount = 0;
+} else {
+charCount++;
+}}
+nextX += metrics.charsWidth (txt, n - charCount, charCount);
+return nextX - x;
+}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,javax.swing.text.TabExpander,~N,~A");
+c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", 
+function (s, metrics, x0, x, e, startOffset) {
+return javax.swing.text.Utilities.getTabbedTextOffset (s, metrics, x0, x, e, startOffset, true);
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N");
+c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", 
+function (view, s, metrics, x0, x, e, startOffset, justificationData) {
+return javax.swing.text.Utilities.getTabbedTextOffset (view, s, metrics, x0, x, e, startOffset, true, justificationData);
+}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~A");
+c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", 
+function (s, metrics, x0, x, e, startOffset, round) {
+return javax.swing.text.Utilities.getTabbedTextOffset (null, s, metrics, x0, x, e, startOffset, round, null);
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~B");
+c$.getTabbedTextOffset = Clazz.defineMethod (c$, "getTabbedTextOffset", 
+function (view, s, metrics, x0, x, e, startOffset, round, justificationData) {
+if (x0 >= x) {
+return 0;
+}var currX = x0;
+var nextX = currX;
+var txt = s.array;
+var txtOffset = s.offset;
+var txtCount = s.count;
+var spaceAddon = 0;
+var spaceAddonLeftoverEnd = -1;
+var startJustifiableContent = 0;
+var endJustifiableContent = 0;
+if (justificationData != null) {
+var offset = -startOffset + txtOffset;
+var parent = null;
+if (view != null && (parent = view.getParent ()) != null) {
+offset += parent.getStartOffset ();
+}spaceAddon = justificationData[0];
+spaceAddonLeftoverEnd = justificationData[1] + offset;
+startJustifiableContent = justificationData[2] + offset;
+endJustifiableContent = justificationData[3] + offset;
+}var n = s.offset + s.count;
+for (var i = s.offset; i < n; i++) {
+if (txt[i] == '\t' || ((spaceAddon != 0 || i <= spaceAddonLeftoverEnd) && (txt[i] == ' ') && startJustifiableContent <= i && i <= endJustifiableContent)) {
+if (txt[i] == '\t') {
+if (e != null) {
+nextX = Clazz.floatToInt (e.nextTabStop (nextX, startOffset + i - txtOffset));
+} else {
+nextX += metrics.charWidth (' ');
+}} else if (txt[i] == ' ') {
+nextX += metrics.charWidth (' ') + spaceAddon;
+if (i <= spaceAddonLeftoverEnd) {
+nextX++;
+}}} else {
+nextX += metrics.charWidth (txt[i]);
+}if ((x >= currX) && (x < nextX)) {
+if ((round == false) || ((x - currX) < (nextX - x))) {
+return i - txtOffset;
+} else {
+return i + 1 - txtOffset;
+}}currX = nextX;
+}
+return txtCount;
+}, "javax.swing.text.View,javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N,~B,~A");
+c$.getBreakLocation = Clazz.defineMethod (c$, "getBreakLocation", 
+function (s, metrics, x0, x, e, startOffset) {
+return 0;
+}, "javax.swing.text.Segment,java.awt.FontMetrics,~N,~N,javax.swing.text.TabExpander,~N");
+c$.getRowStart = Clazz.defineMethod (c$, "getRowStart", 
+function (c, offs) {
+var r = c.modelToView (offs);
+if (r == null) {
+return -1;
+}var lastOffs = offs;
+var y = r.y;
+while ((r != null) && (y == r.y)) {
+if (r.height != 0) {
+offs = lastOffs;
+}lastOffs -= 1;
+r = (lastOffs >= 0) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getRowEnd = Clazz.defineMethod (c$, "getRowEnd", 
+function (c, offs) {
+var r = c.modelToView (offs);
+if (r == null) {
+return -1;
+}var n = c.getDocument ().getLength ();
+var lastOffs = offs;
+var y = r.y;
+while ((r != null) && (y == r.y)) {
+if (r.height != 0) {
+offs = lastOffs;
+}lastOffs += 1;
+r = (lastOffs <= n) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getPositionAbove = Clazz.defineMethod (c$, "getPositionAbove", 
+function (c, offs, x) {
+var lastOffs = javax.swing.text.Utilities.getRowStart (c, offs) - 1;
+if (lastOffs < 0) {
+return -1;
+}var bestSpan = 2147483647;
+var y = 0;
+var r = null;
+if (lastOffs >= 0) {
+r = c.modelToView (lastOffs);
+y = r.y;
+}while ((r != null) && (y == r.y)) {
+var span = Math.abs (r.x - x);
+if (span < bestSpan) {
+offs = lastOffs;
+bestSpan = span;
+}lastOffs -= 1;
+r = (lastOffs >= 0) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N,~N");
+c$.getPositionBelow = Clazz.defineMethod (c$, "getPositionBelow", 
+function (c, offs, x) {
+var lastOffs = javax.swing.text.Utilities.getRowEnd (c, offs) + 1;
+if (lastOffs <= 0) {
+return -1;
+}var bestSpan = 2147483647;
+var n = c.getDocument ().getLength ();
+var y = 0;
+var r = null;
+if (lastOffs <= n) {
+r = c.modelToView (lastOffs);
+y = r.y;
+}while ((r != null) && (y == r.y)) {
+var span = Math.abs (x - r.x);
+if (span < bestSpan) {
+offs = lastOffs;
+bestSpan = span;
+}lastOffs += 1;
+r = (lastOffs <= n) ? c.modelToView (lastOffs) : null;
+}
+return offs;
+}, "javax.swing.text.JTextComponent,~N,~N");
+c$.getWordStart = Clazz.defineMethod (c$, "getWordStart", 
+function (c, offs) {
+return 0;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getWordEnd = Clazz.defineMethod (c$, "getWordEnd", 
+function (c, offs) {
+return 0;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getNextWord = Clazz.defineMethod (c$, "getNextWord", 
+function (c, offs) {
+var nextWord;
+var line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+for (nextWord = javax.swing.text.Utilities.getNextWordInParagraph (c, line, offs, false); nextWord == -1; nextWord = javax.swing.text.Utilities.getNextWordInParagraph (c, line, offs, true)) {
+offs = line.getEndOffset ();
+line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+}
+return nextWord;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getNextWordInParagraph = Clazz.defineMethod (c$, "getNextWordInParagraph", 
+function (c, line, offs, first) {
+return 0;
+}, "javax.swing.text.JTextComponent,javax.swing.text.Element,~N,~B");
+c$.getPreviousWord = Clazz.defineMethod (c$, "getPreviousWord", 
+function (c, offs) {
+var prevWord;
+var line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+for (prevWord = javax.swing.text.Utilities.getPrevWordInParagraph (c, line, offs); prevWord == -1; prevWord = javax.swing.text.Utilities.getPrevWordInParagraph (c, line, offs)) {
+offs = line.getStartOffset () - 1;
+line = javax.swing.text.Utilities.getParagraphElement (c, offs);
+}
+return prevWord;
+}, "javax.swing.text.JTextComponent,~N");
+c$.getPrevWordInParagraph = Clazz.defineMethod (c$, "getPrevWordInParagraph", 
+function (c, line, offs) {
+return 0;
+}, "javax.swing.text.JTextComponent,javax.swing.text.Element,~N");
+c$.getParagraphElement = Clazz.defineMethod (c$, "getParagraphElement", 
+function (c, offs) {
+var doc = c.getDocument ();
+if (Clazz.instanceOf (doc, javax.swing.text.StyledDocument)) {
+return (doc).getParagraphElement (offs);
+}var map = doc.getDefaultRootElement ();
+var index = map.getElementIndex (offs);
+var paragraph = map.getElement (index);
+if ((offs >= paragraph.getStartOffset ()) && (offs < paragraph.getEndOffset ())) {
+return paragraph;
+}return null;
+}, "javax.swing.text.JTextComponent,~N");
+c$.isComposedTextElement = Clazz.defineMethod (c$, "isComposedTextElement", 
+function (doc, offset) {
+var elem = doc.getDefaultRootElement ();
+while (!elem.isLeaf ()) {
+elem = elem.getElement (elem.getElementIndex (offset));
+}
+return javax.swing.text.Utilities.isComposedTextElement (elem);
+}, "javax.swing.text.Document,~N");
+c$.isComposedTextElement = Clazz.defineMethod (c$, "isComposedTextElement", 
+function (elem) {
+var as = elem.getAttributes ();
+return javax.swing.text.Utilities.isComposedTextAttributeDefined (as);
+}, "javax.swing.text.Element");
+c$.isComposedTextAttributeDefined = Clazz.defineMethod (c$, "isComposedTextAttributeDefined", 
+function (as) {
+return ((as != null) && (as.isDefined (javax.swing.text.StyleConstants.ComposedTextAttribute)));
+}, "javax.swing.text.AttributeSet");
+c$.isLeftToRight = Clazz.defineMethod (c$, "isLeftToRight", 
+function (c) {
+return c.getComponentOrientation ().isLeftToRight ();
+}, "java.awt.Component");
+c$.getNextVisualPositionFrom = Clazz.defineMethod (c$, "getNextVisualPositionFrom", 
+function (v, pos, b, alloc, direction, biasRet) {
+if (v.getViewCount () == 0) {
+return pos;
+}var top = (direction == 1 || direction == 7);
+var retValue;
+if (pos == -1) {
+var childIndex = (top) ? v.getViewCount () - 1 : 0;
+var child = v.getView (childIndex);
+var childBounds = v.getChildAllocation (childIndex, alloc);
+retValue = child.getNextVisualPositionFrom (pos, b, childBounds, direction, biasRet);
+if (retValue == -1 && !top && v.getViewCount () > 1) {
+child = v.getView (1);
+childBounds = v.getChildAllocation (1, alloc);
+retValue = child.getNextVisualPositionFrom (-1, biasRet[0], childBounds, direction, biasRet);
+}} else {
+var increment = (top) ? -1 : 1;
+var childIndex;
+if (b === javax.swing.text.Position.Bias.Backward && pos > 0) {
+childIndex = v.getViewIndex (pos - 1, javax.swing.text.Position.Bias.Forward);
+} else {
+childIndex = v.getViewIndex (pos, javax.swing.text.Position.Bias.Forward);
+}var child = v.getView (childIndex);
+var childBounds = v.getChildAllocation (childIndex, alloc);
+retValue = child.getNextVisualPositionFrom (pos, b, childBounds, direction, biasRet);
+if ((direction == 3 || direction == 7) && (Clazz.instanceOf (v, javax.swing.text.CompositeView)) && (v).flipEastAndWestAtEnds (pos, b)) {
+increment *= -1;
+}childIndex += increment;
+if (retValue == -1 && childIndex >= 0 && childIndex < v.getViewCount ()) {
+child = v.getView (childIndex);
+childBounds = v.getChildAllocation (childIndex, alloc);
+retValue = child.getNextVisualPositionFrom (-1, b, childBounds, direction, biasRet);
+if (retValue == pos && biasRet[0] !== b) {
+return javax.swing.text.Utilities.getNextVisualPositionFrom (v, pos, biasRet[0], alloc, direction, biasRet);
+}} else if (retValue != -1 && biasRet[0] !== b && ((increment == 1 && child.getEndOffset () == retValue) || (increment == -1 && child.getStartOffset () == retValue)) && childIndex >= 0 && childIndex < v.getViewCount ()) {
+child = v.getView (childIndex);
+childBounds = v.getChildAllocation (childIndex, alloc);
+var originalBias = biasRet[0];
+var nextPos = child.getNextVisualPositionFrom (-1, b, childBounds, direction, biasRet);
+if (biasRet[0] === b) {
+retValue = nextPos;
+} else {
+biasRet[0] = originalBias;
+}}}return retValue;
+}, "javax.swing.text.View,~N,javax.swing.text.Position.Bias,java.awt.Shape,~N,~A");
+});