package mobi.monaca.framework.nativeui;
import mobi.monaca.framework.nativeui.component.Component;
import mobi.monaca.framework.nativeui.exception.NativeUIException;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
public class ComponentEventer extends Component{
protected JSONObject event;
protected UIContext context;
protected static final String[] VALID_KEYS = {"onTap", "onSearch", "onChange"};
public ComponentEventer(UIContext context, JSONObject event) throws NativeUIException, JSONException {
super(context, event);
this.context = context;
this.event = event == null ? new JSONObject() : event;
}
public void onTap() {
try {
context.react("javascript:" + event.getString("onTap"));
} catch (Exception e) {
}
}
public void onChange() {
try {
context.react("javascript:" + event.getString("onChange"));
} catch (Exception e) {
}
}
public void onSearch(View view, String keyword) {
InputMethodManager imm = (InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
try {
JSONObject js = new JSONObject();
js.put("word", keyword);
context.react(String.format(
"javascript:__search_text = (%s).word;", js.toString()));
context.react("javascript:" + event.getString("onSearch"));
} catch (Exception e) {
}
}
@Override
public String getComponentName() {
return ComponentEventer.class.getSimpleName();
}
@Override
public String[] getValidKeys() {
return VALID_KEYS;
}
@Override
public View getView() {
return null;
}
@Override
public void updateStyle(JSONObject update) throws NativeUIException {
}
@Override
public JSONObject getDefaultStyle() {
return null;
}
}