package com.jobmineplus.mobile.activities.jbmnpls; import java.util.Date; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.TextView; import com.jobmineplus.mobile.R; import com.jobmineplus.mobile.widgets.JbmnplsAdapterBase.Formatter; import com.jobmineplus.mobile.widgets.JbmnplsAdapterBase.HIGHLIGHTING; import com.jobmineplus.mobile.widgets.JbmnplsHttpClient; import com.jobmineplus.mobile.widgets.Job; import com.jobmineplus.mobile.widgets.Job.APPLY_STATUS; import com.jobmineplus.mobile.widgets.Job.HEADER; import com.jobmineplus.mobile.widgets.TutorialHelper; import com.jobmineplus.mobile.widgets.table.TableParser; import com.jobmineplus.mobile.widgets.table.TableParserOutline; public class Shortlist extends JbmnplsListActivityBase implements TableParser.OnTableParseListener { //====================== // Declaration Objects //====================== public final static String PAGE_NAME = Shortlist.class.getName(); protected final static String DATE_FORMAT = "d MMM yyyy"; private final TableParser parser = new TableParser(); private static final HEADER[] SORT_HEADERS = { HEADER.JOB_TITLE, HEADER.EMPLOYER_NAME, HEADER.LOCATION, HEADER.APPLY }; public static final TableParserOutline SHORTLIST_OUTLINE = new TableParserOutline("UW_CO_STUJOBLST$scrolli$0", HEADER.JOB_IDENTIFIER, HEADER.JOB_TITLE, HEADER.EMPLOYER_NAME, HEADER.UNIT_NAME_1, HEADER.LOCATION, HEADER.APPLY, HEADER.LAST_DATE_TO_APPLY, HEADER.NUM_APPS); protected final int[] WIDGET_RESOURCE_LIST = { R.id.job_title, R.id.job_employer, R.id.location, R.id.job_status_first_line,R.id.job_status_second_line, R.id.job_last_day }; //==================== // Override Methods //==================== @Override public void onCreate(Bundle savedInstanceState) { // Create the tutorial and set the content of this activity // new TutorialHelper(this, R.layout.joblist, // R.layout.tutorial_sorting, R.string.pref_seen_sorting_tutorial); parser.setOnTableRowParse(this); super.onCreate(savedInstanceState); } @Override public String getPageName() { return PAGE_NAME; } @Override public String getUrl() { return JbmnplsHttpClient.GET_LINKS.SHORTLIST; } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int jobId = getList().get(arg2).getId(); goToDescription(jobId); } @Override public void onRowParse(TableParserOutline outline, Object... jobData) { Job job = new Job( // Shortlist constructor (Integer) jobData[0], (String)jobData[1], (String) jobData[2], (String)jobData[4], (Job.APPLY_STATUS) jobData[5], (Date) jobData[6], (Integer) jobData[7]); addJob(job); } @Override public HEADER[] getTableHeaders() { return SORT_HEADERS; } @Override public int[] getJobListItemResources() { return WIDGET_RESOURCE_LIST; } @Override protected void parseWebpage(String html) { clearList(); parser.execute(SHORTLIST_OUTLINE, html); } //================= // List Adapter //================= @Override protected HIGHLIGHTING formatJobListItem(int position, Job job, View[] elements, View layout) { APPLY_STATUS status = job.getApplicationStatus(); String statusStr = status == APPLY_STATUS.CANNOT_APPLY ? "Cannot Apply" : status.toString(); Formatter.setText((TextView)elements[0], job.getTitle()); Formatter.setText((TextView)elements[1], job.getEmployer(), true); Formatter.setText((TextView)elements[2], job.getLocation()); Formatter.setText((TextView)elements[3], (TextView)elements[4], statusStr, true); // Show the closing date if hasnt passed yet Date closingDate = job.getLastDateToApply(); if (closingDate.after(new Date())) { Formatter.setDate((TextView)elements[5], job.getLastDateToApply(), "Apply by"); } else { Formatter.hide(elements[5]); } if (status == APPLY_STATUS.ALREADY_APPLIED) { return HIGHLIGHTING.GREAT; } else if (status == APPLY_STATUS.CANNOT_APPLY || status == APPLY_STATUS.NOT_POSTED) { return HIGHLIGHTING.BAD; } return HIGHLIGHTING.NORMAL; } }