/*
* FrameMain.java
*
* Created on June 12, 2007, 6:43 PM
*/
package jsaveme.ui;
import java.awt.Component;
import java.awt.EventQueue;
import java.awt.PopupMenu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Vector;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.DefaultListModel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JToolBar;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.ListSelectionModel;
import javax.swing.WindowConstants;
import jsaveme.Main;
import jsaveme.config.IfFileNotExist;
import jsaveme.db.entities.Filelisting;
import jsaveme.db.entities.Task;
import jsaveme.func.ExecuteSyncro;
import jsaveme.func.Parcours;
import oracle.toplink.essentials.internal.parsing.LiteralNode;
/**
*
* @author remi
*/
public class FrameMain extends JFrame {
// private String taskSource;
// private String taskDestination;
// private Task task;
private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("JSaveMePU");
private static EntityManager em = emf.createEntityManager();
/**
* Creates new form FrameMain
*/
public FrameMain() {
initComponents();
this.persistUpdateList();
if (Main.automatic) {
syncro();
System.exit(0);
}
}
/** 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() {
jToolBar1 = new javax.swing.JToolBar();
jButtonAjouter = new javax.swing.JButton();
jButtonSupprimer = new javax.swing.JButton();
jButtonModifier = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jList = new javax.swing.JList();
jButtonSynchroniser = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("JSaveME");
addWindowFocusListener(new java.awt.event.WindowFocusListener() {
public void windowGainedFocus(java.awt.event.WindowEvent evt) {
formWindowGainedFocus(evt);
}
public void windowLostFocus(java.awt.event.WindowEvent evt) {
}
});
jToolBar1.setFloatable(false);
jButtonAjouter.setIcon(new javax.swing.ImageIcon(getClass().getResource("/data/icons/list-add.png")));
jButtonAjouter.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAjouterActionPerformed(evt);
}
});
jToolBar1.add(jButtonAjouter);
jButtonSupprimer.setIcon(new javax.swing.ImageIcon(getClass().getResource("/data/icons/list-remove.png")));
jButtonSupprimer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSupprimerActionPerformed(evt);
}
});
jToolBar1.add(jButtonSupprimer);
jButtonModifier.setText("Modifier");
jButtonModifier.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonModifierActionPerformed(evt);
}
});
jToolBar1.add(jButtonModifier);
jList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jScrollPane1.setViewportView(jList);
jButtonSynchroniser.setText("Synchroniser");
jButtonSynchroniser.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSynchroniserActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButtonSynchroniser)
.addContainerGap(74, Short.MAX_VALUE))
);
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(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonSynchroniser, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}//
public void syncro () {
Task task1 = null;
for (int i=0; i filelisting = persistGetResultList();
for (Filelisting fl : filelisting) ExecuteSyncro.exec(fl, task1);
}
}
private void jButtonSynchroniserActionPerformed(ActionEvent evt) {
syncro ();
}
private void jButtonSupprimerActionPerformed(ActionEvent evt) {
this.persistDeleteTask();
this.persistUpdateList();
}
private void formWindowGainedFocus(WindowEvent evt) {
this.persistUpdateList();
}
private void jButtonAjouterActionPerformed(ActionEvent evt) {
FrameParametrage.main("");
}
private void jButtonModifierActionPerformed(ActionEvent evt) {
System.out.println(jList.getSelectedValue());
FrameParametrage.main((String) jList.getSelectedValue());
}
/**
* @param args the command line arguments
*/
public static void main() {
EventQueue.invokeLater(new Runnable() {
public void run() {
new FrameMain().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonAjouter;
private javax.swing.JButton jButtonModifier;
private javax.swing.JButton jButtonSupprimer;
private javax.swing.JButton jButtonSynchroniser;
private javax.swing.JList jList;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JToolBar jToolBar1;
// End of variables declaration
/*
* Mettre à jour l'affichage de la liste
*/
public void persistUpdateList() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
try {
DefaultListModel model = new DefaultListModel();
List ls = (List) em.createNativeQuery("SELECT name FROM task").getResultList();
for (int i = 0; i0){
jList.setSelectedIndex(0);
}
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
em.close();
}
}
/*
*supprimer une tache de la liste
*/
public void persistDeleteTask () {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
try {
Task task = (Task) em.createNamedQuery("Task.findByName")
.setParameter("name", (String) jList.getSelectedValue()).getSingleResult();
em.remove(task);
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
em.close();
}
}
/*
* Récuperer les infos pour la tache courante (ex : source / destination)
*/
public Task persistSearchTask() {
Task task = null;
em.getTransaction().begin();
try {
// TODO:
task = (Task) em.createNamedQuery("Task.findByName")
.setParameter("name", jList.getSelectedValue()).getSingleResult();
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
// em.close();
}
return task;
}
// SYNCRO
public List persistGetResultList() {
List filelisting = null;
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
try {
Query q = em.createNamedQuery("Filelisting.all");
filelisting = (List)q.getResultList();
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
em.close();
}
return filelisting;
}
private void persistDrop() {
//EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
try {
em.createNativeQuery("DROP TABLE \"USER\".\"FILELISTING\"").executeUpdate();
em.createNativeQuery("create table \"USER\".\"FILELISTING\" ( \"ID\" INTEGER not null generated always as identity primary key,\"IDTASK\" INTEGER not null, \"FILENAME\" VARCHAR(32672) not null, \"FILEDATE\" VARCHAR(32672) not null, \"FILETYPE\" CHAR(1) not null, \"UPDATEACTION\" CHAR(2))").executeUpdate();
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
//em.close();
}
}
}