package org.adaptlab.chpir.android.survey.QuestionFragments;
import java.util.List;
import org.adaptlab.chpir.android.survey.Models.Option;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class LabeledSliderQuestionFragment extends SliderQuestionFragment {
@Override
public void beforeAddViewHook(ViewGroup questionComponent) {
if (getQuestion().hasOptions()) {
TableLayout tableLayout = new TableLayout(getActivity());
TableRow tableRow = new TableRow(getActivity());
tableLayout.setStretchAllColumns(true);
for (Option option : getQuestion().options()) {
TextView optionText = new TextView(getActivity());
optionText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 11);
optionText.setGravity(getGravityByPosition(option));
optionText.setText(option.getText());
tableRow.addView(optionText);
}
tableLayout.addView(tableRow);
questionComponent.addView(tableLayout);
}
}
private int getGravityByPosition(Option option) {
List<Option> options = getQuestion().options();
if (options.isEmpty()) return Gravity.START;
if (options.get(0).equals(option)) {
// Left-most label
return Gravity.START;
} else if (options.get(options.size() - 1).equals(option)) {
// Right most label
return Gravity.END;
} else {
// All other labels
return Gravity.CENTER_HORIZONTAL;
}
}
}