package com.quemb.qmbform.view; import com.quemb.qmbform.R; import com.quemb.qmbform.descriptor.RowDescriptor; import com.quemb.qmbform.descriptor.Value; import android.content.Context; import android.widget.SeekBar; import java.util.HashMap; /** * Created by tonimoeckel on 25.08.14. */ public class FormIntegerSliderFieldCell extends FormDetailTextInlineFieldCell { private SeekBar mSeekBar; public final static String CellConfigMaxKey = "CellConfigMaxKey"; public FormIntegerSliderFieldCell(Context context, RowDescriptor rowDescriptor) { super(context, rowDescriptor); } @Override protected void init() { super.init(); mSeekBar = (SeekBar) findViewById(R.id.seekBar); mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { getDetailTextView().setText(Integer.toString(progress)); onValueChanged(new Value<Integer>(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } @Override protected int getResource() { return R.layout.integer_slider_field_cell; } @Override protected void update() { super.update(); @SuppressWarnings("unchecked") Value<Integer> value = (Value<Integer>) getRowDescriptor().getValue(); HashMap<String, Object> config = getRowDescriptor().getCellConfig(); Integer max = config != null && config.containsKey(CellConfigMaxKey) ? (Integer) config.get(CellConfigMaxKey) : 100; mSeekBar.setMax(max); mSeekBar.setProgress(value.getValue()); mSeekBar.setEnabled(!getRowDescriptor().getDisabled()); } public SeekBar getSeekBar() { return mSeekBar; } }