All pastes #571228 Raw Edit

Something

public text v1 · immutable
·published 2007-06-17 01:51 UTC
rendered paste body
/*
 * FrameParametrage.java
 *
 * Created on June 12, 2007, 6:54 PM
 */

package jsaveme.ui;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.URI;
import java.net.URISyntaxException;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import jsaveme.db.entities.Task;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;




/**
 *
 * @author  remi
 */
public class FrameParametrage extends javax.swing.JFrame {
    private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("JSaveMePU");
    private static EntityManager em = emf.createEntityManager();
    
    private static String taskname;
    private Task task = null;
    private boolean creation;
    
    
    /** Creates new form FrameParametrage */
    public FrameParametrage(String taskname) {
        this.initComponents();
        this.taskname = taskname;        
        
        
        // Si taskname est vide alors nous somme en mode création 
        // sinon en mode modification
        if (taskname.compareTo("")==0) {
            creation = true;
        } else {
            creation = false;
            task = this.persistSearchTask();
            this.jTextFieldName.setText(task.getName());
            this.jTextFieldSource.setText(task.getSourceDirectory());
            this.jTextFieldDestination.setText(task.getDestinationDirectory());
        }
        
        
    }
    
    /** 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 ">                          
    private void initComponents() {
        jFileChooser1 = new javax.swing.JFileChooser();
        jCheckBox1 = new javax.swing.JCheckBox();
        jPanel1 = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jTextFieldSource = new javax.swing.JTextField();
        jButtonChoixSource = new javax.swing.JButton();
        jTextFieldDestination = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jButtonChoixDestination = new javax.swing.JButton();
        jToolBar1 = new javax.swing.JToolBar();
        jButtonAccepter = new javax.swing.JButton();
        jButtonAnnuler = new javax.swing.JButton();
        jTextFieldName = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();

        jCheckBox1.setFont(new java.awt.Font("Dialog", 0, 12));
        jCheckBox1.setText("Options suppl\u00e9mentaires ( r\u00e9serv\u00e9 aux utilisateurs avanc\u00e9 )");
        jCheckBox1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        jCheckBox1.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox1ActionPerformed(evt);
            }
        });

        jLabel4.setText("Commande \u00e0 executer avant la sauvegarde");

        jLabel5.setText("Commande \u00e0 executer apr\u00e9s la sauvegarde");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextField2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 387, Short.MAX_VALUE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 387, Short.MAX_VALUE)
                    .addComponent(jLabel4)
                    .addComponent(jLabel5))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Creation d'une nouvelle tache");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                setMinimumSize(evt);
            }
        });

        jLabel1.setText("R\u00e9pertoire \u00e0 sauvegarder");

        jButtonChoixSource.setText("Choisir");
        jButtonChoixSource.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonChoixSourceActionPerformed(evt);
            }
        });

        jLabel2.setText("R\u00e9pertoire de destination");

        jButtonChoixDestination.setText("Choisir");
        jButtonChoixDestination.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonChoixDestinationActionPerformed(evt);
            }
        });

        jToolBar1.setFloatable(false);
        jButtonAccepter.setText("Accepter");
        jButtonAccepter.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAccepterActionPerformed(evt);
            }
        });

        jToolBar1.add(jButtonAccepter);

        jButtonAnnuler.setText("Annuler");
        jToolBar1.add(jButtonAnnuler);

        jLabel3.setText("Nom de la tache de sauvegarde");

        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(jTextFieldName, javax.swing.GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE)
                    .addComponent(jLabel2))
                .addGap(97, 97, 97))
            .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addContainerGap(150, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addContainerGap(189, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldSource, javax.swing.GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButtonChoixSource)
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextFieldDestination, javax.swing.GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButtonChoixDestination)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonChoixSource))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldDestination, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonChoixDestination))
                .addContainerGap(16, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        
    
    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        
    }                                          
    
    private void setMinimumSize(java.awt.event.WindowEvent evt) {                                
        this.setMinimumSize(this.getSize());
    }                               
    
    private void jButtonAccepterActionPerformed(ActionEvent evt) {                                                
        if (creation) {
            task = new Task();
        }
        task.setName(jTextFieldName.getText());
        task.setSourceDirectory(jTextFieldSource.getText());
        task.setDestinationDirectory(jTextFieldDestination.getText());
        
        this.persist(task);
        this.dispose();
        
    }                                               
    
    private void jButtonChoixDestinationActionPerformed(ActionEvent evt) {                                                        
        jTextFieldDestination.setText(this.getSelectedFile());
    }                                                       
    
    private void jButtonChoixSourceActionPerformed(ActionEvent evt) {                                                   
        jTextFieldSource.setText(this.getSelectedFile());
    }                                                  
    
    /**
     * @param args the command line arguments
     */
    public static void main(String taskname) {
        final String ftn = taskname;
        
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrameParametrage(ftn).setVisible(true);
            }
        });
    }
    
    private String getSelectedFile() {
        jFileChooser1.setMinimumSize(this.getMinimumSize());
        int returnVal = jFileChooser1.showOpenDialog(this);
        if(returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
            return jFileChooser1.getSelectedFile().getAbsolutePath();
        }
        return null;
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButtonAccepter;
    private javax.swing.JButton jButtonAnnuler;
    private javax.swing.JButton jButtonChoixDestination;
    private javax.swing.JButton jButtonChoixSource;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JFileChooser jFileChooser1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextFieldDestination;
    private javax.swing.JTextField jTextFieldName;
    private javax.swing.JTextField jTextFieldSource;
    private javax.swing.JToolBar jToolBar1;
    // End of variables declaration                   
    
    public void persist(Object object) {
        //EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try {
            // TODO:
            if (creation)
                em.persist(object);

            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        } finally {
            //em.close();
        }
    }
     
    public Task persistSearchTask() {
        em.getTransaction().begin();
        try {
            task = (Task) em.createNamedQuery("Task.findByName")
            .setParameter("name", taskname).getSingleResult();
            
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        } finally {
            //em.close();
        }
        return task;
    }
}