package uni.projecte.dataLayer.ThesaurusManager; import java.util.ArrayList; import uni.projecte.R; import uni.projecte.Activities.Thesaurus.ThesaurusInfo; import uni.projecte.dataTypes.Utilities; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageButton; import android.widget.TextView; public class ThesaurusListAdapter extends BaseAdapter { private LayoutInflater mInflater; private ArrayList<ThesaurusElement> thElements; private Context parentContext; private OnClickListener remoteThListener; private String remoteTh; private String plainTh; private String xmlLocalTh; public ThesaurusListAdapter(Context context,ArrayList<ThesaurusElement> thElements,OnClickListener removeThListener){ this.thElements=thElements; this.parentContext=context; this.remoteThListener=removeThListener; mInflater = LayoutInflater.from(context); xmlLocalTh=context.getString(R.string.thSourceLocalBVegana); plainTh=context.getString(R.string.thSourceLocalPlain); remoteTh=context.getString(R.string.thSourceRemote); } public int getCount() { return thElements.size(); } public Object getItem(int position) { return thElements.get(position); } public long getItemId(int position) { return thElements.get(position).getId(); } public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.thesaurus_list_row, null); holder = new ViewHolder(); holder.tvThName = (TextView)convertView.findViewById(R.id.tvThInfName); holder.tvThType = (TextView)convertView.findViewById(R.id.tvThInfType); holder.tvThElemCount = (TextView)convertView.findViewById(R.id.tvThInfItems); holder.tvConnectType = (TextView)convertView.findViewById(R.id.tvThTypeConnection); holder.rmButton= (ImageButton)convertView.findViewById(R.id.ibRemTh); holder.editButton=(ImageButton)convertView.findViewById(R.id.ibEditTh); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.rmButton.setBackgroundResource(android.R.drawable.ic_menu_delete); holder.editButton.setBackgroundResource(android.R.drawable.ic_menu_edit); ThesaurusElement thElem=thElements.get(position); holder.tvThName.setText(thElem.getThName()); if(thElem.getThType()!=null && !thElem.getThType().equals("")) holder.tvThType.setText(Utilities.translateThTypeToCurrentLanguage(parentContext,thElem.getThType())); holder.tvThElemCount.setText("# "+thElem.getThItemCount()+""); holder.tvConnectType.setText(translateThConnection(thElem.getSourceType())); holder.editButton.setTag(thElem.getThName()); holder.editButton.setId((int) thElem.getId()); holder.rmButton.setTag(thElem.getThName()); holder.rmButton.setOnClickListener(remoteThListener); holder.editButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(v.getContext(), ThesaurusInfo.class); Bundle b = new Bundle(); b.putString("thName", (String) v.getTag()); intent.putExtras(b); b = new Bundle(); b.putLong("thId", v.getId()); intent.putExtras(b); ((Activity) v.getContext()).startActivityForResult(intent,0); } } ); return convertView; } private String translateThConnection(String sourceType) { if(sourceType!=null){ if(sourceType.equals("remote")) return remoteTh; else if(sourceType.equals("localBvegana")) return xmlLocalTh; else return plainTh; } else{ return remoteTh; } } static class ViewHolder { TextView tvThName; TextView tvThElemCount; TextView tvThType; TextView tvConnectType; ImageButton rmButton; ImageButton editButton; } }