package com.papagiannis.tuberun;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import com.papagiannis.tuberun.plan.Plan;
import com.papagiannis.tuberun.stores.PlanStore;
public class PlanStoredFragment extends ListFragment {
private final SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd/MM/yyyy", Locale.ENGLISH);
PlanStore store = PlanStore.getInstance();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
View layout = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
try {
layout = inflater.inflate(R.layout.saved_plans_list, null);
} catch (Exception e) {
}
return layout;
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onResume() {
super.onResume();
if (layout!=null) updateList();
}
public void updateList() {
ArrayList<HashMap<String, Object>> to_display = new ArrayList<HashMap<String, Object>>();
int planIndex=0;
for (Plan plan : store.getAll(getActivity())) {
HashMap<String, Object> m = new HashMap<String, Object>();
m.put("title", plan.toString());
m.put("date", dateFormat.format(plan.getTravelDate()));
m.put("routesno", plan.getRoutes().size()+" routes");
final int index=planIndex;
OnClickListener deleteListener=new OnClickListener() {
@Override
public void onClick(View v) {
store.removeIndex(index, getActivity());
updateList();
}
};
m.put("button",deleteListener);
to_display.add(m);
planIndex++;
}
SimpleAdapter adapter = new SimpleAdapter(getActivity(), to_display,
R.layout.saved_plans_list_item, new String[] { "title",
"date", "routesno", "button" },
new int[] { R.id.title_textview, R.id.date_textview,
R.id.routesno_textview, R.id.remove_button });
adapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
if (view.getId()==R.id.remove_button) {
Button b=(Button) view;
b.setOnClickListener((OnClickListener)data);
return true;
}
return false;
}
});
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
try {
Intent i = new Intent(getActivity(), RouteResultsActivity.class);
i.putExtra("planStoreIndex", position);
startActivity(i);
} catch (Exception e) {
}
}
}