package com.stxnext.management.android.ui.dependencies;
import java.util.List;
import android.app.Activity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.stxnext.management.android.R;
import com.stxnext.management.android.dto.local.UserProperty;
public class PropertyListAdapter extends BaseAdapter {
private final Activity context;
private List<UserProperty> properties;
private ListView listView;
public PropertyListAdapter(Activity context, ListView listView, List<UserProperty> properties) {
this.context = context;
this.properties = properties;
this.listView = listView;
}
public void setProperties(List<UserProperty> properties) {
this.properties = properties;
}
@Override
public int getCount() {
return properties.size();
}
@Override
public Object getItem(int position) {
return properties.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final UserProperty item = properties.get(position);
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(this.context);
convertView = inflater.inflate(R.layout.adapter_user_property, parent, false);
TextView nameView = (TextView) convertView
.findViewById(R.id.nameView);
TextView valueView = (TextView) convertView
.findViewById(R.id.valueView);
holder.parent = convertView;
holder.nameView = nameView;
holder.valueView = valueView;
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
return prepareView(position, item, holder);
}
private View prepareView(final int position, final UserProperty item,
final ViewHolder holder) {
holder.nameView.setText(item.getName());
holder.valueView.setText(Html.fromHtml(item.getValue()));
holder.valueView.setMovementMethod(LinkMovementMethod.getInstance());
return holder.parent;
}
public class ViewHolder implements Cloneable {
private TextView nameView;
private TextView valueView;
private View parent;
}
}