package gui; import java.util.Arrays; import javax.swing.JComponent; import javax.swing.JFrame; import ql.Value; import ql.ast.expression.Identifier; import ql.ast.statement.Form; import ql.gui.Component; import qls.gui.structure.TabbedPanel; public class Application implements Component { private JFrame frame; private TabbedPanel tabbedPanel; private gui.screen.ql.SelectionScreen qlSelectionScreen; private gui.screen.ql.FormScreen qlFormScreen; private gui.screen.qls.SelectionScreen qlsSelectionScreen; public Application(JFrame frame) { this.frame = frame; tabbedPanel = new TabbedPanel(new Identifier("Application"), Arrays.asList()); tabbedPanel.setHandler(this); qlSelectionScreen = new gui.screen.ql.SelectionScreen(this); qlsSelectionScreen = new gui.screen.qls.SelectionScreen(this); tabbedPanel.setPages(Arrays.asList(qlSelectionScreen, qlsSelectionScreen)); frame.getContentPane().add(tabbedPanel.getComponent()); } @Override public void handleChange(Value changedValue, Component source) { if(source == qlSelectionScreen) { qlFormScreen = new gui.screen.ql.FormScreen(this, (Form) qlSelectionScreen.getFormAst()); tabbedPanel.addPage(qlFormScreen.getScreen()); } if(source == qlsSelectionScreen) { tabbedPanel.addPage(qlsSelectionScreen.getQLSInterface()); } updateComponent(); } @Override public void updateComponent() { tabbedPanel.updateComponent(); frame.setVisible(true); } @Override public JComponent getComponent() { return tabbedPanel.getComponent(); } @Override public void setHandler(Component handler) { // Handler is not used. } }