/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package vue.terminal.secondaryFramed; import controller.terminal.interfacesGUI.TerminalMainVue; import controller.terminal.interfacesGUI.TerminalPay; import controller.terminal.interfacesGUI.TerminalRent; import controller.terminal.interfacesGUI.TerminalRentSummary; import controller.terminal.interfacesGUI.TerminalReturn; import controller.terminal.interfacesGUI.TerminalReturnSummary; import controller.terminal.interfacesGUI.TerminalWelcome; import java.awt.Component; import java.awt.Dimension; import java.awt.Image; import javax.swing.JFrame; import javax.swing.JOptionPane; /** * * @author Valentin SEITZ */ public class FramedTerminalManager implements TerminalMainVue { private TerminalWelcomeFrame welcomeFrame; private TerminalRentFrame rentFrame; private TerminalRentSummaryFrame rentSummaryFrame; private TerminalReturnFrame returnFrame; private TerminalReturnSummaryFrame returnSummaryFrame; private TerminalPayFrame payFrame; private JFrame currentFrame; private boolean visible; public FramedTerminalManager() { this.welcomeFrame = new TerminalWelcomeFrame(); this.rentFrame = new TerminalRentFrame(); this.rentSummaryFrame = new TerminalRentSummaryFrame(); this.returnFrame = new TerminalReturnFrame(); this.returnSummaryFrame = new TerminalReturnSummaryFrame(); this.payFrame = new TerminalPayFrame(); } public void setTitle(String title) { this.welcomeFrame.setTitle(title); this.rentFrame.setTitle(title + " - location"); this.rentSummaryFrame.setTitle(title + " - résumé de location"); this.returnFrame.setTitle(title + " - rendu"); this.returnSummaryFrame.setTitle(title + " - résumé de rendu"); this.payFrame.setTitle(title + " - paiement"); } public void setIconImage(Image icon) { this.welcomeFrame.setIconImage(icon); this.rentFrame.setIconImage(icon); this.rentSummaryFrame.setIconImage(icon); this.returnFrame.setIconImage(icon); this.returnSummaryFrame.setIconImage(icon); this.payFrame.setIconImage(icon); } public Dimension getPreferredSize() { return new Dimension(640, 480); } public void setMinimumSize(Dimension size) { Dimension secundarySize; secundarySize = new Dimension(size.width - 20, size.height - 20); this.welcomeFrame.setMinimumSize(size); this.rentFrame.setMinimumSize(secundarySize); this.rentSummaryFrame.setMinimumSize(secundarySize); this.returnFrame.setMinimumSize(secundarySize); this.returnSummaryFrame.setMinimumSize(secundarySize); this.payFrame.setMinimumSize(secundarySize); } public void pack() { this.welcomeFrame.pack(); this.rentFrame.pack(); this.rentSummaryFrame.pack(); this.returnFrame.pack(); this.returnSummaryFrame.pack(); this.payFrame.pack(); } public void setLocationRelativeTo(Component component) { this.welcomeFrame.setLocationRelativeTo(component); } @Override public TerminalWelcome getTerminalWelcome() { return this.welcomeFrame; } @Override public TerminalRent getTerminalRent() { return this.rentFrame; } @Override public TerminalRentSummary getTerminalRentSummary() { return this.rentSummaryFrame; } @Override public TerminalReturn getTerminalReturn() { return this.returnFrame; } @Override public TerminalReturnSummary getTerminalReturnSummary() { return this.returnSummaryFrame; } @Override public TerminalPay getTerminalPay() { return this.payFrame; } @Override public void displayTerminalWelcome() { this.displayVue(this.welcomeFrame); } @Override public void displayTerminalRent() { this.displayVue(this.rentFrame); } @Override public void displayTerminalRentSummary() { this.displayVue(this.rentSummaryFrame); } @Override public void displayTerminalReturn() { this.displayVue(this.returnFrame); } @Override public void displayTerminalReturnSummary() { this.displayVue(this.returnSummaryFrame); } @Override public void displayTerminalPay() { this.displayVue(this.payFrame); } private void displayVue(JFrame vue) { if (this.currentFrame != null && this.currentFrame != this.welcomeFrame) { this.currentFrame.setVisible(false); } this.currentFrame = vue; if (this.currentFrame != this.welcomeFrame) { this.currentFrame.setLocationRelativeTo(this.welcomeFrame); } this.welcomeFrame.setEnabled(false); this.currentFrame.setEnabled(true); this.setVisible(this.visible); } @Override public void setVisible(boolean visible) { this.visible = visible; this.welcomeFrame.setVisible(visible); this.currentFrame.setVisible(visible); } @Override public void showInformation(String msg) { JOptionPane.showMessageDialog(null, msg, "Information", JOptionPane.INFORMATION_MESSAGE); } @Override public void showError(String msg) { JOptionPane.showMessageDialog(null, msg, "Erreur", JOptionPane.ERROR_MESSAGE); } @Override public void showWarning(String msg) { JOptionPane.showMessageDialog(null, msg, "Avertissement", JOptionPane.WARNING_MESSAGE); } }