diff options
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java')
-rw-r--r-- | src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java b/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java deleted file mode 100644 index c82421a2..00000000 --- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java +++ /dev/null @@ -1,93 +0,0 @@ -package de.thedevstack.conversationsplus.ui.forms; - -import android.content.Context; -import android.text.SpannableString; -import android.text.style.ForegroundColorSpan; -import android.text.style.StyleSpan; -import android.view.LayoutInflater; -import android.view.View; - -import java.util.List; - -import de.thedevstack.conversationsplus.R; -import de.thedevstack.conversationsplus.xmpp.forms.Field; - -public abstract class FormFieldWrapper { - - protected final Context context; - protected final Field field; - protected final View view; - protected OnFormFieldValuesEdited onFormFieldValuesEditedListener; - - protected FormFieldWrapper(Context context, Field field) { - this.context = context; - this.field = field; - LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - this.view = inflater.inflate(getLayoutResource(), null); - String label = field.getLabel(); - if (label == null) { - label = field.getFieldName(); - } - setLabel(label, field.isRequired()); - } - - public final void submit() { - this.field.setValues(getValues()); - } - - public final View getView() { - return view; - } - - protected abstract void setLabel(String label, boolean required); - - abstract List<String> getValues(); - - protected abstract void setValues(List<String> values); - - abstract boolean validates(); - - abstract protected int getLayoutResource(); - - abstract void setReadOnly(boolean readOnly); - - protected SpannableString createSpannableLabelString(String label, boolean required) { - SpannableString spannableString = new SpannableString(label + (required ? " *" : "")); - if (required) { - int start = label.length(); - int end = label.length() + 2; - spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), start, end, 0); - spannableString.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.accent)), start, end, 0); - } - return spannableString; - } - - protected void invokeOnFormFieldValuesEdited() { - if (this.onFormFieldValuesEditedListener != null) { - this.onFormFieldValuesEditedListener.onFormFieldValuesEdited(); - } - } - - public boolean edited() { - return !field.getValues().equals(getValues()); - } - - public void setOnFormFieldValuesEditedListener(OnFormFieldValuesEdited listener) { - this.onFormFieldValuesEditedListener = listener; - } - - protected static <F extends FormFieldWrapper> FormFieldWrapper createFromField(Class<F> c, Context context, Field field) { - try { - F fieldWrapper = c.getDeclaredConstructor(Context.class, Field.class).newInstance(context,field); - fieldWrapper.setValues(field.getValues()); - return fieldWrapper; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public interface OnFormFieldValuesEdited { - void onFormFieldValuesEdited(); - } -} |