package edu.purdue.app.map;
import java.util.ArrayList;
import java.util.List;
import com.google.android.gms.maps.model.LatLng;
import edu.purdue.app.R;
import edu.purdue.app.map.MapData.Building;
import android.app.DialogFragment;
import android.app.Fragment;
import android.graphics.Point;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout;
public class BuildingListDialog extends DialogFragment implements OnItemClickListener {
OnBuildingSelectedListener listener;
String catSelected;
ListView catList, subList;
/** State of the list */
public static String CATEGORY_LIST = "CATEGORIES";
public String currentCategory = CATEGORY_LIST;
/** Interface for intercepting list selections in fragments */
public interface OnBuildingSelectedListener {
void onBuildingSelected(Building b);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle("Categories");
View v = inflater.inflate(R.layout.map_fragment_buildinglist, container, false);
catList = (ListView) v.findViewById(R.id.map_buildinglist_listview);
catList.setAdapter(
new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,
MapActivity.mpd.getBuildingCategories() ) );
catList.setOnItemClickListener(this);
currentCategory = CATEGORY_LIST;
return v;
}
/** Called when the user selects an item on either list view */
public void onItemClick(AdapterView<?> list, View v, int pos, long id) {
List<String> inflate = null;
if (currentCategory.equals(CATEGORY_LIST)) {
currentCategory = MapActivity.mpd.getBuildingCategories().get(pos);
getDialog().setTitle(currentCategory);
inflate = new ArrayList<String>();
for (Building b : MapActivity.mpd.getBuildings(currentCategory)) {
inflate.add(b.full_name);
}
catList.setAdapter(new ArrayAdapter<String>(
getActivity(), android.R.layout.simple_list_item_1, inflate));
}
else {
listener.onBuildingSelected(MapActivity.mpd.getBuildings(currentCategory).get(pos));
getDialog().dismiss();
}
}
public void setOnBuildingSelectedListener(OnBuildingSelectedListener b) {
this.listener = b;
}
}