/* * Demoiselle Framework * Copyright (C) 2013 SERPRO * ---------------------------------------------------------------------------- * This file is part of Demoiselle Framework. * * Demoiselle Framework is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License version 3 * along with this program; if not, see <http://www.gnu.org/licenses/> * or write to the Free Software Foundation, Inc., 51 Franklin Street, * Fifth Floor, Boston, MA 02110-1301, USA. * ---------------------------------------------------------------------------- * Este arquivo é parte do Framework Demoiselle. * * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação * do Software Livre (FSF). * * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português * para maiores detalhes. * * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> * ou escreva para a Fundação do Software Livre (FSF) Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package demoisellebehave.serpro.treino.ui; import demoisellebehave.serpro.treino.dao.Obra; import demoisellebehave.serpro.treino.dao.ObraDAO; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import javax.swing.JOptionPane; /** * * @author SERPRO */ public class JFrameObra extends javax.swing.JFrame { private static final long serialVersionUID = 1L; private static JFrameObra instance = new JFrameObra(); private Obra obra; private ObraDAO dao = new ObraDAO(); /** Creates new form JFrameObra */ private JFrameObra() { initComponents(); UICommons.centraliza(this); } public static JFrameObra getIntance() { return instance; } private DecimalFormat formatDecimal = new DecimalFormat("###.0"); private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); public void setObra(Obra obra) { this.obra = obra; if (obra == null || obra.getId() == null) { obra = new Obra(); txtObra.setText(""); txtPrazo.setText(""); txtValor.setText(""); this.btConfirmar.setText("Inserir Obra"); } else { txtObra.setText(obra.getNome()); txtPrazo.setText(dateFormat.format(obra.getPrazo())); txtValor.setText(formatDecimal.format(obra.getValor())); this.btConfirmar.setText("Alterar Obra"); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); btConfirmar = new javax.swing.JButton(); btCancelar = new javax.swing.JButton(); txtObra = new javax.swing.JTextField(); txtValor = new javax.swing.JTextField(); txtPrazo = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Edição de Obra"); jLabel1.setText("Nome da Obra:"); jLabel2.setText("Valor:"); jLabel3.setText("Prazo:"); btConfirmar.setText("Inserir/Alterar"); btConfirmar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btConfirmarActionPerformed(evt); } }); btCancelar.setText("Cancelar"); btCancelar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btCancelarActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(jLabel2) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(btConfirmar, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btCancelar, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(txtValor, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE) .addComponent(txtObra, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE) .addComponent(txtPrazo, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(txtObra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(txtValor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(txtPrazo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btConfirmar) .addComponent(btCancelar)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btConfirmarActionPerformed try { if (obra == null || obra.getId() == null) { obra = new Obra(); obra.setNome(txtObra.getText()); obra.setPrazo(dateFormat.parse(txtPrazo.getText())); obra.setValor(formatDecimal.parse(txtValor.getText()).doubleValue()); dao.insert(obra); JOptionPane.showMessageDialog(this, "Obra [" + obra.getNome() + "] Inserida com sucesso!", "Informação", JOptionPane.INFORMATION_MESSAGE); this.setVisible(false); JFrameListaObras.getInstance().atualizarLista(); obra = null; } else { obra.setNome(txtObra.getText()); obra.setPrazo(dateFormat.parse(txtPrazo.getText())); obra.setValor(formatDecimal.parse(txtValor.getText()).doubleValue()); dao.merge(obra); JOptionPane.showMessageDialog(this, "Obra [" + obra.getNome() + "] Salva com sucesso!", "Informação", JOptionPane.INFORMATION_MESSAGE); this.setVisible(false); JFrameListaObras.getInstance().atualizarLista(); obra = null; } } catch (Exception e) { JOptionPane.showMessageDialog(this, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_btConfirmarActionPerformed private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed this.setVisible(false); }//GEN-LAST:event_btCancelarActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(JFrameObra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(JFrameObra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(JFrameObra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(JFrameObra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new JFrameObra().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btCancelar; private javax.swing.JButton btConfirmar; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JTextField txtObra; private javax.swing.JTextField txtPrazo; private javax.swing.JTextField txtValor; // End of variables declaration//GEN-END:variables }