Android Open Source - sana Radio 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;
/* www  . ja  v  a2s . 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.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;

/**
 * RadioElement is a ProcedureElement that can display a question along with multiple-choice 
 * radio box answers. Unlike a MultiSelectElement, only one answer can be selected at a time.
 */
public class RadioElement extends ProcedureElement {
    private List<String> choicelist;
    private String[] choices;
    ArrayList<RadioButton> rblist;
    
    @Override
    public ElementType getType() {
        return ElementType.RADIO;
    }

    @Override
    protected View createView(Context c) {
        ScrollView radioView = new ScrollView(c);
        RadioGroup rg = new RadioGroup(c);
        rg.setOrientation(LinearLayout.VERTICAL);
        choicelist = java.util.Arrays.asList(choices);
        rblist = new ArrayList<RadioButton>();

        if(answer == null)
          answer = "";
        RadioButton checked = null;
        for(Object choice : choicelist) {
            
            RadioButton rb = new RadioButton(c);
            rb.setText((String)choice);
            rg.addView(rb);
            if(answer.equals(choice)) {
                checked = rb;
            }
            rblist.add(rb);
        }
        if(checked != null)
            checked.setChecked(true);
        radioView.addView(rg, new ViewGroup.LayoutParams(-1,-1));
        return encapsulateQuestion(c, radioView);
    }
    
    /**
     * Set the selected radio button to be the one containing <param>answer</param>.
     */
    public void setAnswer(String answer) {
      if(!isViewActive()) {
        this.answer = answer;
      } else { 
        for(RadioButton r : rblist) {
          if(r.getText().toString().equals(answer))
            r.setChecked(true);
          else
            r.setChecked(false);
        }
      }
    }
    
    /**
     * Generate a string contained the user selection (the answer to the question).
     */
    public String getAnswer() {
        if(!isViewActive())
            return answer;
        String s = "";
        for (RadioButton r : rblist) {
            if (r.isChecked())
                s += r.getText().toString();
        }
        return s;
    }
    
    /**
     * Make question and selected 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 RadioElement(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 RadioElement from an XML procedure definition.
     */
    public static RadioElement fromXML(String id, String question, String answer, String concept, String figure, String audio, Node node) {
        String choicesStr = MocaUtil.getNodeAttributeOrDefault(node, "choices", "");
        return new RadioElement(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