home *** CD-ROM | disk | FTP | other *** search
- package netscape.application;
-
- import netscape.util.ClassInfo;
- import netscape.util.Codable;
- import netscape.util.CodingException;
- import netscape.util.Decoder;
- import netscape.util.Encoder;
- import netscape.util.InconsistencyException;
- import netscape.util.Vector;
-
- public class TextField extends View implements ExtendedTarget, FormElement {
- TextFieldOwner _owner;
- TextFilter _filter;
- Target _tabTarget;
- Target _backtabTarget;
- Target _contentsChangedTarget;
- Target _commitTarget;
- Vector _keyVector;
- Border border;
- Font _font;
- Color _textColor;
- Color _backgroundColor;
- Color _selectionColor;
- Color _caretColor;
- String _tabCommand;
- String _backtabCommand;
- String _contentsChangedCommand;
- String _commitCommand;
- FastStringBuffer _contents;
- FastStringBuffer _oldContents;
- Timer blinkTimer;
- char _drawableCharacter;
- int _selectionAnchorChar;
- int _selectionEndChar;
- int _justification;
- int _scrollOffset;
- int _fontHeight;
- int _initialAnchorChar;
- int _clickCount;
- boolean _editing;
- boolean _caretShowing;
- boolean _canBlink;
- boolean _editable;
- boolean _selectable;
- boolean _mouseDragging;
- boolean _shadowed;
- boolean _textChanged;
- boolean _canWrap;
- boolean transparent;
- boolean wantsAutoscrollEvents;
- boolean isScrollable;
- boolean hasFocus;
- boolean _ignoreWillBecomeSelected;
- public static char ANY_CHARACTER = '\uffff';
- public static final String SELECT_TEXT = "selectText";
- static final String BLINK_CARET = "blinkCaret";
- static final String OWNER_KEY = "owner";
- static final String FILTER_KEY = "filter";
- static final String TABREC_KEY = "tabTarget";
- static final String BACKTABREC_KEY = "backtabTarget";
- static final String CONTENTSCHANGEDREC_KEY = "contentsChangedTarget";
- static final String COMMITREC_KEY = "commitTarget";
- static final String BORDER_KEY = "border";
- static final String FONT_KEY = "font";
- static final String TEXTC_KEY = "textColor";
- static final String BACKGROUNDC_KEY = "backgroundColor";
- static final String SELECTIONC_KEY = "selectionColor";
- static final String CARETC_KEY = "caretColor";
- static final String TABCOM_KEY = "tabCommand";
- static final String BACKTABCOM_KEY = "backtabCommand";
- static final String CONTENTSCHANGEDCOM_KEY = "contentsChangedCommand";
- static final String COMMITCOM_KEY = "commitCommand";
- static final String CONTENTS_KEY = "contents";
- static final String SELECTIONANCH_KEY = "selectionAnchorChar";
- static final String SELECTIONEND_KEY = "selectionEndChar";
- static final String JUSTIFICATION_KEY = "justification";
- static final String SCROLLOFFSET_KEY = "scrollOffset";
- static final String EDITABLE_KEY = "editable";
- static final String SELECTABLE_KEY = "selectable";
- static final String SHADOWED_KEY = "shadowed";
- static final String CANWRAP_KEY = "canWrap";
- static final String AUTOSCROLLEVENT_KEY = "wantsAutoscrollEvents";
- static final String TRANSPARENT_KEY = "transparent";
- static final String DRAWABLE_CHAR_KEY = "drawableCharacter";
- static final String DRAWABLE_CHAR_STRING_KEY = "drawable char";
- static final String SCROLLABLE_KEY = "isScrollable";
-
- public TextField() {
- this(0, 0, 0, 0);
- }
-
- public TextField(Rect var1) {
- this(var1.x, var1.y, var1.width, var1.height);
- }
-
- public TextField(int var1, int var2, int var3, int var4) {
- super(var1, var2, var3, var4);
- this.border = BezelBorder.loweredBezel();
- this._selectionAnchorChar = -1;
- this._selectionEndChar = -1;
- this._initialAnchorChar = -1;
- this._textChanged = false;
- this.transparent = false;
- this.wantsAutoscrollEvents = false;
- this.isScrollable = true;
- this.hasFocus = false;
- this._keyVector = new Vector();
- this._contents = new FastStringBuffer();
- this._drawableCharacter = ANY_CHARACTER;
- this._textColor = Color.black;
- this._backgroundColor = Color.white;
- this._selectionColor = Color.lightGray;
- this._caretColor = Color.black;
- this.setEditable(true);
- this.setFont(Font.defaultFont());
- }
-
- public static TextField createLabel(String var0, Font var1) {
- FontMetrics var2 = var1.fontMetrics();
- int var3 = var2.stringWidth(var0);
- int var4 = var2.stringHeight();
- TextField var5 = new TextField(0, 0, var3, var4);
- var5.setBorder((Border)null);
- var5.setStringValue(var0);
- var5.setFont(var1);
- var5.setTransparent(true);
- var5.setEditable(false);
- var5.setSelectable(false);
- return var5;
- }
-
- public static TextField createLabel(String var0) {
- return createLabel(var0, Font.defaultFont());
- }
-
- private static int parseInt(String var0) {
- try {
- return Integer.parseInt(var0);
- } catch (NumberFormatException var1) {
- return 0;
- }
- }
-
- public int leftIndent() {
- int var1 = this.border.leftMargin();
- if (var1 > 2) {
- var1 = 2;
- }
-
- return var1;
- }
-
- public int rightIndent() {
- int var1 = this.border.rightMargin() + 1;
- if (var1 > 3) {
- var1 = 3;
- }
-
- return var1;
- }
-
- private int widthIndent() {
- return this.leftIndent() + this.rightIndent();
- }
-
- public Size minSize() {
- if (super._minSize != null) {
- return new Size(super._minSize);
- } else {
- Size var3 = this._font.fontMetrics().stringSize(this.drawableString());
- Rect var2 = this.interiorRect();
- if (((View)this).horizResizeInstruction() != 2 && this._canWrap && !this.isEditable() && var3.width > var2.width) {
- Vector var1 = this.stringVectorForContents(var2.width);
- var3.sizeTo(var2.width, var3.height * var1.count());
- }
-
- Rect.returnRect(var2);
- var3.sizeBy(this.border.widthMargin() + this.widthIndent(), this.border.heightMargin());
- return var3;
- }
- }
-
- public void setDrawableCharacter(char var1) {
- this._drawableCharacter = var1;
- this._scrollOffset = 0;
- this._computeScrollOffset();
- ((View)this).setDirty(true);
- }
-
- public char drawableCharacter() {
- return this._drawableCharacter;
- }
-
- public void setFont(Font var1) {
- if (var1 == null) {
- this._font = Font.defaultFont();
- } else {
- this._font = var1;
- }
-
- Size var2 = this._font.fontMetrics().stringSize((String)null);
- this._fontHeight = var2.height;
- ((View)this).setDirty(true);
- }
-
- public Font font() {
- return this._font;
- }
-
- public void setTextColor(Color var1) {
- this._textColor = var1;
- if (this._textColor == null) {
- this._textColor = Color.black;
- }
-
- ((View)this).setDirty(true);
- }
-
- public Color textColor() {
- return this._textColor;
- }
-
- public void setBackgroundColor(Color var1) {
- this._backgroundColor = var1;
- if (this._backgroundColor == null) {
- this._backgroundColor = Color.white;
- }
-
- ((View)this).setDirty(true);
- }
-
- public Color backgroundColor() {
- return this._backgroundColor;
- }
-
- public void setSelectionColor(Color var1) {
- this._selectionColor = var1;
- if (this._selectionColor == null) {
- this._selectionColor = Color.lightGray;
- }
-
- ((View)this).setDirty(true);
- }
-
- public Color selectionColor() {
- return this._selectionColor;
- }
-
- public void setCaretColor(Color var1) {
- this._caretColor = var1;
- if (this._caretColor == null) {
- this._caretColor = Color.black;
- }
-
- }
-
- public Color caretColor() {
- return this._caretColor;
- }
-
- public void setBorder(Border var1) {
- if (var1 == null) {
- var1 = EmptyBorder.emptyBorder();
- }
-
- this.border = var1;
- }
-
- public Border border() {
- return this.border;
- }
-
- public void setDrawsDropShadow(boolean var1) {
- this._shadowed = var1;
- ((View)this).setDirty(true);
- }
-
- public boolean drawsDropShadow() {
- return this._shadowed;
- }
-
- public void setJustification(int var1) {
- if (var1 >= 0 && var1 <= 2) {
- if (var1 != this._justification) {
- this._justification = var1;
- this._scrollOffset = 0;
- }
-
- }
- }
-
- public int justification() {
- return this._justification;
- }
-
- public void setTransparent(boolean var1) {
- this.transparent = var1;
- if (this.transparent) {
- this.setBorder((Border)null);
- }
-
- }
-
- public boolean isTransparent() {
- return this.transparent;
- }
-
- public void setSelectable(boolean var1) {
- if (this._selectable != var1) {
- this._selectable = var1;
- this.wantsAutoscrollEvents = var1;
- if (!this._selectable && this._scrollOffset != 0) {
- this._scrollOffset = 0;
- this.drawInterior();
- }
-
- RootView var2 = ((View)this).rootView();
- if (var2 != null) {
- var2.updateCursor();
- }
- }
-
- }
-
- public boolean isSelectable() {
- return this._selectable;
- }
-
- public boolean wantsAutoscrollEvents() {
- return this.wantsAutoscrollEvents;
- }
-
- public void setWrapsContents(boolean var1) {
- this._canWrap = var1;
- if (var1 && this.isEditable()) {
- this.setEditable(false);
- }
-
- this.drawInterior();
- }
-
- public boolean wrapsContents() {
- return this._canWrap;
- }
-
- public void setEditable(boolean var1) {
- if (this._editable != var1) {
- this._editable = var1;
- this.setSelectable(var1);
- if (var1 && this.wrapsContents()) {
- this.setWrapsContents(false);
- }
- }
-
- }
-
- public boolean isEditable() {
- return this._editable;
- }
-
- public boolean isBeingEdited() {
- return this._editing;
- }
-
- public int cursorForPoint(int var1, int var2) {
- return !this.isEditable() && !this.isSelectable() ? 0 : 2;
- }
-
- public void setOwner(TextFieldOwner var1) {
- this._owner = var1;
- }
-
- public TextFieldOwner owner() {
- return this._owner;
- }
-
- public void setFilter(TextFilter var1) {
- this._filter = var1;
- }
-
- public TextFilter filter() {
- return this._filter;
- }
-
- public void setContentsChangedCommandAndTarget(String var1, Target var2) {
- this._contentsChangedCommand = var1;
- this._contentsChangedTarget = var2;
- }
-
- public Target contentsChangedTarget() {
- return this._contentsChangedTarget;
- }
-
- public String contentsChangedCommand() {
- return this._contentsChangedCommand;
- }
-
- public void setTabField(TextField var1) {
- if (var1 == null) {
- this._tabTarget = null;
- this._tabCommand = null;
- } else {
- this._tabTarget = var1;
- this._tabCommand = "selectText";
- }
-
- ((View)this).invalidateKeyboardSelectionOrder();
- }
-
- public TextField tabField() {
- return this._tabTarget instanceof TextField ? (TextField)this._tabTarget : null;
- }
-
- public void setBacktabField(TextField var1) {
- if (var1 == null) {
- this._backtabTarget = null;
- this._backtabCommand = null;
- } else if (var1 != this) {
- this._backtabTarget = var1;
- this._backtabCommand = "selectText";
- }
-
- ((View)this).invalidateKeyboardSelectionOrder();
- }
-
- public TextField backtabField() {
- return this._backtabTarget instanceof TextField ? (TextField)this._backtabTarget : null;
- }
-
- public void setTarget(Target var1) {
- this._commitTarget = var1;
- }
-
- public void setCommand(String var1) {
- this._commitCommand = var1;
- }
-
- public Target target() {
- return this._commitTarget;
- }
-
- public String command() {
- return this._commitCommand;
- }
-
- public void setStringValue(String var1) {
- if (var1 != null && var1.equals(this.stringValue())) {
- if (this.isBeingEdited()) {
- this.cancelEditing();
- }
-
- } else {
- if (var1 == null) {
- var1 = "";
- }
-
- this.replaceRangeWithString(new Range(0, this.charCount()), var1);
- this._oldContents = null;
- if (this.isBeingEdited()) {
- this.cancelEditing();
- } else {
- ((View)this).setDirty(true);
- }
- }
- }
-
- public String stringValue() {
- return this._contents == null ? "" : this._contents.toString();
- }
-
- public void replaceRangeWithString(Range var1, String var2) {
- String var3 = this.stringValue();
- Range var4 = new Range();
- var4.index = var1.index;
- var4.length = var1.length;
- var4.intersectWith(new Range(0, var3.length()));
- if (var4.isNullRange()) {
- var4.index = var3.length();
- var4.length = 0;
- }
-
- String var5 = var3.substring(0, var4.index);
- String var6 = var3.substring(var4.index + var4.length);
- if (var2 != null) {
- this._contents = new FastStringBuffer(var5 + var2 + var6);
- } else {
- this._contents = new FastStringBuffer(var5 + var6);
- }
-
- if (this.isBeingEdited()) {
- var4.index = 0;
- var4.length = this._contents.length();
- Range var7 = this.selectedRange();
- var7.intersectWith(var4);
- if (var7.isNullRange()) {
- this.selectRange(new Range(this._contents.length, 0));
- } else {
- this.selectRange(var7);
- }
- } else {
- ((View)this).setDirty(true);
- }
- }
-
- public String stringForRange(Range var1) {
- String var2 = this.stringValue();
- Range var3 = new Range();
- var3.index = var1.index;
- var3.length = var1.length;
- var3.intersectWith(new Range(0, var2.length()));
- return var3.isNullRange() ? "" : var2.substring(var3.index, var3.index + var3.length());
- }
-
- public String selectedStringValue() {
- if (this.hasInsertionPoint()) {
- return "";
- } else {
- int var1 = this.selectionStart();
- int var2 = this.selectionStop();
- if (var1 != -1 && var2 != -1) {
- return var2 == this._contents.length() ? this._contents.toString().substring(var1) : this._contents.toString().substring(var1, var2);
- } else {
- return "";
- }
- }
- }
-
- public void setIntValue(int var1) {
- this.setStringValue(Integer.toString(var1));
- }
-
- public int intValue() {
- return parseInt(this._contents.toString());
- }
-
- public boolean isEmpty() {
- return this.charCount() == 0;
- }
-
- public int charCount() {
- return this._contents.length();
- }
-
- public int baseline() {
- String var1 = this.drawableString();
- Size var3 = this._font.fontMetrics().stringSize(var1);
- Rect var2 = Rect.newRect();
- this.border.computeInteriorRect(0, 0, super.bounds.width, super.bounds.height, var2);
- int var4 = var2.maxY() - (var2.height - var3.height) / 2 - this._font.fontMetrics().descent();
- Rect.returnRect(var2);
- return var4;
- }
-
- public void selectRange(Range var1) {
- if (var1.length >= 0 && var1.index >= 0) {
- this.selectRange(var1.index, var1.index + var1.length);
- } else {
- throw new InconsistencyException("TextField - invalid range: " + var1);
- }
- }
-
- protected void selectRange(int var1, int var2) {
- if (this.isSelectable()) {
- if (var1 < 0) {
- var1 = 0;
- } else if (var1 > this._contents.length()) {
- var1 = this._contents.length();
- }
-
- if (var2 < 0) {
- var2 = 0;
- } else if (var2 > this._contents.length()) {
- var2 = this._contents.length();
- }
-
- this._selectionAnchorChar = var1;
- this._selectionEndChar = var2;
- if (this.isEditable() && !this.isBeingEdited()) {
- this._startEditing(true);
- }
-
- this.drawInterior();
- }
- }
-
- public void selectText() {
- this.selectRange(0, this.charCount());
- }
-
- public void setInsertionPoint(int var1) {
- this.selectRange(var1, var1);
- }
-
- int selectionAnchorPoint() {
- return this._selectionAnchorChar;
- }
-
- int selectionEndPoint() {
- return this._selectionEndChar;
- }
-
- public Range selectedRange() {
- if (this.hasInsertionPoint()) {
- return new Range(this._selectionAnchorChar, 0);
- } else {
- return this._selectionAnchorChar != -1 && this._selectionEndChar != -1 ? Range.rangeFromIndices(this.selectionStart(), this.selectionStop()) : new Range();
- }
- }
-
- int selectionStart() {
- return this._selectionAnchorChar < this._selectionEndChar ? this._selectionAnchorChar : this._selectionEndChar;
- }
-
- int selectionStop() {
- return this._selectionAnchorChar < this._selectionEndChar ? this._selectionEndChar : this._selectionAnchorChar;
- }
-
- public boolean hasSelection() {
- return this._selectionAnchorChar != this._selectionEndChar;
- }
-
- public boolean hasInsertionPoint() {
- return this._selectionAnchorChar == this._selectionEndChar && this._selectionAnchorChar != -1;
- }
-
- Rect caretRect() {
- FontMetrics var1 = this._font.fontMetrics();
- if (var1 == null) {
- return null;
- } else {
- Rect var2 = this.interiorRect();
- int var4 = var2.maxY() - (var2.height - this._fontHeight) / 2;
- int var3 = var4 - var1.charHeight();
- int var5 = this.border.topMargin();
- if (var3 < var5) {
- var3 = var5;
- }
-
- Rect.returnRect(var2);
- return Rect.newRect(this.xPositionOfCharacter(this._selectionEndChar), var3, 1, var4 - var3);
- }
- }
-
- Rect interiorRect() {
- Rect var1 = Rect.newRect();
- this.border.computeInteriorRect(0, 0, ((View)this).width(), ((View)this).height(), var1);
- return var1;
- }
-
- Rect rectForRange(int var1, int var2) {
- int var4 = this.xPositionOfCharacter(var1);
- Rect var3 = this.interiorRect();
- var3.setBounds(var4, var3.y, this.xPositionOfCharacter(var2) - var4 + 1, var3.height);
- return var3;
- }
-
- public int xPositionOfCharacter(int var1) {
- FontMetrics var2 = this._font.fontMetrics();
- String var3 = this.drawableString();
- int var5 = var2.stringWidth(var3);
- int var4 = this.absoluteXOriginForStringWithWidth(var5);
- return var1 <= 0 ? var4 : var4 + var2.stringWidth(var3.substring(0, var1));
- }
-
- public int charNumberForPoint(int var1) {
- int var4 = this._contents.length();
- if (var4 == 0) {
- return 0;
- } else {
- FontMetrics var2 = this._font.fontMetrics();
- String var3 = this.drawableString();
- int var5 = var2.stringWidth(var3);
- int var10 = this.absoluteXOriginForStringWithWidth(var5);
- if (var1 < var10) {
- return 0;
- } else if (var1 > var10 + var5) {
- return var4;
- } else {
- int var8 = 0;
-
- for(int var6 = 1; var6 < var4; ++var6) {
- int var7 = var2.stringWidth(var3.substring(0, var6));
- int var9 = var7 - var8;
- if (var1 <= var10 + var7) {
- if (var1 > var10 + var8 + var9 / 2) {
- return var6;
- }
-
- return var6 - 1;
- }
-
- var8 = var7;
- }
-
- return var4;
- }
- }
- }
-
- void drawViewCaret(Graphics var1) {
- if (this._caretShowing && this._selectionAnchorChar != -1 && this._selectionAnchorChar == this._selectionEndChar && this.hasFocus) {
- var1.setColor(this._caretColor);
- Rect var2 = this.caretRect();
- var1.drawLine(var2.x, var2.y, var2.x, var2.maxY() - 1);
- Rect.returnRect(var2);
- }
- }
-
- Vector stringVectorForContents(int var1) {
- Vector var5 = new Vector();
- String var6 = this.drawableString();
- char[] var11 = new char[1];
- FontMetrics var3 = this.font().fontMetrics();
- int[] var2 = var3.widthsArray();
- int var7 = 0;
- int var9 = var6.length();
- int var8 = var7;
- int var4 = 0;
- int var10 = -1;
-
- while(var7 < var9) {
- char var12 = var6.charAt(var7);
- if (var12 == ' ' || var12 == '\t') {
- var10 = var7;
- }
-
- if (var12 == '\n') {
- var5.addElement(var6.substring(var8, var7));
- ++var7;
- var8 = var7;
- var4 = 0;
- var10 = -1;
- } else {
- if (var12 < 256) {
- var4 += var2[var12];
- } else {
- var11[0] = var12;
- var4 += var3.stringWidth(new String(var11));
- }
-
- if (var4 > var1) {
- if (var7 == var8) {
- var5.addElement(var6.substring(var8, var8 + 1));
- ++var7;
- var8 = var7;
- }
-
- if (var10 == -1) {
- var5.addElement(var6.substring(var8, var7));
- var8 = var7;
- } else {
- var5.addElement(var6.substring(var8, var10));
- var8 = var10 + 1;
- var7 = var8;
- }
-
- var4 = 0;
- var10 = -1;
- } else {
- ++var7;
- }
- }
- }
-
- if (var8 < var9) {
- var5.addElement(var6.substring(var8));
- }
-
- return var5;
- }
-
- public void drawViewStringAt(Graphics var1, String var2, int var3, int var4) {
- if (this._shadowed) {
- var1.setColor(Color.black);
- var1.drawString(var2, var3 + 2, var4 + 2);
- }
-
- var1.setColor(this._textColor);
- var1.drawString(var2, var3, var4);
- }
-
- int absoluteXOriginForStringWithWidth(int var1) {
- int var2;
- if (this._justification == 2) {
- var2 = ((View)this).width() - this.border.rightMargin() - this.rightIndent() - var1 - this._scrollOffset;
- } else if (this._justification == 1) {
- var2 = this.border.leftMargin() + this.leftIndent() + (((View)this).width() - (this.border.widthMargin() + this.widthIndent()) - var1) / 2 - this._scrollOffset;
- } else {
- var2 = this.border.leftMargin() + this.leftIndent() - this._scrollOffset;
- }
-
- return var2;
- }
-
- void drawViewLine(Graphics var1, String var2, Size var3, int var4) {
- if (var3 == null) {
- var3 = this._font.fontMetrics().stringSize(var2);
- }
-
- int var5 = this.absoluteXOriginForStringWithWidth(var3.width);
- this.drawViewStringAt(var1, var2, var5, var4);
- }
-
- public void drawViewInterior(Graphics var1, Rect var2) {
- int var7 = this.baseline();
- var1.pushState();
- var1.setClipRect(var2);
- if (!this.isTransparent()) {
- var1.setColor(this._backgroundColor);
- var1.fillRect(var2);
- }
-
- if (this._selectionAnchorChar != this._selectionEndChar && this.hasFocus && this.isSelectable()) {
- int var8 = this.xPositionOfCharacter(this.selectionStart());
- int var9 = this.xPositionOfCharacter(this.selectionStop());
- Rect var6 = this.caretRect();
- var1.setColor(this._selectionColor);
- var1.fillRect(var8, var6.y, var9 - var8, var6.height);
- Rect.returnRect(var6);
- }
-
- var1.setFont(this._font);
- String var4 = this.drawableString();
- Size var5 = this._font.fontMetrics().stringSize(var4);
- if (this._canWrap && !this.isEditable()) {
- Vector var3 = this.stringVectorForContents(var2.width);
- int var11 = var3.count();
- if (var11 > 1) {
- var7 += (var2.height - var5.height) / 2;
- int var12 = (var2.height - var5.height * var11) / 2;
- var7 -= var12 + (var11 - 1) * var5.height;
- }
-
- for(int var10 = 0; var10 < var11; ++var10) {
- this.drawViewLine(var1, (String)var3.elementAt(var10), (Size)null, var7);
- var7 += var5.height;
- }
- } else {
- this.drawViewLine(var1, var4, var5, var7);
- }
-
- if (this.isBeingEdited() && this._caretShowing) {
- this.drawViewCaret(var1);
- }
-
- var1.popState();
- }
-
- public void drawViewBorder(Graphics var1) {
- if (this.border != null) {
- this.border.drawInRect(var1, 0, 0, ((View)this).width(), ((View)this).height());
- } else {
- if (!this.isTransparent() && this._backgroundColor != null) {
- var1.setColor(this._backgroundColor);
- var1.fillRect(0, 0, ((View)this).width(), ((View)this).height());
- }
-
- }
- }
-
- public void drawView(Graphics var1) {
- this.drawViewBorder(var1);
- Rect var2 = this.interiorRect();
- this.drawViewInterior(var1, var2);
- Rect.returnRect(var2);
- }
-
- void drawCaret() {
- Rect var1 = this.caretRect();
- ((View)this).addDirtyRect(var1);
- Rect.returnRect(var1);
- }
-
- void hideCaret() {
- this._caretShowing = false;
- this.drawCaret();
- }
-
- void showCaret() {
- this._caretShowing = true;
- this.drawCaret();
- }
-
- public void drawInterior() {
- Rect var1 = this.interiorRect();
- ((View)this).addDirtyRect(var1);
- Rect.returnRect(var1);
- }
-
- public boolean mouseDown(MouseEvent var1) {
- Rect var2 = null;
- this._clickCount = var1.clickCount();
- if (this._clickCount > 3) {
- return true;
- } else if (!this.isSelectable()) {
- return false;
- } else {
- if (!this.isBeingEdited()) {
- if (this.isEditable()) {
- this._startEditing(true);
- } else if (this.isSelectable()) {
- this._startEditing(false);
- }
- }
-
- if (!((View)this).rootView().mouseStillDown()) {
- int var7 = this.charNumberForPoint(var1.x);
- this._clickCount = 0;
- this.selectRange(new Range(var7, 0));
- if (!this.hasSelection() && this.isEditable()) {
- this._caretShowing = this._canBlink = true;
- this.drawCaret();
- this._startBlinkTimer();
- }
-
- return true;
- } else {
- boolean var3 = this._caretShowing;
- this._canBlink = this._caretShowing = false;
- this._mouseDragging = true;
- if (this.hasSelection()) {
- var2 = this.rectForRange(this.selectionStart(), this.selectionStop());
- } else if (var3) {
- this.hideCaret();
- }
-
- Range var5 = this.selectedRange();
- if (var1.isShiftKeyDown() && this._clickCount == 1) {
- this._selectionEndChar = this.charNumberForPoint(var1.x);
- if (var2 != null) {
- var2.unionWith(this.rectForRange(this.selectionStart(), this.selectionStop()));
- } else {
- var2 = this.rectForRange(this.selectionStart(), this.selectionStop());
- }
- } else {
- this._selectionAnchorChar = this._selectionEndChar = this._initialAnchorChar = this.charNumberForPoint(var1.x);
- }
-
- switch (this._clickCount) {
- case 2:
- Range var4 = this.groupForIndex(this._selectionAnchorChar);
- if (!var4.isNullRange()) {
- if (var1.isShiftKeyDown()) {
- Range var6 = new Range(var5);
- var6.unionWith(var4);
- this.selectRange(var6);
- } else {
- this.selectRange(var4);
- }
- }
-
- var2 = null;
- break;
- case 3:
- this.selectRange(new Range(0, this.charCount()));
- var2 = null;
- }
-
- if (var2 != null) {
- ((View)this).addDirtyRect(var2);
- Rect.returnRect(var2);
- }
-
- return true;
- }
- }
- }
-
- void _computeScrollOffset() {
- if (!this.isScrollable) {
- this._scrollOffset = 0;
- } else {
- int var3 = this.border.leftMargin() + this.leftIndent();
- int var4 = this.border.rightMargin() + this.rightIndent();
- Rect var1 = this.caretRect();
- Rect var2 = this.interiorRect();
- String var5 = this.drawableString();
- if (var2.width - (this.leftIndent() + this.rightIndent()) > this._font.fontMetrics().stringWidth(var5)) {
- this._scrollOffset = 0;
- } else if (var1.x >= var3 && var1.x < super.bounds.width - var4) {
- Rect.returnRect(var1);
- } else {
- if (var1.x < var3) {
- this._scrollOffset += var1.x - var3;
- } else {
- this._scrollOffset += var1.x - (super.bounds.width - var4);
- }
-
- Rect.returnRect(var1);
- }
- }
- }
-
- public void mouseDragged(MouseEvent var1) {
- boolean var7 = true;
- if (this.isSelectable()) {
- if (this._clickCount <= 2) {
- int var4 = this._selectionEndChar;
- this._selectionEndChar = this.charNumberForPoint(var1.x);
- if (this._clickCount == 2) {
- Range var8 = this.groupForIndex(this._initialAnchorChar);
- Range var9 = this.groupForIndex(this._selectionEndChar);
- Range var10 = Range.rangeFromUnion(var8, var9);
- if (!var10.isNullRange()) {
- if (var9.index > var8.index) {
- this._selectionAnchorChar = var8.index;
- this._selectionEndChar = var9.index + var9.length;
- } else {
- this._selectionAnchorChar = var8.index + var8.length;
- this._selectionEndChar = var9.index;
- }
- }
- }
-
- if (!((View)this).containsPointInVisibleRect(var1.x, 1)) {
- int var3 = this._scrollOffset;
- this._computeScrollOffset();
- if (this._scrollOffset != var3) {
- this.drawInterior();
- var7 = false;
- }
- }
-
- if (var7 && this._selectionEndChar != var4) {
- int var5;
- int var6;
- if (this._selectionEndChar < this._selectionAnchorChar && var4 > this._selectionAnchorChar || this._selectionEndChar > this._selectionAnchorChar && var4 < this._selectionAnchorChar) {
- var5 = this.selectionStart();
- var6 = this.selectionStop();
- if (var4 < var5) {
- var5 = var4;
- }
-
- if (var4 > var6) {
- var6 = var4;
- }
- } else if (this._selectionEndChar > var4) {
- var5 = var4;
- var6 = this._selectionEndChar;
- } else {
- var5 = this._selectionEndChar;
- var6 = var4;
- }
-
- Rect var2 = this.rectForRange(var5, var6);
- ((View)this).addDirtyRect(var2);
- Rect.returnRect(var2);
- }
-
- }
- }
- }
-
- public void mouseUp(MouseEvent var1) {
- this._mouseDragging = false;
- if (!this.hasSelection() && this.isEditable()) {
- this._caretShowing = this._canBlink = true;
- this.drawCaret();
- }
-
- this._initialAnchorChar = -1;
- this._clickCount = 0;
- }
-
- void _keyDown(KeyEvent var1) {
- if (!var1.isReturnKey() && !var1.isTabKey() && !var1.isBackTabKey()) {
- if (var1.isLeftArrowKey()) {
- if (var1.isShiftKeyDown()) {
- int var16 = this._scrollOffset;
- this.selectRange(this._selectionAnchorChar, this._selectionEndChar - 1);
- this._computeScrollOffset();
- if (this._scrollOffset != var16) {
- this.drawInterior();
- return;
- }
- } else {
- int var11 = this._selectionAnchorChar;
- boolean var13 = false;
- if (this._selectionAnchorChar != this._selectionEndChar) {
- var13 = true;
- this._selectionAnchorChar = this.selectionStart();
- var11 = -1;
- } else if (this._selectionAnchorChar > 0) {
- this.hideCaret();
- --this._selectionAnchorChar;
- }
-
- this._selectionEndChar = this._selectionAnchorChar;
- if (var11 != this._selectionAnchorChar) {
- int var12 = this._scrollOffset;
- this._computeScrollOffset();
- if (var12 != this._scrollOffset || var13) {
- this._caretShowing = true;
- this.drawInterior();
- return;
- }
-
- this.showCaret();
- }
- }
-
- } else if (var1.isRightArrowKey()) {
- if (var1.isShiftKeyDown()) {
- int var15 = this._scrollOffset;
- this.selectRange(this._selectionAnchorChar, this._selectionEndChar + 1);
- this._computeScrollOffset();
- if (this._scrollOffset != var15) {
- this.drawInterior();
- return;
- }
- } else {
- int var3 = this._selectionAnchorChar;
- boolean var8 = false;
- if (this._selectionAnchorChar != this._selectionEndChar) {
- var8 = true;
- this._selectionAnchorChar = this.selectionStop();
- var3 = -1;
- } else if (this._selectionAnchorChar < this._contents.length()) {
- this.hideCaret();
- ++this._selectionAnchorChar;
- if (this._selectionAnchorChar > this._contents.length()) {
- this._selectionAnchorChar = this._contents.length();
- }
- }
-
- this._selectionEndChar = this._selectionAnchorChar;
- if (var3 != this._selectionAnchorChar) {
- int var4 = this._scrollOffset;
- this._computeScrollOffset();
- if (var4 != this._scrollOffset || var8) {
- this._caretShowing = true;
- this.drawInterior();
- return;
- }
-
- this.showCaret();
- }
- }
-
- } else if (var1.isHomeKey()) {
- this.selectedRange();
- if (var1.isShiftKeyDown()) {
- this.selectRange(this._selectionAnchorChar, 0);
- } else {
- this.selectRange(new Range(0, 0));
- }
-
- int var14 = this._scrollOffset;
- this._computeScrollOffset();
- if (this._scrollOffset != var14) {
- this.drawInterior();
- }
-
- } else if (var1.isEndKey()) {
- this.selectedRange();
- int var10 = this._contents.length();
- if (var1.isShiftKeyDown()) {
- this.selectRange(this._selectionAnchorChar, var10);
- } else {
- this.selectRange(new Range(var10, 0));
- }
-
- int var9 = this._scrollOffset;
- this._computeScrollOffset();
- if (this._scrollOffset != var9) {
- this.drawInterior();
- }
-
- } else if (var1.isBackspaceKey() || var1.isDeleteKey() || var1.isPrintableKey()) {
- if (this._oldContents == null) {
- this._oldContents = new FastStringBuffer(this._contents.toString());
- }
-
- this.hideCaret();
- if (this._selectionAnchorChar != this._selectionEndChar) {
- String var2 = this._contents.toString();
- int var5 = this.selectionStart();
- this._contents = new FastStringBuffer(var2.substring(0, var5));
- this._contents.append(var2.substring(this.selectionStop()));
- this._selectionAnchorChar = this._selectionEndChar = var5;
- if (var1.isBackspaceKey() || var1.isDeleteKey()) {
- var1 = null;
- }
- }
-
- if (var1 != null) {
- if (var1.isBackspaceKey()) {
- if (this._contents.length() == 0 || this._selectionAnchorChar == 0) {
- this.showCaret();
- return;
- }
-
- this._contents.removeCharAt(this._selectionAnchorChar - 1);
- --this._selectionAnchorChar;
- } else if (var1.isDeleteKey()) {
- if (this._selectionAnchorChar < this._contents.length()) {
- this._contents.removeCharAt(this._selectionAnchorChar);
- } else {
- this.showCaret();
- }
- } else {
- this._contents.insert((char)var1.key, this._selectionAnchorChar++);
- }
-
- this._selectionEndChar = this._selectionAnchorChar;
- }
-
- this._computeScrollOffset();
- this.drawInterior();
- this.showCaret();
- if (this._owner != null) {
- this._owner.textWasModified(this);
- this._textChanged = true;
- } else {
- if (!this._textChanged) {
- this._textChanged = true;
- }
-
- }
- }
- } else {
- byte var6;
- if (var1.isReturnKey()) {
- var6 = 2;
- } else if (var1.isTabKey()) {
- var6 = 0;
- } else {
- var6 = 1;
- }
-
- if (this._owner == null || this._owner.textEditingWillEnd(this, var6, this._textChanged)) {
- boolean var7 = this._textChanged;
- this._completeEditing();
- if (this._owner != null) {
- this._owner.textEditingDidEnd(this, var6, var7);
- }
-
- if (var1.isBackTabKey()) {
- this.sendBacktabCommand();
- if (var7) {
- this.sendCommitCommand();
- return;
- }
- } else if (var1.isTabKey()) {
- this.sendTabCommand();
- if (var7) {
- this.sendCommitCommand();
- return;
- }
- } else {
- this.sendCommitCommand();
- }
-
- }
- }
- }
-
- public void keyDown(KeyEvent var1) {
- if (this.isEditable()) {
- if (this._filter != null) {
- if (this._filter.acceptsEvent(this, var1, this._keyVector)) {
- this._keyVector.addElement(var1);
- }
- } else {
- this._keyVector.addElement(var1);
- }
-
- while(!this._keyVector.isEmpty()) {
- KeyEvent var2 = (KeyEvent)this._keyVector.removeFirstElement();
- this._keyDown(var2);
- }
-
- }
- }
-
- public void setFocusedView() {
- if (!this._editing && this.isEditable()) {
- this._startEditing(true);
- } else {
- super.setFocusedView();
- }
- }
-
- private void _startEditing(boolean var1) {
- if (super._superview != null) {
- if (this.isEditable()) {
- this._canBlink = this._caretShowing = this.hasInsertionPoint();
- } else {
- this._canBlink = this._caretShowing = false;
- }
-
- this._editing = true;
- if (this.isSelectable()) {
- this.setFocusedView();
- }
-
- if (this.hasInsertionPoint() && this.isEditable()) {
- this.showCaret();
- }
-
- if (var1 && this._owner != null) {
- this._owner.textEditingDidBegin(this);
- }
- }
-
- }
-
- private void _completeEditing() {
- this._oldContents = null;
- boolean var1 = this._textChanged;
- this._editing = false;
- if (super._superview != null) {
- this._ignoreWillBecomeSelected = true;
- super._superview.setFocusedView((View)null);
- this._ignoreWillBecomeSelected = false;
- }
-
- if (var1) {
- this.sendContentsChangedCommand();
- }
-
- }
-
- void _startBlinkTimer() {
- if (this.blinkTimer == null) {
- this.blinkTimer = new Timer(this, "blinkCaret", 750);
- this.blinkTimer.start();
- }
-
- }
-
- void _validateSelection() {
- this.stringValue();
- if (this._selectionAnchorChar == -1) {
- this.selectRange(new Range(0, 0));
- } else {
- if (this._selectionAnchorChar < 0) {
- this._selectionAnchorChar = 0;
- } else if (this._selectionAnchorChar > this._contents.length()) {
- this._selectionAnchorChar = this._contents.length();
- }
-
- if (this._selectionEndChar < 0) {
- this._selectionEndChar = 0;
- } else {
- if (this._selectionEndChar > this._contents.length()) {
- this._selectionEndChar = this._contents.length();
- }
-
- }
- }
- }
-
- public void startFocus() {
- this._validateSelection();
- this.hasFocus = true;
- if (this.isEditable()) {
- this._startBlinkTimer();
- }
-
- ((View)this).setDirty(true);
- }
-
- public void stopFocus() {
- if (this.blinkTimer != null) {
- this.blinkTimer.stop();
- this.blinkTimer = null;
- }
-
- this.hasFocus = false;
- this._scrollOffset = 0;
- if (this._editing && this._owner != null && this.isEditable()) {
- this._owner.textEditingWillEnd(this, 3, this._textChanged);
- }
-
- this._caretShowing = this._canBlink = false;
- if (this._editing && this.isEditable()) {
- if (this._owner != null) {
- this._owner.textEditingDidEnd(this, 3, this._textChanged);
- }
-
- if (this._textChanged) {
- this.sendCommitCommand();
- }
- }
-
- this._editing = this._textChanged = false;
- this.drawInterior();
- }
-
- public void pauseFocus() {
- if (this.blinkTimer != null) {
- this.blinkTimer.stop();
- this.blinkTimer = null;
- this.hideCaret();
- }
-
- }
-
- public void resumeFocus() {
- if (this.isEditable()) {
- this._startBlinkTimer();
- }
-
- }
-
- public void cancelEditing() {
- if (this.isBeingEdited()) {
- if (this._oldContents != null) {
- this._contents = this._oldContents;
- this._oldContents = null;
- }
-
- this._editing = false;
- if (super._superview != null) {
- this._ignoreWillBecomeSelected = true;
- super._superview.setFocusedView((View)null);
- this._ignoreWillBecomeSelected = false;
- }
-
- }
- }
-
- public void completeEditing() {
- boolean var1 = this._textChanged;
- if (this.isBeingEdited()) {
- if (this._owner == null || this._owner.textEditingWillEnd(this, 4, var1)) {
- this._completeEditing();
- if (this._owner != null) {
- this._owner.textEditingDidEnd(this, 4, var1);
- }
-
- }
- }
- }
-
- void sendCommand(String var1, Target var2) {
- if (var2 != null) {
- var2.performCommand(var1, this);
- }
-
- }
-
- void sendTabCommand() {
- if (this._tabCommand != null && this._tabTarget != null) {
- this.sendCommand(this._tabCommand, this._tabTarget);
- } else {
- if (((View)this).rootView() != null) {
- ((View)this).rootView().selectViewAfter(this);
- }
-
- }
- }
-
- void sendBacktabCommand() {
- if (this._backtabCommand != null && this._backtabCommand != null) {
- this.sendCommand(this._backtabCommand, this._backtabTarget);
- } else {
- if (((View)this).rootView() != null) {
- ((View)this).rootView().selectViewBefore(this);
- }
-
- }
- }
-
- void sendContentsChangedCommand() {
- this.sendCommand(this._contentsChangedCommand, this._contentsChangedTarget);
- }
-
- void sendCommitCommand() {
- if (this._commitCommand == null && this._commitTarget == null && this._tabCommand != null && this._tabTarget != null) {
- this.sendTabCommand();
- }
-
- this.sendCommand(this._commitCommand, this._commitTarget);
- }
-
- public boolean canPerformCommand(String var1) {
- return "blinkCaret".equals(var1) || "selectText".equals(var1) || this.isEditable() && "cut".equals(var1) || "copy".equals(var1) || this.isEditable() && "paste".equals(var1);
- }
-
- public void performCommand(String var1, Object var2) {
- if ("blinkCaret".equals(var1)) {
- this.blinkCaret();
- } else if ("selectText".equals(var1)) {
- this.selectText();
- } else if ("cut".equals(var1)) {
- this.cut();
- } else if ("copy".equals(var1)) {
- this.copy();
- } else if ("paste".equals(var1)) {
- this.paste();
- } else {
- throw new NoSuchMethodError("unknown command: " + var1);
- }
- }
-
- private void blinkCaret() {
- if (this._canBlink) {
- this._caretShowing = !this._caretShowing;
- this.drawCaret();
- } else {
- if (!this._mouseDragging && this.hasInsertionPoint()) {
- this._canBlink = true;
- }
-
- }
- }
-
- public void describeClassInfo(ClassInfo var1) {
- super.describeClassInfo(var1);
- var1.addClass("netscape.application.TextField", 3);
- var1.addField("contents", (byte)16);
- var1.addField("owner", (byte)18);
- var1.addField("filter", (byte)18);
- var1.addField("tabTarget", (byte)18);
- var1.addField("backtabTarget", (byte)18);
- var1.addField("contentsChangedTarget", (byte)18);
- var1.addField("commitTarget", (byte)18);
- var1.addField("border", (byte)18);
- var1.addField("font", (byte)18);
- var1.addField("textColor", (byte)18);
- var1.addField("backgroundColor", (byte)18);
- var1.addField("selectionColor", (byte)18);
- var1.addField("caretColor", (byte)18);
- var1.addField("tabCommand", (byte)16);
- var1.addField("backtabCommand", (byte)16);
- var1.addField("contentsChangedCommand", (byte)16);
- var1.addField("commitCommand", (byte)16);
- var1.addField("selectionAnchorChar", (byte)8);
- var1.addField("selectionEndChar", (byte)8);
- var1.addField("justification", (byte)8);
- var1.addField("scrollOffset", (byte)8);
- var1.addField("editable", (byte)0);
- var1.addField("selectable", (byte)0);
- var1.addField("shadowed", (byte)0);
- var1.addField("canWrap", (byte)0);
- var1.addField("wantsAutoscrollEvents", (byte)0);
- var1.addField("transparent", (byte)0);
- var1.addField("drawableCharacter", (byte)2);
- var1.addField("isScrollable", (byte)0);
- }
-
- public void encode(Encoder var1) throws CodingException {
- super.encode(var1);
- var1.encodeString("contents", this._contents.toString());
- var1.encodeObject("owner", (Codable)this._owner);
- var1.encodeObject("filter", (Codable)this._filter);
- var1.encodeObject("tabTarget", (Codable)this._tabTarget);
- var1.encodeObject("backtabTarget", (Codable)this._backtabTarget);
- var1.encodeObject("contentsChangedTarget", (Codable)this._contentsChangedTarget);
- var1.encodeObject("commitTarget", (Codable)this._commitTarget);
- if (this.border instanceof EmptyBorder) {
- var1.encodeObject("border", (Object)null);
- } else {
- var1.encodeObject("border", this.border);
- }
-
- var1.encodeObject("font", this._font);
- var1.encodeObject("textColor", this._textColor);
- var1.encodeObject("backgroundColor", this._backgroundColor);
- var1.encodeObject("selectionColor", this._selectionColor);
- var1.encodeObject("caretColor", this._caretColor);
- var1.encodeString("tabCommand", this._tabCommand);
- var1.encodeString("backtabCommand", this._backtabCommand);
- var1.encodeString("contentsChangedCommand", this._contentsChangedCommand);
- var1.encodeString("commitCommand", this._commitCommand);
- var1.encodeInt("selectionAnchorChar", this._selectionAnchorChar);
- var1.encodeInt("selectionEndChar", this._selectionEndChar);
- var1.encodeInt("justification", this._justification);
- var1.encodeInt("scrollOffset", this._scrollOffset);
- var1.encodeBoolean("editable", this._editable);
- var1.encodeBoolean("selectable", this._selectable);
- var1.encodeBoolean("shadowed", this._shadowed);
- var1.encodeBoolean("canWrap", this._canWrap);
- var1.encodeBoolean("wantsAutoscrollEvents", this.wantsAutoscrollEvents);
- var1.encodeBoolean("transparent", this.transparent);
- var1.encodeChar("drawableCharacter", this._drawableCharacter);
- var1.encodeBoolean("isScrollable", this.isScrollable);
- }
-
- public void decode(Decoder var1) throws CodingException {
- int var3 = var1.versionForClassName("netscape.application.TextField");
- super.decode(var1);
- String var2 = var1.decodeString("contents");
- if (var2 != null) {
- this._contents = new FastStringBuffer(var2);
- }
-
- this._owner = (TextFieldOwner)var1.decodeObject("owner");
- this._filter = (TextFilter)var1.decodeObject("filter");
- this._tabTarget = (Target)var1.decodeObject("tabTarget");
- this._backtabTarget = (Target)var1.decodeObject("backtabTarget");
- this._contentsChangedTarget = (Target)var1.decodeObject("contentsChangedTarget");
- this._commitTarget = (Target)var1.decodeObject("commitTarget");
- this.setBorder((Border)var1.decodeObject("border"));
- this._font = (Font)var1.decodeObject("font");
- this._textColor = (Color)var1.decodeObject("textColor");
- this._backgroundColor = (Color)var1.decodeObject("backgroundColor");
- this._selectionColor = (Color)var1.decodeObject("selectionColor");
- this._caretColor = (Color)var1.decodeObject("caretColor");
- this._tabCommand = var1.decodeString("tabCommand");
- this._backtabCommand = var1.decodeString("backtabCommand");
- this._contentsChangedCommand = var1.decodeString("contentsChangedCommand");
- this._commitCommand = var1.decodeString("commitCommand");
- this._selectionAnchorChar = var1.decodeInt("selectionAnchorChar");
- this._selectionEndChar = var1.decodeInt("selectionEndChar");
- this._justification = var1.decodeInt("justification");
- this._scrollOffset = var1.decodeInt("scrollOffset");
- this._editable = var1.decodeBoolean("editable");
- this._selectable = var1.decodeBoolean("selectable");
- this._shadowed = var1.decodeBoolean("shadowed");
- this._canWrap = var1.decodeBoolean("canWrap");
- this.wantsAutoscrollEvents = var1.decodeBoolean("wantsAutoscrollEvents");
- this.transparent = var1.decodeBoolean("transparent");
- if (var3 >= 2) {
- this._drawableCharacter = var1.decodeChar("drawableCharacter");
- } else {
- this._drawableCharacter = ANY_CHARACTER;
- }
-
- if (var3 >= 3) {
- this.isScrollable = var1.decodeBoolean("isScrollable");
- } else {
- this.isScrollable = true;
- }
- }
-
- public void finishDecoding() throws CodingException {
- super.finishDecoding();
- this.setFont(this._font);
- }
-
- boolean isWordCharacter(char var1) {
- return var1 >= '0' && var1 <= '9' || var1 >= 'A' && var1 <= 'Z' || var1 >= 'a' && var1 <= 'z';
- }
-
- Range groupForIndex(int var1) {
- int var2 = this.charCount();
- if (var2 == 0) {
- return new Range();
- } else if (this._drawableCharacter != ANY_CHARACTER) {
- return new Range(0, this.charCount());
- } else {
- if (var1 < 0) {
- var1 = 0;
- } else if (var1 >= var2) {
- var1 = var2 - 1;
- }
-
- int var5 = var1;
- char var6 = this._contents.charAt(var1);
- if (var6 == '\n') {
- return new Range(var1, 1);
- } else if (var6 != ' ' && var6 != '\t') {
- if (!this.isWordCharacter(var6)) {
- return new Range(var1, 1);
- } else {
- int var7;
- for(var7 = var1; var7 > 0; --var7) {
- var6 = this._contents.charAt(var7 - 1);
- if (!this.isWordCharacter(var6)) {
- break;
- }
- }
-
- int var8;
- for(var8 = var1; var8 < var2 - 1; ++var8) {
- var6 = this._contents.charAt(var8 + 1);
- if (!this.isWordCharacter(var6)) {
- break;
- }
- }
-
- return new Range(var7, var8 - var7 + 1);
- }
- } else {
- while(var5 > 0) {
- var6 = this._contents.charAt(var5);
- if (var6 != ' ' && var6 != '\t') {
- break;
- }
-
- --var5;
- }
-
- int var3 = var5 + 1;
-
- for(var5 = var1; var5 < var2; ++var5) {
- var6 = this._contents.charAt(var5);
- if (var6 != ' ' && var6 != '\t') {
- break;
- }
- }
-
- int var4 = var5 - 1;
- return new Range(var3, var4 - var3 + 1);
- }
- }
- }
-
- private String drawableString() {
- if (this._drawableCharacter == ANY_CHARACTER) {
- return this._contents != null ? this._contents.toString() : "";
- } else if (this._contents != null && this._contents.length() > 0) {
- char[] var1 = new char[this._contents.length()];
- int var2 = 0;
-
- for(int var3 = var1.length; var2 < var3; ++var2) {
- var1[var2] = this._drawableCharacter;
- }
-
- return new String(var1);
- } else {
- return "";
- }
- }
-
- public void willBecomeSelected() {
- if (!this._ignoreWillBecomeSelected) {
- this.selectText();
- }
-
- }
-
- public boolean canBecomeSelectedView() {
- return this.isEditable();
- }
-
- public View nextSelectableView() {
- return this._tabTarget != null && this._tabTarget instanceof View ? (View)this._tabTarget : null;
- }
-
- public View previousSelectableView() {
- return this._backtabTarget != null && this._backtabTarget instanceof View ? (View)this._backtabTarget : null;
- }
-
- public void copy() {
- Application.setClipboardText(this.stringForRange(this.selectedRange()));
- }
-
- public void cut() {
- if (this.isEditable()) {
- Range var1 = this.selectedRange();
- if (var1 == null || var1.index < 0) {
- return;
- }
-
- Application.setClipboardText(this.stringForRange(var1));
- this.replaceRangeWithString(var1, "");
- this.selectRange(new Range(var1.index(), 0));
- }
-
- }
-
- public void paste() {
- if (this.isEditable()) {
- Range var1 = this.selectedRange();
- String var2 = Application.clipboardText();
- if (var1 == null || var2 == null) {
- return;
- }
-
- this.replaceRangeWithString(var1, var2);
- this.selectRange(new Range(var1.index() + var2.length(), 0));
- }
-
- }
-
- public boolean isScrollable() {
- return this.isScrollable;
- }
-
- public void setScrollable(boolean var1) {
- this.isScrollable = var1;
- }
-
- public String formElementText() {
- return this.stringValue();
- }
- }
-