65 lines
2.3 KiB
Java
65 lines
2.3 KiB
Java
package fr.iutfbleau.sae;
|
|
import java.awt.BorderLayout;
|
|
import java.io.File;
|
|
import javax.swing.JDialog;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JProgressBar;
|
|
|
|
/**
|
|
* Thread pour sauvegarder un fichier PIF en arriere-plan.
|
|
* Permet d'eviter de bloquer l'interface graphique pendant la sauvegarde.
|
|
* Affiche un dialogue de progression pendant la sauvegarde.
|
|
*/
|
|
public class ThreadSauvegardePIF extends Thread {
|
|
|
|
private ConverterController controleur;
|
|
private File fichier;
|
|
|
|
/**
|
|
* Construit un nouveau thread de sauvegarde.
|
|
*
|
|
* @param controleur le controleur qui gere la sauvegarde
|
|
* @param fichier le fichier dans lequel sauvegarder
|
|
*/
|
|
public ThreadSauvegardePIF(ConverterController controleur, File fichier) {
|
|
this.controleur = controleur;
|
|
this.fichier = fichier;
|
|
}
|
|
|
|
/**
|
|
* Execute la sauvegarde du fichier PIF.
|
|
* Affiche un dialogue de progression pendant la sauvegarde.
|
|
*/
|
|
@Override
|
|
public void run() {
|
|
// Desoler monsieur je sais que ce que je fais est moche mais javais plus assez de temps pour faire mieux (jaurris pu creer une classe a part pour le dialogue de progression mais bon...)
|
|
// creer le dialogue de progression
|
|
JDialog dialogue = new JDialog();
|
|
dialogue.setTitle("Sauvegarde");
|
|
dialogue.setModal(false);
|
|
dialogue.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
|
|
dialogue.setSize(300, 100);
|
|
dialogue.setLocationRelativeTo(null);
|
|
dialogue.setLayout(new BorderLayout(10, 10));
|
|
|
|
JLabel label = new JLabel("Sauvegarde en cours...", JLabel.CENTER);
|
|
dialogue.add(label, BorderLayout.CENTER);
|
|
|
|
JProgressBar barre = new JProgressBar();
|
|
barre.setIndeterminate(true);
|
|
dialogue.add(barre, BorderLayout.SOUTH);
|
|
|
|
dialogue.setVisible(true);
|
|
|
|
try {
|
|
// Sauvegarder le fichier
|
|
controleur.saveAsPIF(fichier.getAbsolutePath());
|
|
dialogue.dispose();
|
|
GestionErreur.afficherInfo("Fichier sauvegarde avec succes : " + fichier.getName());
|
|
|
|
} catch (Exception e) {
|
|
dialogue.dispose();
|
|
GestionErreur.afficherErreur("Erreur lors de la sauvegarde : " + e.getMessage());
|
|
}
|
|
}
|
|
} |