/* * 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. */ // 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(); }// 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; } }