package com.brian.floersch.uim.AssemblerV1; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; public class WidgetAssembler extends ViewAssembler { private static final String BUTTON = "Button"; private static final String TEXT_VIEW = "TextView"; private static final String SEEK_BAR = "SeekBar"; private static final String ON_STOP_TRACKING_TOUCH = "onStopTrackingTouch"; public static final ArrayList<String> WIDGETS = new ArrayList<String>() {{ add(BUTTON); add(TEXT_VIEW); add(SEEK_BAR); }}; private String mLayoutType; public WidgetAssembler(JSONObject jsonObject, UimContext uimContext, ViewGroup parent, String key) { super(jsonObject, uimContext, parent); mLayoutType = key; } @Override public void setUpView() throws JSONException { switch (mLayoutType) { case BUTTON: setView(assembleButton()); break; case TEXT_VIEW: setView(assembleTextView()); break; case SEEK_BAR: setView(assembleSeekBar()); break; } } private Button assembleButton() { Button button = new Button(getAssemblerContext().getContext()); return button; } private TextView assembleTextView() { TextView tv = new TextView(getAssemblerContext().getContext()); return tv; } private SeekBar assembleSeekBar() { SeekBar seekBar = new SeekBar(getAssemblerContext().getContext()); return seekBar; } @Override protected void applyProperties(View view, JSONObject jsonObject) throws JSONException { super.applyProperties(view, jsonObject); if (view instanceof TextView) { TextViewAttributeHelper.applyAttributes(jsonObject, (TextView) view); } if (view instanceof SeekBar && hasEvent(ON_STOP_TRACKING_TOUCH)) { ((SeekBar) view).setOnSeekBarChangeListener(getAssemblerContext().getEventHandler()); } } }