package org.activityinfo.legacy.shared.adapter;
import org.activityinfo.i18n.shared.I18N;
import org.activityinfo.model.form.FormClass;
import org.activityinfo.model.form.FormField;
import org.activityinfo.model.legacy.CuidAdapter;
import org.activityinfo.model.resource.ResourceId;
import org.activityinfo.model.type.primitive.TextType;
/**
* In the old legacy, many "FormClasses" were builtins, defined as part
* of ActivityInfo's own datamodel. In Api2, these all move to the users
* control as so become just another FormClass.
*/
public class BuiltinFormClasses {
/**
* Partner was a builtin object type in api1. However, we need a different
* FormClass for each legacy UserDatabase.
*/
public static FormClass projectFormClass(int databaseId) {
ResourceId classId = CuidAdapter.projectFormClass(databaseId);
FormClass formClass = new FormClass(classId);
formClass.setLabel(I18N.CONSTANTS.project());
// add the project's name
FormField nameField = new FormField(CuidAdapter.field(classId, CuidAdapter.NAME_FIELD));
nameField.setLabel(I18N.CONSTANTS.name());
nameField.setType(TextType.INSTANCE);
nameField.setRequired(true);
formClass.addElement(nameField);
return formClass;
}
}