/*
* 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.fun.mapper.indicator;
import com.taobao.luaview.fun.mapper.LuaViewLib;
import com.taobao.luaview.fun.mapper.ui.UIViewMethodMapper;
import com.taobao.luaview.userdata.indicator.UDCustomViewPagerIndicator;
import com.taobao.luaview.util.LuaUtil;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.Varargs;
import java.util.List;
/**
* Method Mapper for Custom View Pager
*
* @param <U>
* @author song
*/
@LuaViewLib(revisions = {"20170306已对标", "iOS无"})
@Deprecated
public class UICustomViewPagerIndicatorMethodMapper<U extends UDCustomViewPagerIndicator> extends UIViewMethodMapper<U> {
private static final String TAG = "UICustomViewPagerIndicatorMethodMapper";
private static final String[] sMethods = new String[]{
"currentPage",//0
"currentItem"//1
};
@Override
public List<String> getAllFunctionNames() {
return mergeFunctionNames(TAG, super.getAllFunctionNames(), sMethods);
}
@Override
public Varargs invoke(int code, U target, Varargs varargs) {
final int opcode = code - super.getAllFunctionNames().size();
switch (opcode) {
case 0:
return currentPage(target, varargs);
case 1:
return currentItem(target, varargs);
}
return super.invoke(code, target, varargs);
}
//--------------------------------------- API --------------------------------------------------
/**
* 滚动到第几页面
*
* @param view
* @param varargs
* @return
*/
public LuaValue currentPage(U view, Varargs varargs) {
return currentItem(view, varargs);
}
public LuaValue setCurrentPage(U view, Varargs varargs) {
return setCurrentItem(view, varargs);
}
public LuaValue getCurrentPage(U view, Varargs varargs) {
return getCurrentItem(view, varargs);
}
/**
* 设置滚动到第几页
*
* @param view
* @param varargs
* @return
*/
public LuaValue currentItem(U view, Varargs varargs) {
if (varargs.narg() > 1) {
return setCurrentItem(view, varargs);
} else {
return getCurrentItem(view, varargs);
}
}
public LuaValue setCurrentItem(U view, Varargs varargs) {
final int item = varargs.optint(2, -1);
return view.setCurrentItem(item);
}
public LuaValue getCurrentItem(U view, Varargs varargs) {
return LuaUtil.toLuaInt(view.getCurrentItem());
}
}