package com.basket.adapters;
import java.util.List;
import com.basket.general.Section;
import com.basket.general.SectionItem;
import com.example.basket.R;
import com.example.basket.R.color;
import com.example.basket.R.id;
import com.example.basket.R.layout;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class SectionListAdapter extends BaseExpandableListAdapter {
private Context context;
private LayoutInflater inflater;
private List<Section> sections;
public SectionListAdapter(Context context, List<Section> sections) {
this.sections = sections;
this.inflater = LayoutInflater.from(context);
this.context = context;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return sections.get(groupPosition).getSectionItems().get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return sections.get(groupPosition).getSectionItems().get(childPosition).getId();
}
@Override
public int getChildrenCount(int groupPosition) {
return sections.get(groupPosition).getSectionItems().size();
}
@Override
public Object getGroup(int groupPosition) {
return this.sections.get(groupPosition);
}
@Override
public int getGroupCount() {
return this.sections.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.slidingmenu_sectionview,
parent, false);
}
TextView textView = (TextView) convertView
.findViewById(R.id.slidingmenu_section_title);
textView.setText(((Section) getGroup(groupPosition)).getTitle());
if(!((Section)getGroup(groupPosition)).isBold()){
textView.setBackgroundColor(parent.getResources().getColor(R.color.black));
}
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.slidingmenu_sectionitem,
parent, false);
}
SectionItem oSectionItem = this.sections.get(groupPosition).getSectionItems().get(childPosition);
TextView textView = (TextView) convertView
.findViewById(R.id.slidingmenu_sectionitem_label);
textView.setText(oSectionItem.getTitle());
final ImageView itemIcon = (ImageView) convertView
.findViewById(R.id.slidingmenu_sectionitem_icon);
itemIcon.setImageDrawable(getDrawableByName(
oSectionItem.getIcon(), this.context));
return convertView;
}
public static Drawable getDrawableByName( String name, Context context ) {
int drawableResource = context.getResources().getIdentifier(
name,
"drawable",
context.getPackageName());
if ( drawableResource == 0 ) {
throw new RuntimeException("Can't find drawable with name: " + name );
}
return context.getResources().getDrawable(drawableResource);
}
}