/*
* Copyright (C) 2009 University of Washington
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.odk.collect.android.adapters;
import org.odk.collect.android.logic.HierarchyElement;
import org.odk.collect.android.views.HierarchyElementView;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import java.util.ArrayList;
import java.util.List;
public class HierarchyListAdapter extends BaseAdapter {
private Context mContext;
private List<HierarchyElement> mItems = new ArrayList<HierarchyElement>();
public HierarchyListAdapter(Context context) {
mContext = context;
}
/*
* (non-Javadoc)
* @see android.widget.Adapter#getCount()
*/
/*
* (non-Javadoc)
* @see android.widget.Adapter#getCount()
*/
@Override
public int getCount() {
return mItems.size();
}
/*
* (non-Javadoc)
* @see android.widget.Adapter#getItem(int)
*/
@Override
public Object getItem(int position) {
return mItems.get(position);
}
/*
* (non-Javadoc)
* @see android.widget.Adapter#getItemId(int)
*/
@Override
public long getItemId(int position) {
return position;
}
/*
* (non-Javadoc)
* @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
HierarchyElementView hev;
if (convertView == null) {
hev = new HierarchyElementView(mContext, mItems.get(position));
} else {
hev = (HierarchyElementView) convertView;
hev.setPrimaryText(mItems.get(position).getPrimaryText());
hev.setSecondaryText(mItems.get(position).getSecondaryText());
hev.setIcon(mItems.get(position).getIcon());
hev.setColor(mItems.get(position).getColor());
}
if (mItems.get(position).getSecondaryText() == null
|| mItems.get(position).getSecondaryText().equals("")) {
hev.showSecondary(false);
} else {
hev.showSecondary(true);
}
return hev;
}
/**
* Sets the list of items for this adapter to use.
*/
public void setListItems(List<HierarchyElement> it) {
mItems = it;
}
}