Android Open Source - sana Select Element






From Project

Back to project page sana.

License

The source code is released under:

Copyright (c) 2010, Moca All rights reserved. The source code for Moca is licensed under the BSD license as follows: Redistribution and use in source and binary forms, with or without modification, ...

If you think the Android project sana listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.moca.procedure;
//  w w  w.jav  a2 s  . c  o m
import java.util.ArrayList;
import java.util.List;

import org.moca.util.MocaUtil;
import org.w3c.dom.Node;

import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

/**
 * SelectElement is a ProcedureElement that creates a question and roller-type selection
 * drop box so that a user can answer the question. This element type is well suited for 
 * questions that may have one response out of many possible responses.
 */
public class SelectElement extends ProcedureElement {
    private Spinner spin;
    private List<String> choicelist;
    private String[] choices;
    private ArrayAdapter<String> adapter;
    
    @Override
    public ElementType getType() {
        return ElementType.SELECT;
    }

    @Override
    protected View createView(Context c) {
        spin = new Spinner(c);
    
        if(choices == null) 
            choicelist = new ArrayList<String>();
        else
            choicelist = java.util.Arrays.asList(choices);

        adapter = new ArrayAdapter<String>(c,
                android.R.layout.simple_spinner_item,
                choicelist);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(adapter);
        int selected =  choicelist.indexOf(answer);
        if(selected != -1)
            spin.setSelection(selected);
        return encapsulateQuestion(c, spin);
    }
    
    /**
     * Set the spinner drop box selected answer to match <param>answer</param>, 
     * if it exists.
     */
    public void setAnswer(String answer) {
      if(!isViewActive()) {
        this.answer = answer;
      } else {
        this.answer = answer;
        // TODO: Fix this so that the adapter has the correct selected item.
        int index = choicelist.indexOf(answer);
        spin.setSelection(index);
        spin.refreshDrawableState();
      }
    }

    /**
     * Return the selected answer as a string.
     */
    public String getAnswer() {
        if(!isViewActive())
            return answer;
        return adapter.getItem(spin.getSelectedItemPosition()).toString(); 
    }
    
    /**
     * Make question and response into an XML string for storing or transmission.
     */
    public void buildXML(StringBuilder sb) {
        sb.append("<Element type=\"" + getType().name() + "\" id=\"" + id);
        sb.append("\" question=\"" + question);
        sb.append("\" choices=\"" + TextUtils.join(",", choices));
        sb.append("\" answer=\"" + getAnswer()); 
        sb.append("\" concept=\"" + getConcept());
        sb.append("\"/>\n");
    }
    
    private SelectElement(String id, String question, String answer, String concept, String figure, String audio, String[] choices) {
        super(id,question,answer, concept, figure, audio);
        this.choices = choices;
    }
    
    /**
     * Create a SelectElement from an XML procedure definition.
     */
    public static SelectElement fromXML(String id, String question, String answer, String concept, String figure, String audio, Node node) {
        String choicesStr = MocaUtil.getNodeAttributeOrDefault(node, "choices", "");
        return new SelectElement(id, question, answer, concept, figure, audio, choicesStr.split(","));
    }

}




Java Source Code List

.Moca.java
org.moca.Constants.java
org.moca.ImagePreviewDialog.java
org.moca.ScalingImageAdapter.java
org.moca.SelectableImageView.java
org.moca.activity.NotificationList.java
org.moca.activity.NotificationViewer.java
org.moca.activity.PatientInfoDialog.java
org.moca.activity.ProcedureRunner.java
org.moca.activity.ProceduresList.java
org.moca.activity.SavedProcedureList.java
org.moca.activity.Settings.java
org.moca.db.EncounterDAO.java
org.moca.db.EventDAO.java
org.moca.db.EventProvider.java
org.moca.db.Event.java
org.moca.db.ImageProvider.java
org.moca.db.MocaDB.java
org.moca.db.NotificationMessage.java
org.moca.db.NotificationProvider.java
org.moca.db.PatientInfo.java
org.moca.db.PatientProvider.java
org.moca.db.PatientValidator.java
org.moca.db.ProcedureDAO.java
org.moca.db.ProcedureProvider.java
org.moca.db.SavedProcedureProvider.java
org.moca.db.SoundProvider.java
org.moca.media.AudioPlayer.java
org.moca.net.MDSCode.java
org.moca.net.MDSInterface.java
org.moca.net.MDSNotification.java
org.moca.net.MDSResult.java
org.moca.net.SMSReceive.java
org.moca.procedure.BinaryUploadElement.java
org.moca.procedure.DateElement.java
org.moca.procedure.GpsElement.java
org.moca.procedure.MultiSelectElement.java
org.moca.procedure.PatientIdElement.java
org.moca.procedure.PictureElement.java
org.moca.procedure.ProcedureElement.java
org.moca.procedure.ProcedurePage.java
org.moca.procedure.ProcedureParseException.java
org.moca.procedure.Procedure.java
org.moca.procedure.RadioElement.java
org.moca.procedure.SelectElement.java
org.moca.procedure.SoundElement.java
org.moca.procedure.TextElement.java
org.moca.procedure.TextEntryElement.java
org.moca.procedure.ValidationError.java
org.moca.procedure.branching.Criteria.java
org.moca.procedure.branching.Criterion.java
org.moca.procedure.branching.LogicAnd.java
org.moca.procedure.branching.LogicBase.java
org.moca.procedure.branching.LogicNot.java
org.moca.procedure.branching.LogicOr.java
org.moca.service.BackgroundUploader.java
org.moca.service.QueueManager.java
org.moca.service.ServiceConnector.java
org.moca.service.ServiceListener.java
org.moca.task.CheckCredentialsTask.java
org.moca.task.ImageProcessingTaskRequest.java
org.moca.task.ImageProcessingTask.java
org.moca.task.MDSSyncTask.java
org.moca.task.PatientLookupListener.java
org.moca.task.PatientLookupTask.java
org.moca.task.ResetDatabaseTask.java
org.moca.task.ValidationListener.java
org.moca.util.MocaUtil.java
org.moca.util.UserDatabase.java