com.pacoapp.paco.ui.RawDataActivity.java Source code

Java tutorial

Introduction

Here is the source code for com.pacoapp.paco.ui.RawDataActivity.java

Source

/*
* Copyright 2011 Google Inc. All Rights Reserved.
*
* 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 com.pacoapp.paco.ui;

import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.pacoapp.paco.R;
import com.pacoapp.paco.model.Event;
import com.pacoapp.paco.model.Experiment;
import com.pacoapp.paco.model.ExperimentProviderUtil;
import com.pacoapp.paco.model.Output;
import com.pacoapp.paco.shared.model2.ExperimentGroup;
import com.pacoapp.paco.shared.model2.Input2;
import com.pacoapp.paco.shared.util.ExperimentHelper;
import com.pacoapp.paco.utils.IntentExtraHelper;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import java.util.ArrayList;
import java.util.List;

public class RawDataActivity extends ActionBarActivity implements ExperimentLoadingActivity {

    DateTimeFormatter df = DateTimeFormat.forPattern("MM/dd/yy HH:mm");

    private ExperimentProviderUtil experimentProviderUtil;
    private Experiment experiment;

    private ExperimentGroup experimentGroup;

    private ListView list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        experimentProviderUtil = new ExperimentProviderUtil(this);
        IntentExtraHelper.loadExperimentInfoFromIntent(this, getIntent(), experimentProviderUtil);
        if (experiment == null || experimentGroup == null) {
            displayNoExperimentMessage();
        } else {
            setContentView(R.layout.event_list);

            ActionBar actionBar = getSupportActionBar();
            actionBar.setDisplayUseLogoEnabled(true);
            actionBar.setDisplayShowHomeEnabled(true);
            actionBar.setDisplayHomeAsUpEnabled(true);

            experimentProviderUtil.loadEventsForExperimentGroup(experiment, experimentGroup);
            fillData();
        }
    }

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

    private void displayNoExperimentMessage() {
    }

    private void fillData() {
        List<String> nameAndTime = new ArrayList<String>();
        for (Event event : experiment.getEvents()) {
            StringBuilder buf = new StringBuilder();
            boolean first = true;
            for (Output output : event.getResponses()) {
                if (first) {
                    first = false;
                } else {
                    buf.append(",");
                }
                buf.append(output.getName());
                buf.append("=");
                Input2 input = ExperimentHelper.getInputWithName(experiment.getExperimentDAO(), output.getName(),
                        null);
                if (input != null && input.getResponseType() != null
                        && (input.getResponseType().equals(Input2.PHOTO)
                                || input.getResponseType().equals(Input2.SOUND))) {
                    buf.append("<multimedia:" + input.getResponseType() + ">");
                } else {
                    buf.append(output.getAnswer());
                }
            }
            DateTime responseTime = event.getResponseTime();
            String signalTime = null;
            if (responseTime == null) {
                DateTime scheduledTime = event.getScheduledTime();
                if (scheduledTime != null) {
                    signalTime = scheduledTime.toString(df) + ": " + getString(R.string.missed_signal_value);
                } else {
                    signalTime = getString(R.string.missed_signal_value);
                }
            } else {
                signalTime = responseTime.toString(df);
            }
            nameAndTime.add(signalTime + ": " + buf.toString());
        }
        list = (ListView) findViewById(R.id.eventList);
        list.setAdapter(new ArrayAdapter(this, R.layout.schedule_row, nameAndTime));
    }

    @Override
    public void setExperiment(Experiment experimentByServerId) {
        this.experiment = experimentByServerId;

    }

    @Override
    public Experiment getExperiment() {
        return experiment;
    }

    @Override
    public void setExperimentGroup(ExperimentGroup groupByName) {
        this.experimentGroup = groupByName;

    }

}