All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.harium.etyl.ui.textfield.TextFieldView Maven / Gradle / Ivy

There is a newer version: 1.0.18
Show newest version
package com.harium.etyl.ui.textfield;

import com.harium.etyl.ui.View;

public abstract class TextFieldView extends View {

	public static final int TEXT_BACKSPACE = 8;
	public static final int TEXT_TAB = 9;
	public static final int TEXT_ENTER = 10;
	public static final int TEXT_ESC = 27;
	public static final int TEXT_DELETE = 127;
	
	protected String text = "";

	protected int cursor = 0;
	protected int fixMark = -1;

	protected int minMark = 0;
	protected int maxMark = 0;

	protected int maxLength = 0;
	protected boolean shift = false;
	protected boolean control = false;

	private OnTextChangedListener onTextChangeListener;
	
	public TextFieldView(int x, int y, int w, int h) {
		super(x,y,w,h);

		clearField();
	}
	
	public void clearField() {
		cursor = 0;
		fixMark = -1;

		minMark = 0;
		maxMark = 0;
		
		text = "";
		
		notifyTextChanged();
	}
	
	//Text Methods
	protected void leftNormal() {

		if (cursor>0) {
			cursor--;
		}

	}

	protected void leftWithControl() {
		cursor = findPreviousBreak(cursor);
	}
	
	private int findPreviousBreak(int cursor) {
		int index = cursor;
		
		if (index > 0) {			
			int i = cursor - 2;

			for(; i > 0; i--) {
				if (text.charAt(i)==' ') {
					i++;
					break;
				}
			}

			index = i;
		}
		return index;
	}

	protected void rightWithControl() {
		cursor = findNextBreak(cursor);
	}
	
	private int findNextBreak(int cursor) {
		int index = cursor+1;

		for(int i = index; i < text.length(); i++) {
			if (text.charAt(i)==' ') {
				index = i;
				break;
			}
		}
		return index;
	}

	protected void rightNormal() {
		if (cursor0) {
		if (!isSelected()) {
			if (cursor > 0 && cursor < text.length()) {
				String t1 = text.substring(0,cursor-1);
				String t2 = text.substring(cursor,text.length());

				text = t1+t2;
			} else if (cursor > 0) {
				text = text.substring(0,cursor-1);
			}

			leftNormal();

		} else {
			deleteMark();
		}
		
		notifyTextChanged();

	}

	protected void eraseAsDelete() {

		if (fixMark==-1) {

			if (cursor




© 2015 - 2025 Weber Informatics LLC | Privacy Policy