package org.fugazi.qls.gui.ui_segment; import org.fugazi.ql.gui.ui_element.UIForm; import org.fugazi.qls.gui.ui_element.QLSUIForm; import javax.swing.*; import java.awt.*; public class UIPage { private final JPanel panel; private final JPanel[] subPanelsHolder; private final String pageTitle; private final int index; public UIPage(String _title, int _index, int rows) { this.panel = new JPanel(); if (rows == 0) { rows++; // otherwise GridLayout will throw. Edge case for empty page. } this.subPanelsHolder = new JPanel[rows]; this.initializeSubpanels(rows); this.pageTitle = _title; this.index = _index; } private void initializeSubpanels(int rows){ panel.setLayout(new GridLayout(rows, 0)); for (int i = 0; i < rows; i++) { subPanelsHolder[i] = new JPanel(); subPanelsHolder[i].setLayout(new GridLayout(0, 1)); this.panel.add(subPanelsHolder[i]); } } public void addToForm(UIForm _uiForm) { QLSUIForm form = (QLSUIForm) _uiForm; form.addPage(this); } public void removeFromForm(UIForm _uiForm) { QLSUIForm form = (QLSUIForm) _uiForm; form.removePage(this); } public String getTitle() { return this.pageTitle; } public JPanel getPanel() { return this.panel; } public int getIndex() { return this.index; } public JPanel getSubPanel(int index) { return this.subPanelsHolder[index]; } }