package julianwi.javainstaller;

import android.content.Context;
import android.text.Html;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ChecklistAdapter extends BaseAdapter implements OnItemClickListener {
	
	public CheckPoint[] List;
	public Context mcontext;
	public MainActivity ma;
	private int id;
	
	public ChecklistAdapter(MainActivity ma, CheckPoint[] items) {
		mcontext = ma;
		this.ma = ma;
	    List = items;
	}

	@Override
	public int getCount() {
		return List.length;
	}

	@Override
	public Object getItem(int position) {
		if(position<List.length){
			return List[position];
		}
		return "button";
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		TextView tv = (TextView) convertView;
		if(tv == null){
			tv = new TextView(mcontext);
		}
		if(List[position].installed){
			tv.setText(Html.fromHtml("<h2>"+((Update.update[position])?"(updateable) ":"(installed) ")+List[position].text+"</h2>"+List[position].source));
		}
		else{
			tv.setText(Html.fromHtml("<h2>"+List[position].text+"</h2>"+List[position].source));
		}
		return tv;
	}

	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
		this.id = position;
		LinearLayout ll = new LinearLayout(mcontext);
		ll.setOrientation(LinearLayout.VERTICAL);
		TextView tv = new TextView(mcontext);
		tv.setText(Html.fromHtml("<h2>"+List[position].text+"</h2>"+List[position].source+"<br>"+"path:"+List[position].getPath()+"<br>"+"source:"+List[position].getSource()));
		LinearLayout ll2 = new LinearLayout(mcontext);
		Button b = new Button(mcontext);
		b.setText("change path");
		b.setId(1);
		b.setOnClickListener(List[position]);
		if(position==0)b.setEnabled(false);
		Button b2 = new Button(mcontext);
		b2.setText("change source");
		b2.setId(2);
		b2.setOnClickListener(List[position]);
		ll2.addView(b);
		ll2.addView(b2);
		ll.addView(tv);
		ll.addView(ll2);
		Button b1 = new Button(mcontext);
		b1.setText((List[position].installed)?"uninstall":"install");
		b1.setId(0);
		b1.setOnClickListener(List[position]);
		if(Update.update[position]&&List[position].installed){
			TextView tv2 = new TextView(mcontext);
			tv2.setText(Update.updatetext[position]);
			LinearLayout ll3 = new LinearLayout(mcontext);
			Button b3 = new Button(mcontext);
			b3.setText("update");
			b3.setId(3);
			b3.setOnClickListener(List[position]);
			ll3.addView(b1);
			ll3.addView(b3);
			ll.addView(tv2);
			ll.addView(ll3);
		}
		else{
			ll.addView(b1);
		}
		ma.setContentView(ll);
		ma.state = 2;
	}
	
	public void update(){
		onItemClick(null, null, id, 0);
	}

}