package com.rapidftr.controls; import java.util.Vector; import com.rapidftr.form.Form; import com.rapidftr.form.FormAction; import com.rapidftr.form.Forms; import com.rapidftr.model.Child; public class UIForms { private final Forms forms; private Vector uiForms = new Vector(); public UIForms(Forms forms, final FormFieldFactory formFieldFactory, final Child child) { this.forms = forms; forms.forEachForm(new FormAction() { public void execute(Form form) { uiForms.addElement(new UIForm(form, formFieldFactory, child)); } }); } public UIForm getDefaultForm() { return formAt(0); } public Object[] getFormNames() { final Vector names = new Vector(); forms.forEachForm(new FormAction() { public void execute(Form form) { names.addElement(form.getName()); } }); String[] array = new String[names.size()]; names.copyInto(array); return array; } public UIForm formAt(int selectedIndex) { return (UIForm) uiForms.elementAt(selectedIndex); } public int getIndexByName(String selectedTab) { int selectedIndex = 0; for (int i = 0; i < uiForms.size(); i++) { UIForm uiForm = (UIForm) uiForms.elementAt(i); if (uiForm.getName().equals(selectedTab)) { selectedIndex = i; break; } } return selectedIndex; } }