package com.springsource.myrestaurants.activities;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.springsource.myrestaurants.R;
import com.springsource.myrestaurants.controllers.NavigationManager;
import com.springsource.myrestaurants.dao.RestaurantDao;
import com.springsource.myrestaurants.models.Restaurant;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class RestListingActivity extends ListActivity {
protected final Logger logger = LoggerFactory.getLogger(getClass());
public static String SelectedRest;
//***************************************
// Activity methods
//***************************************
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<Map<String,String>> events = fetchRests();
SimpleAdapter adapter = new SimpleAdapter(
this,
events,
R.layout.rests_list_item,
new String[] { "name", "city" },
new int[] { R.id.title, R.id.subtitle } );
this.setListAdapter(adapter);
}
//***************************************
// ListActivity methods
//***************************************
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Intent intent = new Intent(this, EventDetailsActivity.class);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// LocalActivityManager activityManager = EventsActivityGroup.group.getLocalActivityManager();
// Window window = activityManager.startActivity("event_details", intent);
// View view = window.getDecorView();
//
// EventsActivityGroup.group.replaceView(view);
Object selectedObj = l.getItemAtPosition(position);
RestListingActivity.SelectedRest = (String)((Map)selectedObj).get("name");
logger.debug("selected obj = " + selectedObj);
NavigationManager.startActivity(v.getContext(), RestDetailsActivity.class);
}
//***************************************
// Private methods
//***************************************
private List<Map<String,String>> fetchRests() {
RestaurantDao restDao = new RestaurantDao();
List<Restaurant> rests = restDao.findAllRestaurants();
List<Map<String,String>> restList = new ArrayList<Map<String,String>>();
for (Restaurant restaurant : rests) {
Map<String, String> map = new HashMap<String, String>();
map.put("name", restaurant.getName());
map.put("city", restaurant.getCity());
restList.add(map);
}
return restList;
/*
List<Event> upcomingEvents = greenhouse.getUpcomingEvents();
List<Map<String,String>> eventList = new ArrayList<Map<String,String>>();
// TODO: Is there w way to populate the table from an Event instead of a Map?
for (Event event : upcomingEvents) {
Map<String, String> map = new HashMap<String, String>();
map.put("title", event.getTitle());
map.put("groupName", event.getGroupName());
eventList.add(map);
}
return eventList;*/
}
}