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;
}
}