package cn.mutils.app.ui.adapter; import java.util.List; import cn.mutils.core.ILabelItem; import kankan.wheel.widget.WheelAdapter; /** * {@link WheelAdapter} Whose data item is {@link ILabelItem} */ @SuppressWarnings("unused") public class LabelWheelAdapter implements WheelAdapter { protected List<? extends ILabelItem> mDataProvider; protected int mMaxDesiredLength; public List<? extends ILabelItem> getDataProvider() { return mDataProvider; } public void setDataProvider(List<? extends ILabelItem> dataProvider) { mDataProvider = dataProvider; } public ILabelItem getLabelItem(int index) { if (mDataProvider == null) { return null; } if (index < 0 || index >= mDataProvider.size()) { return null; } return mDataProvider.get(index); } @Override public int getItemsCount() { if (mDataProvider == null) { return 0; } return mDataProvider.size(); } @Override public String getItem(int index) { if (mDataProvider == null) { return null; } if (index < 0 || index >= mDataProvider.size()) { return null; } String str = mDataProvider.get(index).getLabel(); if (str != null && mMaxDesiredLength > 1) { if (str.length() > mMaxDesiredLength) { str = str.substring(0, mMaxDesiredLength - 1) + "..."; } } return str; } @Override public int getMaximumLength() { int max = 0; for (int i = getItemsCount() - 1; i >= 0; i--) { String label = mDataProvider.get(i).getLabel(); if (label != null) { int labelLength = label.length(); if (labelLength > max) { max = labelLength; } } } return max; } public void setMaxDesiredLength(int maxDesiredLength) { mMaxDesiredLength = maxDesiredLength; } }