Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / PlainView.js
index 5e03985..58e42b7 100644 (file)
-Clazz.declarePackage ("javax.swing.text");\r
-Clazz.load (["javax.swing.text.TabExpander", "$.View"], "javax.swing.text.PlainView", ["java.lang.IllegalArgumentException", "java.awt.Rectangle", "javax.swing.event.DocumentEvent", "javax.swing.text.Position", "$.Segment", "$.SegmentCache", "$.Utilities"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.metrics = null;\r
-this.longLine = null;\r
-this.font = null;\r
-this.lineBuffer = null;\r
-this.tabSize = 0;\r
-this.tabBase = 0;\r
-this.sel0 = 0;\r
-this.sel1 = 0;\r
-this.unselected = null;\r
-this.selected = null;\r
-this.firstLineOffset = 0;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text, "PlainView", javax.swing.text.View, javax.swing.text.TabExpander);\r
-Clazz.defineMethod (c$, "getTabSize", \r
-function () {\r
-var i = this.getDocument ().getProperty ("tabSize");\r
-var size = (i != null) ? i.intValue () : 8;\r
-return size;\r
-});\r
-Clazz.defineMethod (c$, "getLineBuffer", \r
-function () {\r
-if (this.lineBuffer == null) {\r
-this.lineBuffer =  new javax.swing.text.Segment ();\r
-}return this.lineBuffer;\r
-});\r
-Clazz.defineMethod (c$, "updateMetrics", \r
-function () {\r
-var host = this.getContainer ();\r
-var f = host.getFont ();\r
-if (this.font !== f) {\r
-this.calculateLongestLine ();\r
-this.tabSize = this.getTabSize () * this.metrics.charWidth ('m');\r
-}});\r
-Clazz.overrideMethod (c$, "getPreferredSpan", \r
-function (axis) {\r
-this.updateMetrics ();\r
-switch (axis) {\r
-case 0:\r
-return this.getLineWidth (this.longLine);\r
-case 1:\r
-return this.getElement ().getElementCount () * this.metrics.getHeight ();\r
-default:\r
-throw  new IllegalArgumentException ("Invalid axis: " + axis);\r
-}\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "paint", \r
-function (g, a) {\r
-}, "java.awt.Graphics,java.awt.Shape");\r
-Clazz.defineMethod (c$, "adjustPaintRegion", \r
-function (a) {\r
-return a;\r
-}, "java.awt.Shape");\r
-Clazz.defineMethod (c$, "modelToView", \r
-function (pos, a, b) {\r
-var doc = this.getDocument ();\r
-var map = this.getElement ();\r
-var lineIndex = map.getElementIndex (pos);\r
-if (lineIndex < 0) {\r
-return this.lineToRect (a, 0);\r
-}var lineArea = this.lineToRect (a, lineIndex);\r
-this.tabBase = lineArea.x;\r
-var line = map.getElement (lineIndex);\r
-var p0 = line.getStartOffset ();\r
-var s = javax.swing.text.SegmentCache.getSharedSegment ();\r
-doc.getText (p0, pos - p0, s);\r
-var xOffs = javax.swing.text.Utilities.getTabbedTextWidth (s, this.metrics, this.tabBase, this, p0);\r
-javax.swing.text.SegmentCache.releaseSharedSegment (s);\r
-lineArea.x += xOffs;\r
-lineArea.width = 1;\r
-lineArea.height = this.metrics.getHeight ();\r
-return lineArea;\r
-}, "~N,java.awt.Shape,javax.swing.text.Position.Bias");\r
-Clazz.defineMethod (c$, "viewToModel", \r
-function (fx, fy, a, bias) {\r
-bias[0] = javax.swing.text.Position.Bias.Forward;\r
-var alloc = a.getBounds ();\r
-var doc = this.getDocument ();\r
-var x = Clazz.floatToInt (fx);\r
-var y = Clazz.floatToInt (fy);\r
-if (y < alloc.y) {\r
-return this.getStartOffset ();\r
-} else if (y > alloc.y + alloc.height) {\r
-return this.getEndOffset () - 1;\r
-} else {\r
-var map = doc.getDefaultRootElement ();\r
-var fontHeight = this.metrics.getHeight ();\r
-var lineIndex = (fontHeight > 0 ? Math.abs (Clazz.doubleToInt ((y - alloc.y) / fontHeight)) : map.getElementCount () - 1);\r
-if (lineIndex >= map.getElementCount ()) {\r
-return this.getEndOffset () - 1;\r
-}var line = map.getElement (lineIndex);\r
-if (lineIndex == 0) {\r
-alloc.x += this.firstLineOffset;\r
-alloc.width -= this.firstLineOffset;\r
-}if (x < alloc.x) {\r
-return line.getStartOffset ();\r
-} else if (x > alloc.x + alloc.width) {\r
-return line.getEndOffset () - 1;\r
-} else {\r
-try {\r
-var p0 = line.getStartOffset ();\r
-var p1 = line.getEndOffset () - 1;\r
-var s = javax.swing.text.SegmentCache.getSharedSegment ();\r
-doc.getText (p0, p1 - p0, s);\r
-this.tabBase = alloc.x;\r
-var offs = p0 + javax.swing.text.Utilities.getTabbedTextOffset (s, this.metrics, this.tabBase, x, this, p0);\r
-javax.swing.text.SegmentCache.releaseSharedSegment (s);\r
-return offs;\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {\r
-return -1;\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}}}, "~N,~N,java.awt.Shape,~A");\r
-Clazz.overrideMethod (c$, "insertUpdate", \r
-function (changes, a, f) {\r
-this.updateDamage (changes, a, f);\r
-}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");\r
-Clazz.overrideMethod (c$, "removeUpdate", \r
-function (changes, a, f) {\r
-this.updateDamage (changes, a, f);\r
-}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");\r
-Clazz.overrideMethod (c$, "changedUpdate", \r
-function (changes, a, f) {\r
-this.updateDamage (changes, a, f);\r
-}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");\r
-Clazz.defineMethod (c$, "setSize", \r
-function (width, height) {\r
-Clazz.superCall (this, javax.swing.text.PlainView, "setSize", [width, height]);\r
-this.updateMetrics ();\r
-}, "~N,~N");\r
-Clazz.overrideMethod (c$, "nextTabStop", \r
-function (x, tabOffset) {\r
-if (this.tabSize == 0) {\r
-return x;\r
-}var ntabs = Clazz.doubleToInt (((Clazz.floatToInt (x)) - this.tabBase) / this.tabSize);\r
-return this.tabBase + ((ntabs + 1) * this.tabSize);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "updateDamage", \r
-function (changes, a, f) {\r
-var host = this.getContainer ();\r
-this.updateMetrics ();\r
-var elem = this.getElement ();\r
-var ec = changes.getChange (elem);\r
-var added = (ec != null) ? ec.getChildrenAdded () : null;\r
-var removed = (ec != null) ? ec.getChildrenRemoved () : null;\r
-if (((added != null) && (added.length > 0)) || ((removed != null) && (removed.length > 0))) {\r
-if (added != null) {\r
-var currWide = this.getLineWidth (this.longLine);\r
-for (var i = 0; i < added.length; i++) {\r
-var w = this.getLineWidth (added[i]);\r
-if (w > currWide) {\r
-currWide = w;\r
-this.longLine = added[i];\r
-}}\r
-}if (removed != null) {\r
-for (var i = 0; i < removed.length; i++) {\r
-if (removed[i] === this.longLine) {\r
-this.calculateLongestLine ();\r
-break;\r
-}}\r
-}this.preferenceChanged (null, true, true);\r
-host.repaint ();\r
-} else {\r
-var map = this.getElement ();\r
-var line = map.getElementIndex (changes.getOffset ());\r
-this.damageLineRange (line, line, a, host);\r
-if (changes.getType () === javax.swing.event.DocumentEvent.EventType.INSERT) {\r
-var w = this.getLineWidth (this.longLine);\r
-var e = map.getElement (line);\r
-if (e === this.longLine) {\r
-this.preferenceChanged (null, true, false);\r
-} else if (this.getLineWidth (e) > w) {\r
-this.longLine = e;\r
-this.preferenceChanged (null, true, false);\r
-}} else if (changes.getType () === javax.swing.event.DocumentEvent.EventType.REMOVE) {\r
-if (map.getElement (line) === this.longLine) {\r
-this.calculateLongestLine ();\r
-this.preferenceChanged (null, true, false);\r
-}}}}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");\r
-Clazz.defineMethod (c$, "damageLineRange", \r
-function (line0, line1, a, host) {\r
-if (a != null) {\r
-var area0 = this.lineToRect (a, line0);\r
-var area1 = this.lineToRect (a, line1);\r
-if ((area0 != null) && (area1 != null)) {\r
-var damage = area0.union (area1);\r
-host.repaint (damage.x, damage.y, damage.width, damage.height);\r
-} else {\r
-host.repaint ();\r
-}}}, "~N,~N,java.awt.Shape,java.awt.Component");\r
-Clazz.defineMethod (c$, "lineToRect", \r
-function (a, line) {\r
-var r = null;\r
-this.updateMetrics ();\r
-if (this.metrics != null) {\r
-var alloc = a.getBounds ();\r
-if (line == 0) {\r
-alloc.x += this.firstLineOffset;\r
-alloc.width -= this.firstLineOffset;\r
-}r =  new java.awt.Rectangle (alloc.x, alloc.y + (line * this.metrics.getHeight ()), alloc.width, this.metrics.getHeight ());\r
-}return r;\r
-}, "java.awt.Shape,~N");\r
-Clazz.defineMethod (c$, "calculateLongestLine", \r
- function () {\r
-var c = this.getContainer ();\r
-this.font = c.getFont ();\r
-this.metrics = c.getFontMetrics (this.font);\r
-var lines = this.getElement ();\r
-var n = lines.getElementCount ();\r
-var maxWidth = -1;\r
-for (var i = 0; i < n; i++) {\r
-var line = lines.getElement (i);\r
-var w = this.getLineWidth (line);\r
-if (w > maxWidth) {\r
-maxWidth = w;\r
-this.longLine = line;\r
-}}\r
-});\r
-Clazz.defineMethod (c$, "getLineWidth", \r
- function (line) {\r
-if (line == null) {\r
-return 0;\r
-}var p0 = line.getStartOffset ();\r
-var p1 = line.getEndOffset ();\r
-var w;\r
-var s = javax.swing.text.SegmentCache.getSharedSegment ();\r
-try {\r
-line.getDocument ().getText (p0, p1 - p0, s);\r
-w = javax.swing.text.Utilities.getTabbedTextWidth (s, this.metrics, this.tabBase, this, p0);\r
-} catch (ble) {\r
-if (Clazz.exceptionOf (ble, javax.swing.text.BadLocationException)) {\r
-w = 0;\r
-} else {\r
-throw ble;\r
-}\r
-}\r
-javax.swing.text.SegmentCache.releaseSharedSegment (s);\r
-return w;\r
-}, "javax.swing.text.Element");\r
-});\r
+Clazz.declarePackage ("javax.swing.text");
+Clazz.load (["javax.swing.text.TabExpander", "$.View"], "javax.swing.text.PlainView", ["java.lang.IllegalArgumentException", "java.awt.Rectangle", "javax.swing.event.DocumentEvent", "javax.swing.text.Position", "$.Segment", "$.SegmentCache", "$.Utilities"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.metrics = null;
+this.longLine = null;
+this.font = null;
+this.lineBuffer = null;
+this.tabSize = 0;
+this.tabBase = 0;
+this.sel0 = 0;
+this.sel1 = 0;
+this.unselected = null;
+this.selected = null;
+this.firstLineOffset = 0;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text, "PlainView", javax.swing.text.View, javax.swing.text.TabExpander);
+Clazz.defineMethod (c$, "getTabSize", 
+function () {
+var i = this.getDocument ().getProperty ("tabSize");
+var size = (i != null) ? i.intValue () : 8;
+return size;
+});
+Clazz.defineMethod (c$, "getLineBuffer", 
+function () {
+if (this.lineBuffer == null) {
+this.lineBuffer =  new javax.swing.text.Segment ();
+}return this.lineBuffer;
+});
+Clazz.defineMethod (c$, "updateMetrics", 
+function () {
+var host = this.getContainer ();
+var f = host.getFont ();
+if (this.font !== f) {
+this.calculateLongestLine ();
+this.tabSize = this.getTabSize () * this.metrics.charWidth ('m');
+}});
+Clazz.overrideMethod (c$, "getPreferredSpan", 
+function (axis) {
+this.updateMetrics ();
+switch (axis) {
+case 0:
+return this.getLineWidth (this.longLine);
+case 1:
+return this.getElement ().getElementCount () * this.metrics.getHeight ();
+default:
+throw  new IllegalArgumentException ("Invalid axis: " + axis);
+}
+}, "~N");
+Clazz.overrideMethod (c$, "paint", 
+function (g, a) {
+}, "java.awt.Graphics,java.awt.Shape");
+Clazz.defineMethod (c$, "adjustPaintRegion", 
+function (a) {
+return a;
+}, "java.awt.Shape");
+Clazz.defineMethod (c$, "modelToView", 
+function (pos, a, b) {
+var doc = this.getDocument ();
+var map = this.getElement ();
+var lineIndex = map.getElementIndex (pos);
+if (lineIndex < 0) {
+return this.lineToRect (a, 0);
+}var lineArea = this.lineToRect (a, lineIndex);
+this.tabBase = lineArea.x;
+var line = map.getElement (lineIndex);
+var p0 = line.getStartOffset ();
+var s = javax.swing.text.SegmentCache.getSharedSegment ();
+doc.getText (p0, pos - p0, s);
+var xOffs = javax.swing.text.Utilities.getTabbedTextWidth (s, this.metrics, this.tabBase, this, p0);
+javax.swing.text.SegmentCache.releaseSharedSegment (s);
+lineArea.x += xOffs;
+lineArea.width = 1;
+lineArea.height = this.metrics.getHeight ();
+return lineArea;
+}, "~N,java.awt.Shape,javax.swing.text.Position.Bias");
+Clazz.defineMethod (c$, "viewToModel", 
+function (fx, fy, a, bias) {
+bias[0] = javax.swing.text.Position.Bias.Forward;
+var alloc = a.getBounds ();
+var doc = this.getDocument ();
+var x = Clazz.floatToInt (fx);
+var y = Clazz.floatToInt (fy);
+if (y < alloc.y) {
+return this.getStartOffset ();
+} else if (y > alloc.y + alloc.height) {
+return this.getEndOffset () - 1;
+} else {
+var map = doc.getDefaultRootElement ();
+var fontHeight = this.metrics.getHeight ();
+var lineIndex = (fontHeight > 0 ? Math.abs (Clazz.doubleToInt ((y - alloc.y) / fontHeight)) : map.getElementCount () - 1);
+if (lineIndex >= map.getElementCount ()) {
+return this.getEndOffset () - 1;
+}var line = map.getElement (lineIndex);
+if (lineIndex == 0) {
+alloc.x += this.firstLineOffset;
+alloc.width -= this.firstLineOffset;
+}if (x < alloc.x) {
+return line.getStartOffset ();
+} else if (x > alloc.x + alloc.width) {
+return line.getEndOffset () - 1;
+} else {
+try {
+var p0 = line.getStartOffset ();
+var p1 = line.getEndOffset () - 1;
+var s = javax.swing.text.SegmentCache.getSharedSegment ();
+doc.getText (p0, p1 - p0, s);
+this.tabBase = alloc.x;
+var offs = p0 + javax.swing.text.Utilities.getTabbedTextOffset (s, this.metrics, this.tabBase, x, this, p0);
+javax.swing.text.SegmentCache.releaseSharedSegment (s);
+return offs;
+} catch (e) {
+if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
+return -1;
+} else {
+throw e;
+}
+}
+}}}, "~N,~N,java.awt.Shape,~A");
+Clazz.overrideMethod (c$, "insertUpdate", 
+function (changes, a, f) {
+this.updateDamage (changes, a, f);
+}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz.overrideMethod (c$, "removeUpdate", 
+function (changes, a, f) {
+this.updateDamage (changes, a, f);
+}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz.overrideMethod (c$, "changedUpdate", 
+function (changes, a, f) {
+this.updateDamage (changes, a, f);
+}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz.defineMethod (c$, "setSize", 
+function (width, height) {
+Clazz.superCall (this, javax.swing.text.PlainView, "setSize", [width, height]);
+this.updateMetrics ();
+}, "~N,~N");
+Clazz.overrideMethod (c$, "nextTabStop", 
+function (x, tabOffset) {
+if (this.tabSize == 0) {
+return x;
+}var ntabs = Clazz.doubleToInt (((Clazz.floatToInt (x)) - this.tabBase) / this.tabSize);
+return this.tabBase + ((ntabs + 1) * this.tabSize);
+}, "~N,~N");
+Clazz.defineMethod (c$, "updateDamage", 
+function (changes, a, f) {
+var host = this.getContainer ();
+this.updateMetrics ();
+var elem = this.getElement ();
+var ec = changes.getChange (elem);
+var added = (ec != null) ? ec.getChildrenAdded () : null;
+var removed = (ec != null) ? ec.getChildrenRemoved () : null;
+if (((added != null) && (added.length > 0)) || ((removed != null) && (removed.length > 0))) {
+if (added != null) {
+var currWide = this.getLineWidth (this.longLine);
+for (var i = 0; i < added.length; i++) {
+var w = this.getLineWidth (added[i]);
+if (w > currWide) {
+currWide = w;
+this.longLine = added[i];
+}}
+}if (removed != null) {
+for (var i = 0; i < removed.length; i++) {
+if (removed[i] === this.longLine) {
+this.calculateLongestLine ();
+break;
+}}
+}this.preferenceChanged (null, true, true);
+host.repaint ();
+} else {
+var map = this.getElement ();
+var line = map.getElementIndex (changes.getOffset ());
+this.damageLineRange (line, line, a, host);
+if (changes.getType () === javax.swing.event.DocumentEvent.EventType.INSERT) {
+var w = this.getLineWidth (this.longLine);
+var e = map.getElement (line);
+if (e === this.longLine) {
+this.preferenceChanged (null, true, false);
+} else if (this.getLineWidth (e) > w) {
+this.longLine = e;
+this.preferenceChanged (null, true, false);
+}} else if (changes.getType () === javax.swing.event.DocumentEvent.EventType.REMOVE) {
+if (map.getElement (line) === this.longLine) {
+this.calculateLongestLine ();
+this.preferenceChanged (null, true, false);
+}}}}, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
+Clazz.defineMethod (c$, "damageLineRange", 
+function (line0, line1, a, host) {
+if (a != null) {
+var area0 = this.lineToRect (a, line0);
+var area1 = this.lineToRect (a, line1);
+if ((area0 != null) && (area1 != null)) {
+var damage = area0.union (area1);
+host.repaint (damage.x, damage.y, damage.width, damage.height);
+} else {
+host.repaint ();
+}}}, "~N,~N,java.awt.Shape,java.awt.Component");
+Clazz.defineMethod (c$, "lineToRect", 
+function (a, line) {
+var r = null;
+this.updateMetrics ();
+if (this.metrics != null) {
+var alloc = a.getBounds ();
+if (line == 0) {
+alloc.x += this.firstLineOffset;
+alloc.width -= this.firstLineOffset;
+}r =  new java.awt.Rectangle (alloc.x, alloc.y + (line * this.metrics.getHeight ()), alloc.width, this.metrics.getHeight ());
+}return r;
+}, "java.awt.Shape,~N");
+Clazz.defineMethod (c$, "calculateLongestLine", 
+ function () {
+var c = this.getContainer ();
+this.font = c.getFont ();
+this.metrics = c.getFontMetrics (this.font);
+var lines = this.getElement ();
+var n = lines.getElementCount ();
+var maxWidth = -1;
+for (var i = 0; i < n; i++) {
+var line = lines.getElement (i);
+var w = this.getLineWidth (line);
+if (w > maxWidth) {
+maxWidth = w;
+this.longLine = line;
+}}
+});
+Clazz.defineMethod (c$, "getLineWidth", 
+ function (line) {
+if (line == null) {
+return 0;
+}var p0 = line.getStartOffset ();
+var p1 = line.getEndOffset ();
+var w;
+var s = javax.swing.text.SegmentCache.getSharedSegment ();
+try {
+line.getDocument ().getText (p0, p1 - p0, s);
+w = javax.swing.text.Utilities.getTabbedTextWidth (s, this.metrics, this.tabBase, this, p0);
+} catch (ble) {
+if (Clazz.exceptionOf (ble, javax.swing.text.BadLocationException)) {
+w = 0;
+} else {
+throw ble;
+}
+}
+javax.swing.text.SegmentCache.releaseSharedSegment (s);
+return w;
+}, "javax.swing.text.Element");
+});