use of org.activityinfo.model.type.time.LocalDateType in project activityinfo by bedatadriven.
the class FormFieldWidgetFactory method createWidget.
public Promise<? extends FormFieldWidget> createWidget(FormClass formClass, FormField field, FieldUpdater valueUpdater) {
FieldType type = field.getType();
if (type instanceof QuantityType) {
return Promise.resolved(new QuantityFieldWidget((QuantityType) type, valueUpdater));
} else if (type instanceof SerialNumberType) {
return Promise.resolved(new SerialNumberFieldWidget((SerialNumberType) type));
} else if (type instanceof NarrativeType) {
return Promise.resolved(new NarrativeFieldWidget(valueUpdater));
} else if (type instanceof TextType) {
return Promise.resolved(new TextFieldWidget((TextType) type, valueUpdater));
} else if (type instanceof CalculatedFieldType) {
return Promise.resolved(new CalculatedFieldWidget(valueUpdater));
} else if (type instanceof LocalDateType) {
return Promise.resolved(new DateFieldWidget(valueUpdater));
} else if (type instanceof LocalDateIntervalType) {
return Promise.resolved(new DateIntervalFieldWidget(valueUpdater));
} else if (type instanceof GeoPointType) {
return Promise.resolved(new GeographicPointWidget(valueUpdater));
} else if (type instanceof EnumType) {
return Promise.resolved(new EnumFieldWidget((EnumType) field.getType(), valueUpdater, fieldWidgetMode));
} else if (type instanceof BooleanType) {
return Promise.resolved(new BooleanFieldWidget(valueUpdater));
} else if (type instanceof AttachmentType) {
AttachmentType attachmentType = (AttachmentType) type;
if (attachmentType.getKind() == AttachmentType.Kind.IMAGE) {
return Promise.resolved(new ImageUploadFieldWidget(formClass.getId(), valueUpdater, fieldWidgetMode));
} else {
return Promise.resolved(new AttachmentUploadFieldWidget(formClass.getId(), valueUpdater, fieldWidgetMode));
}
} else if (type instanceof ReferenceType) {
return createReferenceWidget(field, valueUpdater);
} else if (type instanceof BarcodeType) {
return Promise.resolved(new BarcodeFieldWidget(valueUpdater));
}
Log.error("Unexpected field type " + type.getTypeClass());
throw new UnsupportedOperationException();
}
use of org.activityinfo.model.type.time.LocalDateType in project activityinfo by bedatadriven.
the class XlsFormBuilder method writeSimpleField.
private void writeSimpleField(FormField field) {
HSSFRow fieldRow = surveySheet.createRow(nextFieldRow++);
String name = field.getCode();
if (Strings.isNullOrEmpty(name)) {
name = field.getId().asString();
}
fieldRow.createCell(NAME_COLUMN).setCellValue(name);
fieldRow.createCell(LABEL_COLUMN).setCellValue(field.getLabel());
fieldRow.createCell(REQUIRED_COLUMN).setCellValue(field.isRequired() ? "yes" : "no");
FieldType type = field.getType();
if (type instanceof QuantityType) {
QuantityType quantityType = (QuantityType) field.getType();
fieldRow.createCell(TYPE_COLUMN).setCellValue(XlsFormTypes.DECIMAL);
fieldRow.createCell(UNITS_COLUMN).setCellValue(quantityType.getUnits());
} else if (type instanceof TextType) {
fieldRow.createCell(TYPE_COLUMN).setCellValue(XlsFormTypes.TEXT);
} else if (type instanceof NarrativeType) {
fieldRow.createCell(TYPE_COLUMN).setCellValue("text");
} else if (type instanceof CalculatedFieldType) {
CalculatedFieldType calculatedType = (CalculatedFieldType) field.getType();
fieldRow.createCell(TYPE_COLUMN).setCellValue(XlsFormTypes.CALCULATE);
fieldRow.createCell(CALCULATION_FIELD).setCellValue(calculatedType.getExpression());
} else if (type instanceof LocalDateType) {
fieldRow.createCell(TYPE_COLUMN).setCellValue(XlsFormTypes.DATE);
} else if (type instanceof EnumType) {
EnumType enumType = (EnumType) type;
String typeName;
if (enumType.getCardinality() == Cardinality.SINGLE) {
typeName = XlsFormTypes.SELECT_ONE;
} else {
typeName = XlsFormTypes.SELECT_MULTIPLE;
}
String listName = name;
fieldRow.createCell(TYPE_COLUMN).setCellValue(typeName + " " + listName);
addChoices(listName, enumType);
}
if (field.getRelevanceConditionExpression() != null) {
String xpathRelevanceCondition = xPathBuilder.build(field.getRelevanceConditionExpression());
fieldRow.createCell(RELEVANT_COLUMN).setCellValue(xpathRelevanceCondition);
}
}
Aggregations