package org.uva.student.calinwouter.qlqls.qls.model.functions;
import org.uva.student.calinwouter.qlqls.qls.model.FieldType;
import org.uva.student.calinwouter.qlqls.qls.model.QLSRenderParameters;
import javax.swing.*;
import java.util.*;
public class Pages {
private final List<Page> pages;
public Pages(Page... pages) {
this.pages = Arrays.asList(pages);
}
public Iterator<Page> iterator() {
return pages.iterator();
}
public List<Defaults> collectAllDefaultsInstances() {
final List<Defaults> collectedDefaults = new LinkedList<Defaults>();
for (final Page page : pages) {
final List<Defaults> pageDefaults = page.collectAllDefaultsInstances();
collectedDefaults.addAll(pageDefaults);
}
return collectedDefaults;
}
public Map<String, Object> deriveStylingSettingsMap(FieldType fieldType) {
for (Page page : pages) {
Map<String, Object> pageStylingSettings = page.deriveStylingSettingsMap(fieldType);
if (pageStylingSettings != null) {
return pageStylingSettings;
}
}
return null;
}
public List<String> collectFields() {
final List<String> fieldNames = new LinkedList<String>();
for (Page page : pages) {
final List<String> pageFieldNames = page.collectFields();
fieldNames.addAll(pageFieldNames);
}
return fieldNames;
}
public void addAndRenderTabs(JTabbedPane jTabbedPane, QLSRenderParameters qlsRenderParameters) {
for (Page page : pages) {
page.addAndRenderTab(jTabbedPane, qlsRenderParameters);
}
}
}