package circusRefine.gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import circusRefine.core.ExternalManager; /** * Menu chamado para salvar um programa antes que haja alguma operacao de carregar uma nova especificacao, * carregar um programa salvou ou fechar o CRefine * @author alessandro87 * */ public class DialogSave extends JDialog { private JButton save; private JButton discard; private JButton cancel; private ExternalManager gerInterface; private JLabel label; private SaveChanges answer; private boolean toQuit; public DialogSave (ExternalManager ext, String nome, boolean quit){ this.setTitle(nome); gerInterface = ext; this.setModal(true); this.setResizable(true); this.setLayout(null); answer = SaveChanges.CANCELAR; toQuit = quit; jbInit(); } public String getMessage(String cod){ return gerInterface.getMessage(cod); } public SaveChanges getAnswer(){ return answer; } private void jbInit() { this.setLocation(250, 200); this.setSize(400, 110); label = new JLabel(this.getMessage("COD0730")); label.setLocation(15, 10); label.setSize(500, 20); save = new JButton(this.getMessage("COD0005")); save.setSize(80, 20); save.setLocation(label.getX() + 20, label.getY() + 40); save.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { salvarAlteracoes(); } }); cancel = new JButton(this.getMessage("COD0078")); cancel.setSize(120,20); cancel.setLocation(save.getX() + save.getWidth() + 10, save.getY()); cancel.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { cancelar(); } }); discard = new JButton(this.getMessage("COD0079")); discard.setSize(100, 20); discard.setLocation(cancel.getX() + cancel.getWidth() + 10, save.getY()); discard.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { discartarAlteracoes(); } }); add(save); if (toQuit) { JButton discardALL = new JButton(this.getMessage("COD0737")); discardALL.setSize(120,20); discardALL.setToolTipText(this.getMessage("COD0737")); discardALL.setLocation(save.getX() + save.getWidth() + 10, save.getY()); discardALL.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { descartarTodos(); } }); this.add(discardALL); } else { add(cancel); } add(label); add(discard); } protected void discartarAlteracoes() { answer = SaveChanges.DESCARTAR_ALTERACOES; this.setVisible(false); } protected void cancelar() { answer = SaveChanges.CANCELAR; this.setVisible(false); } protected void descartarTodos() { answer = SaveChanges.DESCARTAR_TODOS; this.setVisible(false); } protected void salvarAlteracoes() { answer = SaveChanges.SALVAR_ALTERACOES; this.setVisible(false); } }