package org.nlamah.QLS.View.Controllers;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Box;
import org.nlamah.QL.Model.Form.Form;
import org.nlamah.QLS.Model.StylesheetBlock.Page;
import org.nlamah.QLS.Model.StylesheetBlock.Section;
import org.nlamah.QLS.View.Stylesheet.PageView;
public class PageViewController extends StylesheetViewController
{
private String identifier;
private List<SectionViewController> sectionViewControllers;
private RootFormViewControllerStyled rootViewController;
public PageViewController(Form form, String identifier, Page page, RootFormViewControllerStyled rootViewController)
{
super(rootViewController, null);
this.identifier = identifier;
this.rootViewController = rootViewController;
view = new PageView(page);
createSectionViewControllers(form, page.sections());
addSectionViewsToView();
}
public String identifier()
{
return identifier;
}
private void createSectionViewControllers(Form form, List<Section> sections)
{
sectionViewControllers = new ArrayList<SectionViewController>();
for (Section section : sections)
{
sectionViewControllers.add(new SectionViewController(rootViewController, form, section, this));
}
}
private void addSectionViewsToView()
{
for (SectionViewController sectionViewController : sectionViewControllers)
{
view.add(sectionViewController.view);
}
view.add(Box.createRigidArea(new Dimension(0, 40)));
}
@Override
public int neededViewHeight()
{
for (SectionViewController sectionViewController : sectionViewControllers)
{
sectionViewController.neededViewHeight();
}
return view.getPreferredSize().height;
}
}