de.atomfrede.android.thwdroid.mission.activity.DisplayMissionDetailsActivity.java Source code

Java tutorial

Introduction

Here is the source code for de.atomfrede.android.thwdroid.mission.activity.DisplayMissionDetailsActivity.java

Source

/**
 * 
 * DisplayMissionSectionsActivity.java
 *
 *    Copyright $2011 Frederik Hahne
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */

package de.atomfrede.android.thwdroid.mission.activity;

import java.util.UUID;

import org.joda.time.format.DateTimeFormat;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

import com.actionbarsherlock.view.*;

import de.atomfrede.android.thwdroid.R;
import de.atomfrede.android.thwdroid.missionsection.activity.DisplayMissionSectionDetailsActivity;
import de.atomfrede.android.thwdroid.missionsection.adapter.MissionSectionListAdapter;
import de.usetable.ThwExtras;
import de.usetable.core.ThwService;
import de.usetable.model.*;

public class DisplayMissionDetailsActivity extends ModelListActivity {

    MissionSectionListAdapter listAdapter;
    Mission currentMission;
    UUID missionId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        missionId = (UUID) getIntent().getExtras().getSerializable(ThwExtras.ELEMENT_ID);

        // currentMission = (Mission) getModel(missionId);
        // header view
        getListView().addHeaderView(getLayoutInflater().inflate(R.layout.mission_detail, null, true));

    }

    @Override
    public void onThwServiceConnected(ThwService service) {
        super.onThwServiceConnected(service);
    }

    @Override
    public void onLoadMissionDone(Mission mission) {
        super.onLoadMissionDone(mission);
        refresh();
    }

    public void refresh() {
        currentMission = (Mission) getModel(missionId);

        ((TextView) findViewById(R.id.description_text_view)).setText(currentMission.getDescription());

        // mission data
        ((TextView) findViewById(R.id.mission_title)).setText(currentMission.getName());
        ((TextView) findViewById(R.id.description_text_view)).setText(currentMission.getDescription());
        ((TextView) findViewById(R.id.start_time_text_view))
                .setText(currentMission.getStartDate().toString(DateTimeFormat.mediumDate()));
        String unitCount = 0 + "";
        if (currentMission.getAvailableUnitList() != null) {
            unitCount = currentMission.getAvailableUnitList().size() + "";

        }
        TextView freeUnitsTv = (TextView) findViewById(R.id.units_count_text_view);
        if (freeUnitsTv != null)
            freeUnitsTv.setText(unitCount);
        // ((TextView) findViewById(R.id.units_count_text_view)).setText(unitCount);

        listAdapter = new MissionSectionListAdapter(this, currentMission.getMissionSectionList(), false);
        setListAdapter(listAdapter);

    }

    @Override
    public void onResume() {
        super.onResume();
        if (listAdapter != null) {
            listAdapter = new MissionSectionListAdapter(this, currentMission.getMissionSectionList(), false);
            setListAdapter(listAdapter);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getSupportMenuInflater().inflate(R.menu.thwdroid_mission_details_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            super.onBackPressed();
            return true;
        }

        if (item.getItemId() == R.id.menu_save) {
            // if (thwSvc != null)
            // thwSvc.saveChanges();
            saveMission();
            return true;
        }

        if (item.getItemId() == R.id.menu_edit) {
            editMission();
            return true;
        }
        return false;
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        displayMissionSectionDetails(position - 1);
    }

    private void displayMissionSectionDetails(int position) {
        if (position >= 0) {
            Intent displayMissionSectionDetailsIntent = new Intent(this,
                    DisplayMissionSectionDetailsActivity.class);
            displayMissionSectionDetailsIntent.putExtra(ThwExtras.ELEMENT_ID,
                    listAdapter.getMissionSections().get(position).getId());
            startActivity(displayMissionSectionDetailsIntent);
        }
    }

    private void editMission() {
        Intent editMissionIntent = new Intent(this, EditMissionActivity.class);
        editMissionIntent.putExtra(ThwExtras.ELEMENT_ID, missionId);
        startActivity(editMissionIntent);
    }

}