X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fro%2Fieval%2Funical%2FEventListActivity.java;h=642b77f2115d05cc0b25b45b0964d79bb3ba7f9e;hb=6f8cabdd198b7e9c9f65d5ec83fc5fd55e774c0d;hp=17b219a320895777fc6e6165a210bf3dc2b0e5df;hpb=9dcd994f872e2281e76f512319e7ca23b4c3dbb5;p=unical.git diff --git a/src/ro/ieval/unical/EventListActivity.java b/src/ro/ieval/unical/EventListActivity.java index 17b219a..642b77f 100644 --- a/src/ro/ieval/unical/EventListActivity.java +++ b/src/ro/ieval/unical/EventListActivity.java @@ -1,18 +1,25 @@ package ro.ieval.unical; -import java.util.Arrays; -import java.util.Comparator; - -import android.app.Activity; -import android.graphics.Color; +import android.app.ListActivity; +import android.content.Context; +import android.content.Intent; import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.LinearLayout; - +import android.view.ViewGroup; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; +import android.widget.TextView; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Date; -public class EventListActivity extends Activity { +public final class EventListActivity extends ListActivity { private static class EventComparator implements Comparator { @Override public int compare(final Event lhs, final Event rhs) { @@ -25,27 +32,73 @@ public class EventListActivity extends Activity { } + private class EventAdapter extends ArrayAdapter { + public EventAdapter() {//NOPMD + super(EventListActivity.this, R.layout.event_row_layout); + } + + @Override + public View getView(final int position, final View convertView, final ViewGroup parent) { + final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + final View rowView = inflater.inflate(R.layout.event_row_layout, parent, false); + final TextView title = (TextView) rowView.findViewById(R.id.smalleventtitle); + final TextView dstart = (TextView) rowView.findViewById(R.id.smalldatestart); + final TextView dend = (TextView) rowView.findViewById(R.id.smalldateend); + final View header = rowView.findViewById(R.id.rowHeader); + header.setBackgroundColor(events[position].eventColour); + title.setText(events[position].title); + dstart.setText(new Date(events[position].dtstart).toString()); + dend.setText(new Date(events[position].dtend).toString()); + + return rowView; + } + } + + private Event[] events; + + @Override + public void onListItemClick(final ListView view, final View v, final int pos, final long id) { + DisplayEventActivity.displayEvent(this, events[pos]); + } + + private void displayEvents() { + events = Event.getAllEvents(this); + + Arrays.sort(events, new EventComparator()); + int idx=-1;//index of the first event to be displayed + for(int i=0; inew Date().getTime()) idx=i; + if(idx==-1) idx=0; + + setListAdapter(new EventAdapter()); + getListView().setSelectionFromTop(idx, 0); + } + @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.event_list); - - final Event events[]=Event.getAllEvents(getBaseContext()); - final LinearLayout layout = (LinearLayout) findViewById(R.id.eventslayout); - Arrays.sort(events,new EventComparator()); - for(final Event event : events) { - final Button button=new Button(this); - button.setText(event.title); - - button.setTextColor(Color.BLACK); - button.setOnClickListener(new OnClickListener() { - @Override - public void onClick(final View v) { - DisplayEventActivity.displayEvent(EventListActivity.this, event); - } - }); - layout.addView(button); + displayEvents(); + } + + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + final MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.event_list, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + switch (item.getItemId()) { + case R.id.add_event: + startActivity(new Intent(this,AddEventActivity.class)); + return true; + case R.id.refresh: + displayEvents(); + return true; + default: + return false; } } - + }