/**
* Copyright (c) 2014, German Neuroinformatics Node (G-Node)
* Copyright (c) 2014, Shumail Mohy-ud-Din <shumailmohyuddin@gmail.com>
* License: BSD-3 (See LICENSE)
*/
package com.g_node.gca.schedule;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import com.g_node.gca.abstracts.AbstractContent;
import com.g_node.gca.abstracts.DatabaseHelper;
import com.g_node.gcaa.R;
public class ScheduleItemExtended extends Activity {
private String SCHEDULE_ITEMTYPE_EVENT = "event";
private String SCHEDULE_ITEMTYPE_TRACK = "track";
private DatabaseHelper dbHelper = DatabaseHelper.getInstance(this);
private String event_abstract_uuid;
private ActionBar actionbar;
private String LOG_TAG = "GCA-Sch-Extend";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbHelper.open();
actionbar = getActionBar();
actionbar.setIcon(getResources().getDrawable(R.drawable.icon_schedule));
actionbar.setHomeButtonEnabled(true);
actionbar.setDisplayHomeAsUpEnabled(true);
Bundle bundle = getIntent().getExtras();
String eType = bundle.getString("type");
if(eType.equals(SCHEDULE_ITEMTYPE_EVENT)) {
setContentView(R.layout.activity_schedule_item_extended_event);
EventScheduleItem eventToDisplay = (EventScheduleItem) bundle.getSerializable("dEvent");
actionbar.setTitle("Event Details");
Log.i("GCA-Schedule-List", "event title: " + eventToDisplay.getTitle());
TextView eventTitleView = (TextView) findViewById(R.id.schedule_event_title);
eventTitleView.setText(eventToDisplay.getTitle());
((TextView) findViewById(R.id.schedule_event_subtitle)).setText(eventToDisplay.getSubtitle());
((TextView) findViewById(R.id.schedule_event_author)).setText(eventToDisplay.getAuthors());
((TextView) findViewById(R.id.schedule_event_time)).setText(eventToDisplay.getStart() + " - " + eventToDisplay.getEnd());
((TextView) findViewById(R.id.schedule_event_location)).setText(eventToDisplay.getLocation());
((TextView) findViewById(R.id.schedule_event_date)).setText(eventToDisplay.getDate());
((TextView) findViewById(R.id.schedule_event_type)).setText(eventToDisplay.getType().toUpperCase());
if (eventToDisplay.getLocation().equals("")) {
findViewById(R.id.schedule_event_location_icon).
setVisibility(View.INVISIBLE);
}
event_abstract_uuid = eventToDisplay.getEventAbstract();
event_abstract_uuid = event_abstract_uuid.substring(event_abstract_uuid.lastIndexOf("/")+1, event_abstract_uuid.length());
Log.i(LOG_TAG, "Abstract ID of event: " + event_abstract_uuid);
Cursor abstractForEventCursor = dbHelper.fetchAbtractDetailsByUUID(
event_abstract_uuid);
Button btnOpenAbstract = (Button) findViewById(R.id.btn_launch_Abstract_from_event);
if(abstractForEventCursor.getCount() < 1) {
btnOpenAbstract.setEnabled(false);
btnOpenAbstract.setVisibility(View.GONE);
//btnOpenAbstract.setVisibility(View.GONE);
} else {
btnOpenAbstract.setVisibility(View.VISIBLE);
btnOpenAbstract.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(ScheduleItemExtended.this, AbstractContent.class);
intent.putExtra("value", event_abstract_uuid);
startActivity(intent);
}
});
}
} else if (eType.equals(SCHEDULE_ITEMTYPE_TRACK)) {
setContentView(R.layout.activity_schedule_item_extended_track);
TrackScheduleItem trackToDisplay = (TrackScheduleItem) bundle.getSerializable("dTrack");
actionbar.setTitle("Track Details");
Log.i("GCA-Schedule-List", "Track title: " + trackToDisplay.getTitle());
((TextView) findViewById(R.id.schedule_track_title)).setText(trackToDisplay.getTitle());
((TextView) findViewById(R.id.schedule_track_subtitle)).setText(trackToDisplay.getSubtitle());
((TextView) findViewById(R.id.schedule_track_chair)).setText("Chair: " + trackToDisplay.getChair());
TableLayout trackEventsTableLayout = (TableLayout) findViewById(R.id.schedule_track_events_detail_table);
EventScheduleItem[] tempTrackEvents = trackToDisplay.getEventsInTrack();
for(int i=0; i < tempTrackEvents.length; i++) {
TableRow tempEventRow = (TableRow) LayoutInflater.from(this).inflate(R.layout.schedule_extended_track_events_table_row, null);
Button btn = (Button) tempEventRow.findViewById(R.id.btn_schedule_track_event_launch);
btn.setText(tempTrackEvents[i].getTitle());
trackEventsTableLayout.addView(tempEventRow);
final EventScheduleItem eventToPass = tempTrackEvents[i];
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent launchEventDetail = new Intent(ScheduleItemExtended.this, ScheduleItemExtended.class);
Bundle bundle = new Bundle();
bundle.putSerializable("dEvent", eventToPass);
//bundle.putString("type", SCHEDULE_ITEMTYPE_SESSION);
bundle.putString("type", SCHEDULE_ITEMTYPE_EVENT);
launchEventDetail.putExtras(bundle);
startActivity(launchEventDetail);
}
});
}
trackEventsTableLayout.requestLayout();
} else {
setContentView(R.layout.activity_schedule_item_extended_session);
SessionScheduleItem sessionToDisplay = (SessionScheduleItem) bundle.getSerializable("dSession");
actionbar.setTitle("Session Details");
((TextView) findViewById(R.id.schedule_session_title)).setText(sessionToDisplay.getTitle());
((TextView) findViewById(R.id.schedule_session_subtitle)).setText(sessionToDisplay.getSubtitle());
TableLayout sessionTracksTrable = (TableLayout) findViewById(R.id.schedule_session_track_detail_table);
TrackScheduleItem[] tempSessionTracks = sessionToDisplay.getTracksInSession();
for(int i=0; i<tempSessionTracks.length; i++ ) {
TableRow tempTrackInRow = (TableRow) LayoutInflater.from(this).inflate(R.layout.schedule_extended_track_events_table_row, null);
Button btn = (Button) tempTrackInRow.findViewById(R.id.btn_schedule_track_event_launch);
btn.setText(tempSessionTracks[i].getTitle());
sessionTracksTrable.addView(tempTrackInRow);
final TrackScheduleItem trackToPass = tempSessionTracks[i];
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent launchEventDetail = new Intent(ScheduleItemExtended.this, ScheduleItemExtended.class);
Bundle bundle = new Bundle();
bundle.putSerializable("dTrack", trackToPass);
bundle.putString("type", SCHEDULE_ITEMTYPE_TRACK);
launchEventDetail.putExtras(bundle);
startActivity(launchEventDetail);
}
});
}
sessionTracksTrable.requestLayout();
}
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int theId = item.getItemId();
if (theId == android.R.id.home) {
finish();
}
return true;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
dbHelper.close();
super.onDestroy();
}
}