package main.manager; import gui.MainFrame; import gui.errors.ErrorDialog; import gui.errors.TaZQLError; import gui.errors.TaZQLWarning; import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; import typechecker.TypeCheckerVisitor; import ast.form.Form; public class GUIManager { private final FileManager file; private final String filename; private final Form form; private final MainFrame mainFrame; private final TypeCheckerVisitor typeCheckerVisitor; public GUIManager() { this.typeCheckerVisitor = new TypeCheckerVisitor(); this.file = new FileManager(); this.filename = file.getFileString(); this.mainFrame = new MainFrame(); this.form = new ASTCreator().formCreator(filename); } public void runGUI(JFrame frame) { if(!formEmpty()) { if(formIsCorrect()) { final JPanel panel = mainFrame.addFormToFrame(form); frame.getContentPane().removeAll(); frame.getContentPane().add(panel); frame.setTitle(form.getFormId().toString()); frame.pack(); frame.setVisible(true); } else { frame.getContentPane().removeAll(); frame.revalidate(); frame.repaint(); showErrors(); } } } public boolean formIsCorrect () { return checkQuestionnaire(form); } public boolean checkQuestionnaire(Form form) { form.accept(typeCheckerVisitor); return noErrors(); } public boolean formEmpty() { return form==null; } public boolean noErrors() { return this.typeCheckerVisitor.isCorrect(); } public void showErrors() { new ErrorDialog(getError(), getWarning()); } public List<TaZQLError> getError() { return this.typeCheckerVisitor.getError(); } public List<TaZQLWarning> getWarning() { return this.typeCheckerVisitor.getWarning(); } }