package org.uva.student.calinwouter.qlqls.qls.abstractions;
import org.uva.student.calinwouter.qlqls.qls.model.FieldType;
import org.uva.student.calinwouter.qlqls.qls.model.QLSRenderParameters;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
/**
* ResultingFieldsCollection fields are either questions or computed values, always consisting of an identifier and a set of
* styling arguments.
*/
public abstract class AbstractFormField {
protected final String identifier;
protected final Map<String, Object> stylingArguments;
public AbstractFormField(String identifier, Map<String, Object> stylingArguments) {
this.identifier = identifier;
this.stylingArguments = stylingArguments;
}
public AbstractFormField(String identifier) {
this(identifier, new HashMap<String, Object>());
}
public Map<String, Object> deriveStylingSettingsMap(FieldType fieldType) {
final String fieldName = fieldType.getFieldName();
if (identifier.equals(fieldName)) {
return new HashMap<String, Object>(stylingArguments);
}
return null;
}
public String collectFieldName() {
return identifier;
}
public abstract Component render(QLSRenderParameters qlsRenderParameters);
}