diff --git a/README.md b/README.md index b9458e8..3419f8a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ This library aids in building bigger forms on-the-fly. Forms with large number o ## Installation Add this in your app's **build.gradle** file: ``` -compile 'me.riddhimanadib.form-master:form-master:1.1.0' +implementation 'me.riddhimanadib.form-master:form-master:1.1.0' ``` @@ -49,7 +49,7 @@ compile 'me.riddhimanadib.form-master:form-master:1.1.0' ``` 'java' // initialize variables mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); -mFormBuilder = new FormBuildHelper(this, mRecyclerView); +mFormBuilder = new FormBuilder(this, mRecyclerView); // declare form elements FormHeader header = FormHeader.createInstance("Personal Info"); @@ -62,7 +62,6 @@ formItems.add(element); // build and display the form mFormBuilder.addFormElements(formItems); -mFormBuilder.refreshView(); ``` 3. Now build and run!! diff --git a/app/src/main/java/me/riddhimanadib/fastformbuilder/LoginFormActivity.java b/app/src/main/java/me/riddhimanadib/fastformbuilder/LoginFormActivity.java index bfd96c1..160a7e1 100644 --- a/app/src/main/java/me/riddhimanadib/fastformbuilder/LoginFormActivity.java +++ b/app/src/main/java/me/riddhimanadib/fastformbuilder/LoginFormActivity.java @@ -9,6 +9,7 @@ import android.widget.Toast; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import me.riddhimanadib.formmaster.FormBuilder; @@ -18,8 +19,8 @@ public class LoginFormActivity extends AppCompatActivity { - private static final int TAG_EMAIL = 12; - private static final int TAG_PASSWORD = 2234; + private static final String TAG_EMAIL = "email"; + private static final String TAG_PASSWORD = "password"; private RecyclerView mRecyclerView; private FormBuilder mFormBuilder; @@ -40,6 +41,22 @@ public void onClick(View view) { BaseFormElement loginElement = mFormBuilder.getFormElement(TAG_EMAIL); BaseFormElement passwordElement = mFormBuilder.getFormElement(TAG_PASSWORD); Toast.makeText(LoginFormActivity.this, "Do whatever you want with this data\n" + loginElement.getValue() + "\n" + passwordElement.getValue(), Toast.LENGTH_SHORT).show(); + + // getFormElementIterator + StringBuilder stringBuilder = new StringBuilder(); + for (Iterator iterator = mFormBuilder.getFormElementIterator(); iterator.hasNext(); ) { + BaseFormElement baseFormElement = iterator.next(); + stringBuilder.append(baseFormElement.getTag()); + stringBuilder.append(":"); + stringBuilder.append(baseFormElement.getValue()); + } + Toast.makeText(LoginFormActivity.this, stringBuilder.toString(), Toast.LENGTH_SHORT).show(); + + // convertToDataMap + Toast.makeText(LoginFormActivity.this, mFormBuilder.convertToDataMap().toString(), Toast.LENGTH_SHORT).show(); + + + } else { Toast.makeText(LoginFormActivity.this, "Invalid form data", Toast.LENGTH_SHORT).show(); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/FormBuilder.java b/form-master/src/main/java/me/riddhimanadib/formmaster/FormBuilder.java index 27c8c46..c83a942 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/FormBuilder.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/FormBuilder.java @@ -6,7 +6,11 @@ import android.support.v7.widget.RecyclerView; import android.text.TextUtils; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.ListIterator; +import java.util.Map; import me.riddhimanadib.formmaster.adapter.FormAdapter; import me.riddhimanadib.formmaster.listener.OnFormElementValueChangedListener; @@ -73,10 +77,32 @@ public void addFormElements(List baseFormElements) { * @param tag * @return */ - public BaseFormElement getFormElement(int tag) { + public BaseFormElement getFormElement(String tag) { return this.mFormAdapter.getValueAtTag(tag); } + /** + * get the Iterator + * @return + */ + public Iterator getFormElementIterator() { + return this.mFormAdapter.getIterator(); + } + + /** + * convert to a map which key is tag + * @return + */ + public Map convertToDataMap() { + Map dataSetMap = new HashMap<>(mFormAdapter.getItemCount()); + for (Iterator iterator = getFormElementIterator(); iterator.hasNext(); ) { + BaseFormElement baseFormElement = iterator.next(); + dataSetMap.put(baseFormElement.getTag(), baseFormElement.getValue()); + } + return dataSetMap; + } + + /** * * return true if the form is valid diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/adapter/FormAdapter.java b/form-master/src/main/java/me/riddhimanadib/formmaster/adapter/FormAdapter.java index f056edb..511b7ec 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/adapter/FormAdapter.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/adapter/FormAdapter.java @@ -7,7 +7,10 @@ import android.view.ViewGroup; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Map; import me.riddhimanadib.formmaster.R; import me.riddhimanadib.formmaster.listener.FormItemEditTextListener; @@ -83,9 +86,9 @@ public void setValueAtIndex(int position, String value) { * @param tag * @param value */ - public void setValueAtTag(int tag, String value) { + public void setValueAtTag(String tag, String value) { for (BaseFormElement f : this.mDataset) { - if (f.getTag() == tag) { + if (f.getTag().equals(tag)) { f.setValue(value); return; } @@ -107,9 +110,9 @@ public BaseFormElement getValueAtIndex(int index) { * @param tag * @return */ - public BaseFormElement getValueAtTag(int tag) { + public BaseFormElement getValueAtTag(String tag) { for (BaseFormElement f : this.mDataset) { - if (f.getTag() == tag) { + if (f.getTag().equals(tag)) { return f; } } @@ -125,6 +128,14 @@ public List getDataset() { return mDataset; } + /** + * gets the iterator of dataset + * @return + */ + public Iterator getIterator() { + return mDataset.iterator(); + } + /** * get value changed listener * @return diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/BaseFormElement.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/BaseFormElement.java index aacb54a..23e7088 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/BaseFormElement.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/BaseFormElement.java @@ -21,7 +21,7 @@ public class BaseFormElement { public static final int TYPE_SWITCH = 11; // private variables - private int mTag; // unique tag to identify the object + private String mTag; // unique tag to identify the object private int mType; // type for the form element private String mTitle; // title to be shown on left private String mValue; // value to be shown on right @@ -29,7 +29,7 @@ public class BaseFormElement { private boolean mRequired; // value to set is the field is required // setters - public BaseFormElement setTag(int mTag) { + public BaseFormElement setTag(String mTag) { this.mTag = mTag; return this; } @@ -60,7 +60,7 @@ public BaseFormElement setRequired(boolean required) { } // getters - public int getTag() { + public String getTag() { return this.mTag; } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerDate.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerDate.java index ac41878..992bac9 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerDate.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerDate.java @@ -21,7 +21,7 @@ public static FormElementPickerDate createInstance() { return formElementPickerDate; } - public FormElementPickerDate setTag(int mTag) { + public FormElementPickerDate setTag(String mTag) { return (FormElementPickerDate) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerMulti.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerMulti.java index 9e67bd3..183e73b 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerMulti.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerMulti.java @@ -24,7 +24,7 @@ public static FormElementPickerMulti createInstance() { return FormElementPickerMulti; } - public FormElementPickerMulti setTag(int mTag) { + public FormElementPickerMulti setTag(String mTag) { return (FormElementPickerMulti) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java index d592b45..7cd1245 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerSingle.java @@ -23,7 +23,7 @@ public static FormElementPickerSingle createInstance() { return formElementPickerSingle; } - public FormElementPickerSingle setTag(int mTag) { + public FormElementPickerSingle setTag(String mTag) { return (FormElementPickerSingle) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerTime.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerTime.java index 5907159..940e81b 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerTime.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementPickerTime.java @@ -21,7 +21,7 @@ public static FormElementPickerTime createInstance() { return formElementPickerTime; } - public FormElementPickerTime setTag(int mTag) { + public FormElementPickerTime setTag(String mTag) { return (FormElementPickerTime) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementSwitch.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementSwitch.java index c0bb48a..d3749eb 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementSwitch.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementSwitch.java @@ -18,7 +18,7 @@ public static FormElementSwitch createInstance() { return FormElementSwitch; } - public FormElementSwitch setTag(int mTag) { + public FormElementSwitch setTag(String mTag) { return (FormElementSwitch) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextEmail.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextEmail.java index c3c1161..9ccd2b6 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextEmail.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextEmail.java @@ -15,7 +15,7 @@ public static FormElementTextEmail createInstance() { return FormElementTextEmail; } - public FormElementTextEmail setTag(int mTag) { + public FormElementTextEmail setTag(String mTag) { return (FormElementTextEmail) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextMultiLine.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextMultiLine.java index 82feb8b..95a9588 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextMultiLine.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextMultiLine.java @@ -15,7 +15,7 @@ public static FormElementTextMultiLine createInstance() { return FormElementTextMultiLine; } - public FormElementTextMultiLine setTag(int mTag) { + public FormElementTextMultiLine setTag(String mTag) { return (FormElementTextMultiLine) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextNumber.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextNumber.java index 3ba8b40..17652d0 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextNumber.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextNumber.java @@ -15,7 +15,7 @@ public static FormElementTextNumber createInstance() { return FormElementTextNumber; } - public FormElementTextNumber setTag(int mTag) { + public FormElementTextNumber setTag(String mTag) { return (FormElementTextNumber) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPassword.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPassword.java index d96a02c..cd9ced3 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPassword.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPassword.java @@ -15,7 +15,7 @@ public static FormElementTextPassword createInstance() { return FormElementTextPassword; } - public FormElementTextPassword setTag(int mTag) { + public FormElementTextPassword setTag(String mTag) { return (FormElementTextPassword) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPhone.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPhone.java index 3824b51..163d379 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPhone.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextPhone.java @@ -15,7 +15,7 @@ public static FormElementTextPhone createInstance() { return FormElementTextPhone; } - public FormElementTextPhone setTag(int mTag) { + public FormElementTextPhone setTag(String mTag) { return (FormElementTextPhone) super.setTag(mTag); } diff --git a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextSingleLine.java b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextSingleLine.java index b8ef116..72adba4 100644 --- a/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextSingleLine.java +++ b/form-master/src/main/java/me/riddhimanadib/formmaster/model/FormElementTextSingleLine.java @@ -15,7 +15,7 @@ public static FormElementTextSingleLine createInstance() { return formElementTextSingleLine; } - public FormElementTextSingleLine setTag(int mTag) { + public FormElementTextSingleLine setTag(String mTag) { return (FormElementTextSingleLine) super.setTag(mTag); }