package controler;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import tool.Swap;
import tool.ZoneDatabase;
import tool.ZoneRadar;
import view.AddLocationForm;
import view.LstView;

import boring.Factory;
import boring.Frame;
import boring.Observer;
import boring.android.FactoryAndroid;

import com.example.zone.R;

import Model.AccessPoint;
import Model.Location;
import android.net.wifi.ScanResult;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Context;
import android.database.sqlite.SQLiteOpenHelper;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

public class Zone extends Activity implements Swap, Observer{
	SQLiteOpenHelper db;
	ZoneRadar radar;

	/**/
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_zone);
		//activate database
		db = ZoneDatabase.openDB(this);
		//activate radar
		radar = new ZoneRadar(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.zone, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
	    // Handle item selection
	    switch (item.getItemId()) {
	        case R.id.APlst:
	    		swap(new LstView(this, AccessPoint.getFromDB(db)));
	            return true;
	        case R.id.LocLst:
	    		swap(new LstView(this, Location.getFromDB(db)));
	            return true;
	        case R.id.addLoc:
	        	swap(new AddLocationForm(this, db,radar, this));
	            return true;
	        case R.id.scan:
	    		swap(new LstView(this,AccessPoint.getFromRadar(db, radar)));
	            return true;
	        case R.id.test:
	        	Factory<View> f = new FactoryAndroid(this);
	        	Frame<View> txt = f.textElem("B==D");
	        	Frame<View> btn = f.button(this, "B==D", 'b');
	        	Frame<View> wri = f.text("write",'w');
	        	List<Frame<View>> lst = new ArrayList();
	        	lst.add(txt);
	        	lst.add(btn);
	        	lst.add(wri);
	        	Frame<View> v = f.raw(lst);
	        	swap(v.container());
	        	return true;
	        default:
	            return super.onOptionsItemSelected(item);
	    }
	}
	
	/**/
	public void swap(final View v){
		ScrollView sv = new ScrollView(this);
		sv.addView(v);
		this.setContentView(sv);
	}
	
	/**/
	private void update(final SQLiteOpenHelper db, final ZoneRadar radar){
		swap(new LstView(this,AccessPoint.getFromRadar(db, radar)));
	}

	@Override
	public void poke(Object par0) {
		Toast.makeText(this, "B==D", 100).show();
	}
}
