/*
* Created by LuaView.
* Copyright (c) 2017, Alibaba Group. All rights reserved.
*
* This source code is licensed under the MIT.
* For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
*/
package com.taobao.luaview.userdata.ui;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import com.taobao.luaview.util.LuaUtil;
import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.Varargs;
/**
* Edit Text 数据封装
*
* @author song
*/
public class UDEditText extends UDTextView<EditText> {
public UDEditText(EditText view, Globals globals, LuaValue metatable, Varargs initParams) {
super(view, globals, metatable, initParams);
}
/**
* 设置提示文本
*
* @param hint
* @return
*/
public UDEditText setHint(CharSequence hint) {
EditText view = getView();
if (view != null) {
view.setHint(hint);
}
return this;
}
/**
* 获取提示文本
*
* @return
*/
public String getHint() {
return getView() != null ? String.valueOf(getView().getHint()) : "";
}
/**
* 设置EditText代理
* BeginEditing --开始编辑
* EndEditing -- 结束编辑
* Clear -- 删除
* Return --返回
*
* @return
*/
public UDEditText setCallback(final LuaValue callback) {
this.mCallback = callback;
final EditText view = getView();
if (view != null) {
if (this.mCallback != null && this.mCallback.istable()) {
view.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
if (mCallback != null && mCallback.istable()) {
LuaUtil.callFunction(LuaUtil.getFunction(mCallback, "BeginEditing", "beginEditing"));
}
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (mCallback != null && mCallback.istable()) {
LuaUtil.callFunction(LuaUtil.getFunction(mCallback, "EndEditing", "endEditing"));
}
}
});
}
}
return this;
}
}