int width;
	protected void insertCharacter() {		if (this.text != null && this.text.length() >= this.maxSize) {			return;		}		char insertChar = this.caretChar;		//#debug		System.out.println(this + ": inserting character " + insertChar );		String myText;		int width;		if (this.isPassword) {			myText = this.passwordText;			//#ifdef polish.css.font-bitmap				if (this.bitMapFont != null) {					width = this.bitMapFont.getViewer("*").getWidth();				} else {			//#endif					width = this.font.charWidth('*');			//#ifdef polish.css.font-bitmap				}			//#endif		} else {			myText = this.text;			//#ifdef polish.css.font-bitmap				if (this.bitMapFont != null) {					width = this.caretViewer.getWidth();				} else {			//#endif					width = this.font.charWidth(insertChar);			//#ifdef polish.css.font-bitmap				}			//#endif		}		this.caretX += width;		if (myText == null) {			myText = "" + insertChar;		} else {			myText = myText.substring( 0, this.caretPosition )				+ insertChar + myText.substring( this.caretPosition );		}		this.caretPosition++;		this.caretColumn++;		if ( ( (this.inputMode == MODE_FIRST_UPPERCASE || this.nextCharUppercase) 				&& insertChar == ' ') 			|| ( insertChar == '.' )) 		{			this.nextCharUppercase = true;		} else {			this.nextCharUppercase = false;		}		this.caretChar = this.editingCaretChar;		//#ifdef polish.css.font-bitmap			if (this.bitMapFont != null) {				this.caretViewer = this.editingCaretViewer;			} else {		//#endif				this.caretWidth = this.font.charWidth(this.caretChar);		//#ifdef polish.css.font-bitmap			}		//#endif		setString( myText );		if (getScreen() instanceof Form) {			notifyStateChanged();		}		//#if polish.css.textfield-show-length  && (polish.TextField.showInputInfo != false)			if (this.showLength) {				updateInfo();			}		//#endif		//checkCaretPosition();	}