package org.cocoa4android.ui;
import org.cocoa4android.ns.NSTextAlignment;
import android.content.Context;
import android.view.Gravity;
import android.widget.EditText;
public class UITextView extends UIView {
private DisableEditText editText = null;
public UITextView(){
editText = new DisableEditText(context);
editText.setGravity(Gravity.CENTER_VERTICAL);
this.setView(editText);
this.setBackgroundColor(UIColor.clearColor());
}
public void setText(String text){
this.editText.setText(text);
}
public String text(){
return this.editText.getText().toString();
}
private UIColor textColor;
public void setTextColor(UIColor color){
this.editText.setTextColor(color.getColor());
textColor = color;
}
public UIColor textColor(){
return textColor;
}
private NSTextAlignment textAlignment;
public void setTextAlignment(NSTextAlignment alignment){
switch (alignment) {
case NSTextAlignmentLeft:
this.editText.setGravity(editText.getGravity()&Gravity.VERTICAL_GRAVITY_MASK|Gravity.LEFT);
break;
case NSTextAlignmentCenter:
this.editText.setGravity(editText.getGravity()&Gravity.VERTICAL_GRAVITY_MASK|Gravity.CENTER);
break;
case NSTextAlignmentRight:
this.editText.setGravity(editText.getGravity()&Gravity.VERTICAL_GRAVITY_MASK|Gravity.RIGHT);
break;
}
textAlignment = alignment;
}
public NSTextAlignment textAlignment() {
return textAlignment;
}
private boolean editable;
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
this.editText.setEditable(editable);
}
public void setFont(UIFont font) {
this.setFontSize(font.fontSize);
this.editText.setTypeface(font.getFont());
}
public void setFontSize(float fontSize){
this.editText.setTextSize(fontSize*UIScreen.mainScreen().getDensityText());
}
public boolean hasText(){
return editText.getText().length()>0;
}
public class DisableEditText extends EditText{
private boolean editable = true;
public DisableEditText(Context context) {
super(context);
}
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
}
@Override
public boolean onCheckIsTextEditor() {
return editable&&super.onCheckIsTextEditor();
}
}
}