package org.uva.student.calinwouter.qlqls.qls.model.functions; import org.uva.student.calinwouter.qlqls.qls.abstractions.AbstractFormField; import org.uva.student.calinwouter.qlqls.qls.model.FieldType; import org.uva.student.calinwouter.qlqls.qls.model.QLSRenderParameters; import javax.swing.*; import java.awt.*; import java.util.*; import java.util.List; public class Fields { private final List<AbstractFormField> fields; public Fields(AbstractFormField... fields) { this.fields = Arrays.asList(fields); } public Map<String, Object> deriveStylingSettingsMap(FieldType fieldType) { for (AbstractFormField field : fields) { final Map<String, Object> stylingSettings = field.deriveStylingSettingsMap(fieldType); if (stylingSettings != null) { return stylingSettings; } } return null; } public List<String> collectFields() { List<String> fieldNames = new LinkedList<String>(); for (AbstractFormField abstractFormField : fields) { fieldNames.add(abstractFormField.collectFieldName()); } return fieldNames; } public void render(JPanel sectionPanel, QLSRenderParameters qlsRenderParameters) { for (AbstractFormField abstractFormField : fields) { final Component renderedComponent = abstractFormField.render(qlsRenderParameters); sectionPanel.add(renderedComponent); } } }