2023-02-24 18:22:58 +01:00
|
|
|
package fenetres;
|
|
|
|
|
|
|
|
import java.awt.BorderLayout;
|
|
|
|
import java.awt.Color;
|
|
|
|
import java.awt.FlowLayout;
|
|
|
|
import java.awt.Font;
|
2023-04-01 09:54:28 +02:00
|
|
|
import java.awt.SystemColor;
|
2023-02-24 18:22:58 +01:00
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.ActionListener;
|
2023-04-01 09:54:28 +02:00
|
|
|
import java.awt.event.MouseEvent;
|
|
|
|
import java.awt.event.MouseListener;
|
2023-02-24 18:22:58 +01:00
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
2024-04-09 14:50:03 +02:00
|
|
|
import java.nio.file.Paths;
|
2023-03-21 20:07:38 +01:00
|
|
|
import java.util.regex.Matcher;
|
|
|
|
import java.util.regex.Pattern;
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
import javax.swing.ImageIcon;
|
|
|
|
import javax.swing.JButton;
|
2023-04-01 09:54:28 +02:00
|
|
|
import javax.swing.JFileChooser;
|
2023-02-24 18:22:58 +01:00
|
|
|
import javax.swing.JFrame;
|
|
|
|
import javax.swing.JLabel;
|
|
|
|
import javax.swing.JOptionPane;
|
|
|
|
import javax.swing.JPanel;
|
|
|
|
import javax.swing.JScrollPane;
|
|
|
|
import javax.swing.JTable;
|
2023-04-01 09:54:28 +02:00
|
|
|
import javax.swing.JTextPane;
|
2023-02-24 18:22:58 +01:00
|
|
|
import javax.swing.ListSelectionModel;
|
2023-04-01 09:54:28 +02:00
|
|
|
import javax.swing.SwingConstants;
|
2023-02-24 18:22:58 +01:00
|
|
|
import javax.swing.event.ListSelectionEvent;
|
|
|
|
import javax.swing.event.ListSelectionListener;
|
2024-04-06 13:44:21 +02:00
|
|
|
import javax.swing.table.TableColumnModel;
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
import MEPTL.commandes;
|
2023-04-01 09:54:28 +02:00
|
|
|
import action.actOpenBaseEvaluation;
|
2024-04-10 12:29:17 +02:00
|
|
|
import baseEvaluations.chargeEvaluation;
|
2023-04-01 09:54:28 +02:00
|
|
|
import baseEvaluations.creerNouvelleEvaluation;
|
|
|
|
import baseEvaluations.myTableBaseEvaluation;
|
|
|
|
import baseEvaluations.recupeNodeBaseEvaluations;
|
2024-04-10 12:29:17 +02:00
|
|
|
import baseEvaluations.removeEvaluation;
|
2023-04-01 09:54:28 +02:00
|
|
|
import baseEvaluations.trierParDateDecroissanteLaBase;
|
2023-02-24 18:22:58 +01:00
|
|
|
import cXML.Run;
|
|
|
|
import cXML.node;
|
2023-04-04 14:29:25 +02:00
|
|
|
import net.lingala.zip4j.exception.ZipException;
|
2023-04-01 09:54:28 +02:00
|
|
|
import net.miginfocom.swing.MigLayout;
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
|
2023-02-28 21:37:14 +01:00
|
|
|
public class baseDonneesEvaluations extends JFrame { /**
|
2023-02-24 18:22:58 +01:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
private static final long serialVersionUID = 1L;
|
2023-02-28 21:37:14 +01:00
|
|
|
private static baseDonneesEvaluations instance;
|
2023-04-01 09:54:28 +02:00
|
|
|
private myTableBaseEvaluation model = new myTableBaseEvaluation();
|
|
|
|
static JTable table = new JTable();
|
2023-02-24 18:22:58 +01:00
|
|
|
private JPanel panelHaut = new JPanel();
|
|
|
|
private JPanel panelBas = new JPanel();
|
2023-04-01 09:54:28 +02:00
|
|
|
private JPanel panelGauche = new JPanel();
|
2023-04-04 14:29:25 +02:00
|
|
|
private JLabel lblInformationBaseEvluation = new JLabel("");
|
2023-04-01 09:54:28 +02:00
|
|
|
private JButton btnSupprimeEvaluation = new JButton("<html>Supprimer une<br>évaluation</html>");
|
2024-04-10 12:29:17 +02:00
|
|
|
private JButton btnSaveEvaluation = new JButton("<html>Enregistrer l'évaluation<br>chargée en mémoire.</html>");
|
|
|
|
private JButton btnRenommeFichierAnalyse = new JButton("<html>Renommer le fichier d'analyse<br>de l'évaluation sélectionnée</html>");
|
2023-04-01 09:54:28 +02:00
|
|
|
private JButton btnRenommerEvaluation = new JButton("<html>Renommer l'évaluation<br>sélectionnée</html>");
|
2024-04-09 14:50:03 +02:00
|
|
|
private JButton btndefautBaseEvaluation = new JButton("<html>Base par défaut</html>");
|
2023-02-24 18:22:58 +01:00
|
|
|
public static boolean isDispose = true;
|
|
|
|
int indexSelect=0;
|
|
|
|
ListSelectionModel lsm = null;
|
2024-04-06 13:44:21 +02:00
|
|
|
JScrollPane scrollPaneTable = new JScrollPane();
|
|
|
|
JScrollPane scrollPaneBoutons = new JScrollPane();
|
2023-04-01 09:54:28 +02:00
|
|
|
private final JButton btnChargerNewBase = new JButton("<html>Utiliser une autre<br>base d'évaluation</html>");
|
|
|
|
private final JButton btnFermer = new JButton("<html>Femer</html>");
|
|
|
|
private final JTextPane textPane = new JTextPane();
|
|
|
|
private final JTextPane textPane_1 = new JTextPane();
|
2024-04-10 12:29:17 +02:00
|
|
|
private final JButton btnExtraireFileAnalysis = new JButton("<html>Extraire le fichier d'analyse<br>de l'évaluation sélectionnée</html>");
|
|
|
|
private final JButton btnFusionnerBase = new JButton("<html>Importer des évaluations<br>depuis une autre base</html>");
|
|
|
|
private final JButton btnChargerFichierAnalyse = new JButton("<html>Créer une évaluation à <br>partir d'un fichier d'analyse</html>");
|
2023-04-04 14:29:25 +02:00
|
|
|
private final static JLabel lblCheminVersBase = new JLabel(commandes.PathBaseEvaluations);
|
2024-04-09 14:50:03 +02:00
|
|
|
private final JButton btnArchiveBase = new JButton("<html>Copie de sauvegarde</html>");
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
|
2023-03-21 20:07:38 +01:00
|
|
|
public baseDonneesEvaluations() {
|
2023-02-24 18:22:58 +01:00
|
|
|
super();
|
|
|
|
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
2024-04-09 14:50:03 +02:00
|
|
|
setLocationRelativeTo( null );
|
|
|
|
// setBounds(100, 100, 1400, 850);
|
|
|
|
// int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
|
|
|
|
// int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
|
|
|
|
// setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2);
|
|
|
|
setSize(1600,900);
|
|
|
|
int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
|
2023-02-24 18:22:58 +01:00
|
|
|
int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
|
|
|
|
setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2);
|
|
|
|
|
|
|
|
ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") );
|
|
|
|
setIconImage(img.getImage());
|
|
|
|
setTitle(commandes.Titre + " - La base de données des évaluations");
|
|
|
|
|
2023-03-21 20:07:38 +01:00
|
|
|
getContentPane().setLayout(new BorderLayout(2, 2));
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2024-03-26 21:13:53 +01:00
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
model.addOrUpdate();
|
|
|
|
table = new JTable(model);
|
2024-04-06 13:44:21 +02:00
|
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
|
|
TableColumnModel columnModel = table.getColumnModel();
|
|
|
|
columnModel.getColumn(0).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(0).setMaxWidth(400);
|
|
|
|
columnModel.getColumn(1).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(1).setMaxWidth(400);
|
|
|
|
columnModel.getColumn(2).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(2).setMaxWidth(400);
|
|
|
|
columnModel.getColumn(3).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(3).setMaxWidth(400);
|
|
|
|
columnModel.getColumn(3).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(3).setMaxWidth(400);
|
|
|
|
columnModel.getColumn(4).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(4).setMaxWidth(400);
|
2024-04-21 13:26:19 +02:00
|
|
|
columnModel.getColumn(5).setPreferredWidth(300);
|
|
|
|
columnModel.getColumn(5).setMaxWidth(400);
|
2024-04-06 13:44:21 +02:00
|
|
|
|
2024-03-26 21:13:53 +01:00
|
|
|
table.setFont(new Font("Tahoma", Font.PLAIN, 14));
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2024-04-06 13:44:21 +02:00
|
|
|
scrollPaneTable = new JScrollPane(table);
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
//Add the scroll pane to this panel.
|
2024-04-06 13:44:21 +02:00
|
|
|
getContentPane().add(scrollPaneTable,BorderLayout.CENTER);
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
getContentPane().add(panelBas, BorderLayout.SOUTH);
|
|
|
|
FlowLayout fl_panelBas = new FlowLayout(FlowLayout.LEADING, 10, 10);
|
|
|
|
panelBas.setLayout(fl_panelBas);
|
|
|
|
textPane.setBackground(SystemColor.menu);
|
|
|
|
panelBas.add(textPane);
|
|
|
|
textPane_1.setBackground(SystemColor.menu);
|
|
|
|
|
|
|
|
panelBas.add(textPane_1);
|
2023-04-04 14:29:25 +02:00
|
|
|
lblCheminVersBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/chargehistoriqueevaluationmini.png")));
|
|
|
|
|
|
|
|
panelBas.add(lblCheminVersBase);
|
2024-04-10 12:29:17 +02:00
|
|
|
if(commandes.evaluationChargeEnMemoire!=null) {
|
|
|
|
textPane.setText("Evaluation chargée en mémoire : " + commandes.evaluationChargeEnMemoire.getAttributs().get("name"));
|
|
|
|
}
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
//*Le haut
|
|
|
|
getContentPane().add(panelHaut, BorderLayout.NORTH);
|
|
|
|
panelHaut.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
|
2023-03-21 20:07:38 +01:00
|
|
|
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
lblInformationBaseEvluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/accueilChargeEvaluation.png")));
|
|
|
|
lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 14));
|
|
|
|
panelHaut.add(lblInformationBaseEvluation);
|
2024-04-06 13:44:21 +02:00
|
|
|
panelGauche.setBorder(null);
|
|
|
|
|
2023-03-21 20:07:38 +01:00
|
|
|
|
2024-04-06 13:44:21 +02:00
|
|
|
scrollPaneBoutons = new JScrollPane(panelGauche);
|
2023-03-21 20:07:38 +01:00
|
|
|
|
2024-04-06 13:44:21 +02:00
|
|
|
getContentPane().add(scrollPaneBoutons, BorderLayout.WEST);
|
2024-04-10 12:29:17 +02:00
|
|
|
panelGauche.setLayout(new MigLayout("", "[:300px:400px,fill]", "[53px][][][][][][][][][30.00][20px:n][][][]"));
|
|
|
|
btndefautBaseEvaluation.setToolTipText("Recharge la base de données par défaut.");
|
2024-04-09 14:50:03 +02:00
|
|
|
|
|
|
|
btndefautBaseEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btndefautBaseEvaluation.setForeground(new Color(0, 128, 192));
|
|
|
|
panelGauche.add(btndefautBaseEvaluation, "cell 0 0,grow");
|
2024-04-10 12:29:17 +02:00
|
|
|
btndefautBaseEvaluation.setFont(new Font("Tahoma", Font.BOLD, 18));
|
2024-04-09 14:50:03 +02:00
|
|
|
btndefautBaseEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/defautBaseEvaluation.png")));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnChargerNewBase.setToolTipText("Charge les évaluations d'une autre base de données.");
|
2024-04-09 14:50:03 +02:00
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
btnChargerNewBase.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnChargerNewBase.setForeground(new Color(0, 128, 192));
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnChargerNewBase, "cell 0 1,growx,aligny top");
|
2024-04-10 12:29:17 +02:00
|
|
|
btnChargerNewBase.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-04-01 09:54:28 +02:00
|
|
|
btnChargerNewBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnSaveEvaluation.setToolTipText("Enregistre l'évaluation chargée en mémoire.");
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
btnSaveEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnSaveEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveEvaluation.png")));
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnSaveEvaluation, "flowy,cell 0 2,growx,aligny top");
|
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
btnSaveEvaluation.setForeground(new Color(0, 64, 128));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2024-04-09 14:50:03 +02:00
|
|
|
btnRenommerEvaluation.setToolTipText("Renommer l'évaluation sélectionnée.");
|
2023-04-01 09:54:28 +02:00
|
|
|
btnRenommerEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnRenommerEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/renommeEvaluaton.png")));
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnRenommerEvaluation, "cell 0 4,growx,aligny top");
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
btnRenommerEvaluation.setForeground(new Color(153, 50, 204));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnRenommerEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2024-04-09 14:50:03 +02:00
|
|
|
btnFusionnerBase.setToolTipText("Importer des évaluations dans la base par défaut depuis une autre base.");
|
2023-04-01 09:54:28 +02:00
|
|
|
btnFusionnerBase.setForeground(new Color(56, 184, 149));
|
|
|
|
btnFusionnerBase.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnFusionnerBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fusionneBaseEvaluation.png")));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnFusionnerBase.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-04-01 09:54:28 +02:00
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnFusionnerBase, "cell 0 5,growx,aligny top");
|
|
|
|
btnFusionnerBase.setEnabled(false);
|
|
|
|
btnArchiveBase.setToolTipText("Archiver la base de données pour la sauvegarder et la réutiliser.");
|
|
|
|
|
2023-04-04 14:29:25 +02:00
|
|
|
btnArchiveBase.setForeground(new Color(128, 128, 192));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnArchiveBase.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-04-04 14:29:25 +02:00
|
|
|
btnArchiveBase.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnArchiveBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveZipEvaluation.png")));
|
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnArchiveBase, "cell 0 6,growx,aligny top");
|
2024-04-10 12:29:17 +02:00
|
|
|
btnChargerFichierAnalyse.setToolTipText("Création d'une évaluation à partir d'un fichier d'analyse au format XML.");
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
btnChargerFichierAnalyse.setForeground(new Color(0, 64, 128));
|
|
|
|
btnChargerFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnChargerFichierAnalyse.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fichierAnalyse.png")));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnChargerFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnChargerFichierAnalyse, "cell 0 7,growx,aligny top");
|
2024-04-10 12:29:17 +02:00
|
|
|
btnExtraireFileAnalysis.setToolTipText("Extraire le fichier d'analyse de l'évaluation sélectionnée.");
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
btnExtraireFileAnalysis.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnExtraireFileAnalysis.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/extraireFichierAnalyse.png")));
|
|
|
|
btnExtraireFileAnalysis.setForeground(new Color(209, 105, 35));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnExtraireFileAnalysis.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-04-01 09:54:28 +02:00
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnExtraireFileAnalysis, "cell 0 8,growx,aligny top");
|
2023-04-01 09:54:28 +02:00
|
|
|
btnRenommeFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnRenommeFichierAnalyse.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fichierAnalyseRenomme.png")));
|
2024-04-06 13:44:21 +02:00
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnRenommeFichierAnalyse, "cell 0 9,growx,aligny top");
|
2023-04-01 09:54:28 +02:00
|
|
|
btnRenommeFichierAnalyse.setForeground(new Color(255, 140, 0));
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
|
2024-04-10 12:29:17 +02:00
|
|
|
btnRenommeFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-04-01 09:54:28 +02:00
|
|
|
btnSupprimeEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
|
btnSupprimeEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/removeEvaluaton.png")));
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnSupprimeEvaluation, "cell 0 11,growx,aligny top");
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
btnSupprimeEvaluation.setForeground(new Color(255, 0, 0));
|
2024-04-10 12:29:17 +02:00
|
|
|
btnSupprimeEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-04-01 09:54:28 +02:00
|
|
|
btnFermer.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/quitteEvaluation.png")));
|
|
|
|
btnFermer.setHorizontalAlignment(SwingConstants.LEFT);
|
2024-04-10 12:29:17 +02:00
|
|
|
btnFermer.setFont(new Font("Tahoma", Font.BOLD, 15));
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
panelGauche.add(btnFermer, "cell 0 12,growx,aligny top");
|
2023-04-01 09:54:28 +02:00
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
//*Détection de la ligne sélectionnée
|
|
|
|
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
|
|
|
ListSelectionModel rowSM = table.getSelectionModel();
|
|
|
|
rowSM.addListSelectionListener(new ListSelectionListener() {
|
|
|
|
@Override
|
|
|
|
public void valueChanged(ListSelectionEvent e) {
|
|
|
|
//Ignore extra messages.
|
|
|
|
if (e.getValueIsAdjusting()) return;
|
2023-04-01 09:54:28 +02:00
|
|
|
lsm = (ListSelectionModel)e.getSource();
|
2023-02-24 18:22:58 +01:00
|
|
|
if (lsm.isSelectionEmpty()) {
|
2024-03-26 21:13:53 +01:00
|
|
|
System.out.println("Aucune ligne sélectionnée.");
|
2023-02-24 18:22:58 +01:00
|
|
|
} else {
|
|
|
|
indexSelect = lsm.getMinSelectionIndex();
|
2024-03-26 21:13:53 +01:00
|
|
|
System.out.println("La ligne " + indexSelect + " est sélectionnée.");
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
ListenerAction();
|
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
|
2023-02-28 21:37:14 +01:00
|
|
|
public static baseDonneesEvaluations getInstance() {
|
2023-04-01 09:54:28 +02:00
|
|
|
if (isDispose) {
|
2023-02-28 21:37:14 +01:00
|
|
|
instance = new baseDonneesEvaluations();
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
// afficheLesBoutonGestionBase();
|
2023-02-24 18:22:58 +01:00
|
|
|
instance.setVisible(true);
|
2023-04-01 09:54:28 +02:00
|
|
|
if(commandes.IndexEvaluationCharger!=-1) {
|
|
|
|
selectRow(commandes.IndexEvaluationCharger);
|
|
|
|
}
|
2023-02-24 18:22:58 +01:00
|
|
|
isDispose=false;
|
2024-04-08 20:46:40 +02:00
|
|
|
if(commandes.PathBaseEvaluationDefaut) {
|
|
|
|
lblCheminVersBase.setText(commandes.PathBaseEvaluations);
|
|
|
|
}else {
|
|
|
|
lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations);
|
|
|
|
}
|
2023-02-24 18:22:58 +01:00
|
|
|
return instance;
|
|
|
|
}
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
public static void selectRow(int indexRow) {
|
|
|
|
table.setRowSelectionInterval(indexRow, indexRow);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Ferme l'instance.
|
|
|
|
*/
|
|
|
|
public static void ferme() {
|
|
|
|
if(!isDispose) {
|
|
|
|
isDispose=true;
|
|
|
|
instance.dispose();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-21 20:07:38 +01:00
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
private void ListenerAction() {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Quitter le fenêtre.</br>
|
|
|
|
*/
|
|
|
|
addWindowListener(new java.awt.event.WindowAdapter() {
|
|
|
|
@Override
|
|
|
|
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
|
|
|
|
isDispose=true;
|
|
|
|
dispose();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
|
2023-04-04 14:29:25 +02:00
|
|
|
/**
|
|
|
|
* Archive la base des évaluations.
|
|
|
|
*/
|
|
|
|
btnArchiveBase.addActionListener(new ActionListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
if(commandes.evaluationsBase!=null) {
|
|
|
|
try {
|
|
|
|
String nameFile = Run.AddBaseToZip(Run.ecritureNode(commandes.evaluationsBase, 0));
|
|
|
|
JOptionPane.showMessageDialog(null, "La base des évaluations a été sauvegardée dans \"Archive des bases.zip\"\nSous le nom " + nameFile );
|
|
|
|
} catch (ZipException e1) {
|
|
|
|
e1.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
/**
|
2023-04-01 09:54:28 +02:00
|
|
|
* Extrait le fichier d'analyse de l'évaluation.
|
2023-02-24 18:22:58 +01:00
|
|
|
*/
|
2023-04-01 09:54:28 +02:00
|
|
|
btnExtraireFileAnalysis.addActionListener(new ActionListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
|
|
|
|
if(lsm!=null) {
|
|
|
|
if (!lsm.isSelectionEmpty()) {
|
2024-04-10 12:29:17 +02:00
|
|
|
node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
|
2024-04-13 13:19:50 +02:00
|
|
|
String nameFile ="fichier analyse.xml";
|
|
|
|
if(evaluation.getAttributs().get("analysis_filename")!=null) {
|
|
|
|
nameFile = evaluation.getAttributs().get("analysis_filename");
|
|
|
|
}
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
JFileChooser fileChooser = new JFileChooser();
|
|
|
|
fileChooser.setDialogTitle("Enregistrer sous...");
|
|
|
|
File file = null;
|
|
|
|
|
2024-04-10 12:29:17 +02:00
|
|
|
String analysis_filename ="";
|
2024-04-13 13:19:50 +02:00
|
|
|
if(evaluation.getAttributs().get("analysis_filename")!=null) {
|
|
|
|
if(!evaluation.getAttributs().get("analysis_filename").isEmpty()) {
|
|
|
|
file = new File(commandes.PathBaseEvaluations);
|
|
|
|
analysis_filename = evaluation.getAttributs().get("analysis_filename");
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
file = new File(commandes.PathBaseEvaluations);
|
|
|
|
|
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
fileChooser.setCurrentDirectory(file);
|
2023-04-04 14:29:25 +02:00
|
|
|
fileChooser.setSelectedFile(new File(nameFile));
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
int userSelection = fileChooser.showSaveDialog(null);
|
2024-04-10 12:29:17 +02:00
|
|
|
boolean notError = false;
|
2023-04-01 09:54:28 +02:00
|
|
|
if (userSelection == JFileChooser.APPROVE_OPTION) {
|
|
|
|
File fileToSave = fileChooser.getSelectedFile();
|
|
|
|
try {
|
|
|
|
if(commandes.os.contains("Win")) {
|
2024-04-10 12:29:17 +02:00
|
|
|
notError = Run.ecritureNodeEnXML(evaluation.retourneFirstEnfantsByName("fichier"), fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Run.TypeFile.Sujet );
|
2023-04-01 09:54:28 +02:00
|
|
|
}else {
|
2024-04-10 12:29:17 +02:00
|
|
|
notError = Run.ecritureNodeEnXML(evaluation.retourneFirstEnfantsByName("fichier"), fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("/")),Run.TypeFile.Sujet );
|
|
|
|
}
|
|
|
|
if(notError) {
|
|
|
|
JFrame frame = new JFrame("Extration");
|
|
|
|
JLabel texte = new JLabel("<html><h1>Extration réussie</h1><p>Le fichier d'analyse <b>"+ analysis_filename +"</b> a été extrait de la base.</p>"
|
|
|
|
+ "<p>"+fileToSave.getAbsolutePath()+"<p></html>");
|
|
|
|
JOptionPane.showMessageDialog(frame, texte);
|
|
|
|
}else {
|
|
|
|
JFrame frame = new JFrame("Erreur");
|
|
|
|
JLabel texte = new JLabel("<html><h1>Erreur</h1><p>Le fichier d'analyse n'a pas été extrait de la base.</p>"
|
|
|
|
+ "<p><p></html>");
|
|
|
|
JOptionPane.showMessageDialog(frame, texte);
|
2023-04-01 09:54:28 +02:00
|
|
|
}
|
|
|
|
} catch (IOException e1) {
|
|
|
|
e1.printStackTrace();
|
|
|
|
}
|
|
|
|
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
|
2024-04-10 12:29:17 +02:00
|
|
|
new recupeNodeBaseEvaluations();
|
2023-04-01 09:54:28 +02:00
|
|
|
}
|
|
|
|
System.out.println( "Save as" );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Charger un fichier d'analyse
|
|
|
|
*/
|
|
|
|
btnChargerFichierAnalyse.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
new ChargeFichierXML();
|
2024-04-09 14:50:03 +02:00
|
|
|
|
|
|
|
//Encapsulation du node d'analyse fichier dans un node evaluation.
|
2023-04-01 09:54:28 +02:00
|
|
|
node evaluation = new node();
|
|
|
|
evaluation.setNomElt("evaluation");
|
|
|
|
String name = "Nouvelle évaluation";
|
2024-04-09 14:50:03 +02:00
|
|
|
evaluation.getNodes().add(commandes.sujet);
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name);
|
|
|
|
|
|
|
|
if(name!=null) {
|
|
|
|
if(!name.isBlank()) {
|
2024-04-09 14:50:03 +02:00
|
|
|
evaluation.getNodes().add(commandes.sujet);
|
|
|
|
new creerNouvelleEvaluation(evaluation,name,false);
|
2023-04-01 09:54:28 +02:00
|
|
|
new recupeNodeBaseEvaluations();
|
|
|
|
model.addOrUpdate();
|
|
|
|
table.setModel(model);
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
}else {
|
|
|
|
JOptionPane.showConfirmDialog(null, "L'évaluation n'a pas été enregistrée.\nVous devez fournir un nom à l'évaluation.");
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Fusionner deux bases d'évaluations
|
|
|
|
*/
|
|
|
|
btnFusionnerBase.addActionListener(new ActionListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
2024-04-09 14:50:03 +02:00
|
|
|
new ChargePathBaseEvaluation();
|
2023-04-01 09:54:28 +02:00
|
|
|
new trierParDateDecroissanteLaBase();
|
|
|
|
model.addOrUpdate();
|
|
|
|
table.setModel(model);
|
|
|
|
selectRow(commandes.IndexEvaluationCharger);
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Femer la fenêtre.
|
|
|
|
*/
|
|
|
|
btnFermer.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
isDispose=true;
|
|
|
|
dispose();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Charger une nouvelle base d'évaluation
|
|
|
|
*/
|
|
|
|
btnChargerNewBase.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
2024-04-09 14:50:03 +02:00
|
|
|
new ChargePathBaseEvaluation();
|
2023-04-01 09:54:28 +02:00
|
|
|
new actOpenBaseEvaluation();
|
2024-04-08 20:46:40 +02:00
|
|
|
if(commandes.PathBaseEvaluationDefaut) {
|
|
|
|
lblCheminVersBase.setText(commandes.PathBaseEvaluations);
|
|
|
|
}else {
|
|
|
|
lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations);
|
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
model.addOrUpdate();
|
|
|
|
table = new JTable(model);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2024-04-09 14:50:03 +02:00
|
|
|
/**
|
|
|
|
* Charge la base par défaut
|
|
|
|
*/
|
|
|
|
btndefautBaseEvaluation.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
commandes.PathBaseEvaluations = Paths.get("").toAbsolutePath().toString();
|
|
|
|
commandes.NameBaseEvaluations = "base_evaluations_analyseWriter.xml";
|
|
|
|
commandes.PathBaseEvaluationDefaut = true;
|
|
|
|
new recupeNodeBaseEvaluations();
|
|
|
|
if(commandes.PathBaseEvaluationDefaut) {
|
|
|
|
lblCheminVersBase.setText(commandes.PathBaseEvaluations);
|
|
|
|
}else {
|
|
|
|
lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations);
|
|
|
|
}
|
|
|
|
model.addOrUpdate();
|
|
|
|
table = new JTable(model);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
/**
|
|
|
|
* Chargement d'une évaluation par double click.
|
|
|
|
*/
|
|
|
|
table.addMouseListener( new MouseListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void mouseClicked(MouseEvent e) {
|
|
|
|
if (e.getClickCount() == 2) {
|
|
|
|
if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
|
2024-04-10 12:29:17 +02:00
|
|
|
System.out.println("un click ou deux click");
|
2023-04-01 09:54:28 +02:00
|
|
|
if(lsm!=null) {
|
|
|
|
if (!lsm.isSelectionEmpty()) {
|
|
|
|
indexSelect = lsm.getMinSelectionIndex();
|
2024-04-10 12:29:17 +02:00
|
|
|
chargeEvaluation.chargeEnMémoireEvaluationSelected(indexSelect);
|
2023-04-01 09:54:28 +02:00
|
|
|
commandes.IndexEvaluationCharger = indexSelect;
|
|
|
|
if(!create.isDispose) {
|
|
|
|
create.getInstance();
|
|
|
|
}else {
|
|
|
|
evaluate.getInstance();
|
|
|
|
}
|
|
|
|
isDispose=true;
|
|
|
|
dispose();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void mousePressed(MouseEvent e) {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void mouseReleased(MouseEvent e) {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void mouseEntered(MouseEvent e) {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void mouseExited(MouseEvent e) {
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
2024-04-10 12:29:17 +02:00
|
|
|
* Bouton Sauvegarde de l'évaluation en cours</br>
|
|
|
|
* avec renommage de l'évaluation.</br>
|
2023-02-24 18:22:58 +01:00
|
|
|
*/
|
|
|
|
btnSaveEvaluation.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
2024-04-10 12:29:17 +02:00
|
|
|
if(commandes.evaluationChargeEnMemoire!=null) {
|
|
|
|
String name = commandes.evaluationChargeEnMemoire.getAttributs().get("name");
|
|
|
|
name = JOptionPane.showInputDialog(null,"Voulez-vous renommer l'évaluation ?",name);
|
2023-04-01 09:54:28 +02:00
|
|
|
if(name!=null) {
|
|
|
|
if(!name.isBlank()) {
|
2024-04-10 12:29:17 +02:00
|
|
|
new creerNouvelleEvaluation(commandes.evaluationChargeEnMemoire, name,true);
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
}
|
2023-04-04 14:29:25 +02:00
|
|
|
}else {
|
2024-04-10 12:29:17 +02:00
|
|
|
String name = JOptionPane.showInputDialog(null,"Voulez-vous renommer l'évaluation ?","Nouvelle évaluation");
|
|
|
|
if(name!=null) {
|
|
|
|
if(!name.isBlank()) {
|
|
|
|
new creerNouvelleEvaluation(new node(), name,false);
|
|
|
|
}
|
|
|
|
}
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
2024-04-10 12:29:17 +02:00
|
|
|
new trierParDateDecroissanteLaBase();
|
|
|
|
new recupeNodeBaseEvaluations();
|
|
|
|
model.addOrUpdate();
|
|
|
|
table.setModel(model);
|
|
|
|
selectRow(commandes.IndexEvaluationCharger);
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Bouton supprimer une évaluation.</br>
|
|
|
|
*/
|
|
|
|
btnSupprimeEvaluation.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
if(lsm!=null) {
|
|
|
|
if (!lsm.isSelectionEmpty()) {
|
2023-04-01 09:54:28 +02:00
|
|
|
if(JOptionPane.showConfirmDialog(null,"Voulez-vous supprimer l'évaluation sélectionnée ?",
|
|
|
|
"Suppression", JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION) {
|
2023-03-21 20:07:38 +01:00
|
|
|
indexSelect = lsm.getMinSelectionIndex();
|
2023-04-01 09:54:28 +02:00
|
|
|
|
2024-04-10 12:29:17 +02:00
|
|
|
node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
|
|
|
|
new removeEvaluation(evaluation);
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
new recupeNodeBaseEvaluations();
|
|
|
|
model.addOrUpdate();
|
|
|
|
table.setModel(model);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-03-21 20:07:38 +01:00
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
});
|
2023-03-21 20:07:38 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Renomme le fichier d'analyse
|
|
|
|
*/
|
|
|
|
btnRenommeFichierAnalyse.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
if(lsm!=null)if (!lsm.isSelectionEmpty()) {
|
2023-04-01 09:54:28 +02:00
|
|
|
// indexSelect = lsm.getMinSelectionIndex();
|
2024-04-10 12:29:17 +02:00
|
|
|
|
|
|
|
node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
|
|
|
|
|
2023-03-21 20:07:38 +01:00
|
|
|
String nomFichierAnalyse = "";
|
|
|
|
if(evaluation.retourneFirstEnfantsByName("fichier").getAttributs().get("analysis_filename")!=null) {
|
|
|
|
nomFichierAnalyse = evaluation.retourneFirstEnfantsByName("fichier").getAttributs().get("analysis_filename");
|
|
|
|
}
|
|
|
|
JPanel panel = new JPanel();
|
|
|
|
JLabel Text = new JLabel();
|
2023-04-04 14:29:25 +02:00
|
|
|
Text.setText("<html><p>Renommer le fichier d'analyse avec le nom : </p></html>");
|
2023-03-21 20:07:38 +01:00
|
|
|
panel.add(Text);
|
|
|
|
|
|
|
|
|
|
|
|
nomFichierAnalyse = JOptionPane.showInputDialog(null,panel, nomFichierAnalyse);
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
if(nomFichierAnalyse!=null) {
|
|
|
|
if(nomFichierAnalyse!=null) {
|
|
|
|
if(!nomFichierAnalyse.isBlank()) {
|
|
|
|
Pattern pt = Pattern.compile("\\.xml$");
|
|
|
|
Matcher match= pt.matcher(nomFichierAnalyse);
|
|
|
|
if(!match.find()) {
|
|
|
|
nomFichierAnalyse = nomFichierAnalyse + ".xml";
|
|
|
|
}
|
|
|
|
evaluation.retourneFirstEnfantsByName("fichier").getAttributs().put("analysis_filename", nomFichierAnalyse);
|
|
|
|
evaluation.retourneFirstEnfantsByName("fichier").getAttributs().put("filenameAnalyse", nomFichierAnalyse);
|
|
|
|
evaluation.getAttributs().put("analysis_filename", nomFichierAnalyse);
|
2024-04-10 12:29:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
new creerNouvelleEvaluation(evaluation);
|
|
|
|
|
|
|
|
new recupeNodeBaseEvaluations();
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
model.addOrUpdate();
|
|
|
|
table.setModel(model);
|
|
|
|
}
|
|
|
|
}
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
2023-04-01 09:54:28 +02:00
|
|
|
|
|
|
|
}
|
2023-03-21 20:07:38 +01:00
|
|
|
}
|
|
|
|
});
|
2023-02-24 18:22:58 +01:00
|
|
|
|
2023-03-21 20:07:38 +01:00
|
|
|
/**
|
2024-04-10 12:29:17 +02:00
|
|
|
* Renommer une évaluation sélectionnée.
|
2023-03-21 20:07:38 +01:00
|
|
|
*/
|
|
|
|
btnRenommerEvaluation.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
if(lsm!=null)if (!lsm.isSelectionEmpty()) {
|
|
|
|
indexSelect = lsm.getMinSelectionIndex();
|
2024-04-10 12:29:17 +02:00
|
|
|
node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
|
2023-03-21 20:07:38 +01:00
|
|
|
String nomEvaluation = "";
|
|
|
|
if(evaluation.getAttributs().get("name")!=null) {
|
|
|
|
nomEvaluation = evaluation.getAttributs().get("name");
|
|
|
|
}
|
|
|
|
nomEvaluation = JOptionPane.showInputDialog(null,"Renommer cette évaluation ?",nomEvaluation);
|
|
|
|
if(!nomEvaluation.isBlank()) {
|
|
|
|
evaluation.getAttributs().put("name",nomEvaluation);
|
2024-04-09 14:50:03 +02:00
|
|
|
new creerNouvelleEvaluation(evaluation);
|
2023-04-01 09:54:28 +02:00
|
|
|
model.addOrUpdate();
|
|
|
|
table.setModel(model);
|
2023-03-21 20:07:38 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2023-02-24 18:22:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-04-01 09:54:28 +02:00
|
|
|
///**
|
|
|
|
// * charge en mémoire l'évaluation sélectionnée.<br>
|
|
|
|
// * @param evaluation
|
|
|
|
// */
|
|
|
|
//private void chargeEvaluationSelected(node evaluation) {
|
|
|
|
//
|
|
|
|
// //* Charge le node sujet provisoirement
|
|
|
|
// commandes.NameEvaluationCharger= evaluation.getAttributs().get("name");
|
|
|
|
// commandes.path = evaluation.getAttributs().get("path"); //Dossier des fichiers des étudiants
|
|
|
|
// node sujetLoad = new node(Run.ecritureXMLDansStringBuilder(evaluation.retourneFirstEnfantsByName("fichier"), Run.TypeFile.Sujet).replace("\t","").replace("\r", "").replace("\n", ""));
|
|
|
|
// commandes.sujet = sujetLoad;
|
|
|
|
//
|
|
|
|
//// Chargement provisoire du node sujet depuis la base
|
|
|
|
//
|
|
|
|
// commandes.nameSujet = evaluation.getAttributs().get("analysis_filename");
|
|
|
|
// commandes.PathFilenameAnalysis = evaluation.getAttributs().get("PathFilenameAnalysis");
|
|
|
|
//
|
|
|
|
// //** Les paramètres
|
|
|
|
// commandes.version = evaluation.getAttributs().get("version");
|
|
|
|
// commandes.fichierStudentMoodle = Boolean.valueOf(evaluation.getAttributs().get("fichierStudentMoodle"));
|
|
|
|
// commandes.sansFeeback = Boolean.valueOf(evaluation.getAttributs().get("sansFeeback"));
|
|
|
|
// commandes.noDetail = Boolean.valueOf(evaluation.getAttributs().get("noDetail"));
|
|
|
|
// commandes.noNote = Boolean.valueOf(evaluation.getAttributs().get("noNote"));
|
|
|
|
// commandes.zipfeedback = Boolean.valueOf(evaluation.getAttributs().get("zipfeedback"));
|
|
|
|
// commandes.verifHisto2 = Boolean.valueOf(evaluation.getAttributs().get("verifHisto2"));
|
|
|
|
// commandes.ecritNoteCSV = Boolean.valueOf(evaluation.getAttributs().get("ecritNoteCSV"));
|
|
|
|
// commandes.newLogo = Boolean.valueOf(evaluation.getAttributs().get("newLogo"));
|
|
|
|
// commandes.noLogo = Boolean.valueOf(evaluation.getAttributs().get("noLogo"));
|
|
|
|
// commandes.fourniCSV = Boolean.valueOf(evaluation.getAttributs().get("fourniCSV"));
|
|
|
|
// commandes.nameCSV = evaluation.getAttributs().get("nameCSV");
|
|
|
|
//
|
|
|
|
// if(evaluation.getAttributs().get("analyse_nombres_modifications_simultané_maxi")!=null) {
|
|
|
|
// commandes.analyse_nombres_modifications_simultané_maxi = Integer.valueOf(evaluation.getAttributs().get("analyse_nombres_modifications_simultané_maxi"));
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// commandes.fourniCSV = Boolean.valueOf(evaluation.getAttributs().get("fourniCSV"));
|
|
|
|
// commandes.nameSVG = evaluation.getAttributs().get("nameSVG");
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// commandes.nodeCSV = evaluation.retourneFirstEnfantsByName("fileCSV");
|
|
|
|
//
|
|
|
|
// commandes.contenuFichierSVG = evaluation.retourneFirstEnfantsByName("nodSVG").retourneLesContenusEnfants("");
|
|
|
|
//
|
|
|
|
// commandes.fichierAnalyseValide = true;
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// //* Rechercher la source
|
|
|
|
// String CheminVersFileXML = "";
|
|
|
|
// if(commandes.os.contains("Win")) {
|
|
|
|
// commandes.PathFilenameAnalysis.replaceAll("/", "\\"); // Sur Windows
|
|
|
|
// CheminVersFileXML = commandes.PathFilenameAnalysis + "\\" + commandes.nameSujet;
|
|
|
|
//
|
|
|
|
// }else {
|
|
|
|
// commandes.PathFilenameAnalysis.replaceAll("\\", "/"); // Sur Windows // Sur mac & Linux
|
|
|
|
// CheminVersFileXML = commandes.PathFilenameAnalysis + "/" + commandes.nameSujet;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// File file = new File(CheminVersFileXML);
|
|
|
|
// if(file.exists()) {
|
|
|
|
//
|
|
|
|
// if (recupereDateFichierAnalyseSource(file)!=null) {
|
|
|
|
//
|
|
|
|
// Date DateFichierSource = recupereDateFichierAnalyseSource(file);
|
|
|
|
// Date DateFichierAnalyseBase = calcul.formatDateWriter.dateNodeSujet();
|
|
|
|
//
|
|
|
|
// if(DateFichierAnalyseBase.before(DateFichierSource)) {
|
|
|
|
// JFrame frame = new JFrame();
|
|
|
|
// JLabel text = new JLabel();
|
|
|
|
// text.setText("<html><p>Le fichier d'analyse est déjà chargé depuis la base de données.</p><br>"
|
|
|
|
// + "<p>Cependant, vous avez le fichier d'analyse qui se trouve dans le dossier :</p>"
|
|
|
|
// + "<p>"+CheminVersFileXML+"</p>"
|
|
|
|
// + "<p>Et dont la date est plus récente que le fichier d'analyse qui se trouve dans la base.</p><br><hr>"
|
|
|
|
// + "<p>Voulez-vous le charger depuis ce dossier ?</p></html>");
|
|
|
|
// if (JOptionPane.showConfirmDialog(frame, text, "WARNING",JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
|
|
|
|
// chargeLeNodeSujet(file);
|
|
|
|
// commandes.path = evaluation.getAttributs().get("path"); //Recharge le chemin vers le dossier contenant les fichiers des étudiants
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// commandes.initialiseParametresSettingProprietes();
|
|
|
|
// try {
|
|
|
|
// commandes.sujetSauvegarde = commandes.sujet.clone();
|
|
|
|
// } catch (CloneNotSupportedException e) {
|
|
|
|
// e.printStackTrace();
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// //Chargement des paramètres du fichier d'analyse
|
|
|
|
// meptl.chargementParametresFichierAnalyse();
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// //** Remise à zéro de la base dans la mémoire de l'application
|
|
|
|
// commandes.evaluationsBase = null;
|
|
|
|
//
|
|
|
|
// //** Affichage de la fenêtre
|
|
|
|
// if(!evaluate.isDispose) {
|
|
|
|
// evaluate.getInstance();
|
|
|
|
// };
|
|
|
|
// if(!create.isDispose) {
|
|
|
|
// create.getInstance();
|
|
|
|
// };
|
|
|
|
//
|
|
|
|
// isDispose=true;
|
|
|
|
//
|
|
|
|
//}
|
|
|
|
|
|
|
|
///**
|
|
|
|
// * Charge le fichier d'analyse de l'évaluation.<br>
|
|
|
|
// * @param file
|
|
|
|
// */
|
|
|
|
//private void chargeLeNodeSujet(File file) {
|
|
|
|
//
|
|
|
|
// BufferedReader br;
|
|
|
|
// try {
|
|
|
|
// br = new BufferedReader(
|
|
|
|
// new InputStreamReader(
|
|
|
|
// new FileInputStream(file.getAbsoluteFile()), "UTF-8"));
|
|
|
|
// String line;
|
|
|
|
// StringBuilder targetString = new StringBuilder();
|
|
|
|
// while ((line = br.readLine()) != null) {
|
|
|
|
// targetString.append(line);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// //node.node2(targetString);
|
|
|
|
// node sujetLoad = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
|
|
|
|
//
|
|
|
|
// // Vérification de la conformité du fichier d'analyse
|
|
|
|
// if(!ChargeFichierXML.fichierSujetValide(sujetLoad)) {
|
|
|
|
// JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide.");
|
|
|
|
// }else {
|
|
|
|
// commandes.initialiseParametresSettingProprietes();
|
|
|
|
// commandes.sujet = sujetLoad;
|
|
|
|
// commandes.sujetSauvegarde = commandes.sujet.clone();
|
|
|
|
//
|
|
|
|
// //Chargement des paramètres du fichier d'analyse
|
|
|
|
// System.out.println( "Chargement des paramètres du fichier d'analyse");
|
|
|
|
// meptl.chargementParametresFichierAnalyse();
|
|
|
|
//
|
|
|
|
// // Rechercher des erreurs dans le fichier d'analyse
|
|
|
|
// System.out.println( "Vérification du fichier d'analyse" );
|
|
|
|
// new verificationFichierAnalyse();
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// } catch (UnsupportedEncodingException e1) {
|
|
|
|
// e1.printStackTrace();
|
|
|
|
// } catch (FileNotFoundException e1) {
|
|
|
|
// e1.printStackTrace();
|
|
|
|
// } catch (Exception e) {
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
//private Date recupereDateFichierAnalyseSource(File file) {
|
|
|
|
// BufferedReader br;
|
|
|
|
// try {
|
|
|
|
// br = new BufferedReader(
|
|
|
|
// new InputStreamReader(
|
|
|
|
// new FileInputStream(file.getAbsoluteFile()), "UTF-8"));
|
|
|
|
// String line;
|
|
|
|
// StringBuilder targetString = new StringBuilder();
|
|
|
|
// while ((line = br.readLine()) != null) {
|
|
|
|
// targetString.append(line);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// //node.node2(targetString);
|
|
|
|
// node sujetLoad = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
|
|
|
|
//
|
|
|
|
// // Vérification de la conformité du fichier d'analyse
|
|
|
|
// if(!ChargeFichierXML.fichierSujetValide(sujetLoad)) {
|
|
|
|
// JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide.");
|
|
|
|
// }else {
|
|
|
|
// if(sujetLoad.getAttributs().get("date")!=null) {
|
|
|
|
// String dateString = sujetLoad.getAttributs().get("date");
|
|
|
|
// return calcul.formatDateWriter.DateLibreOffice(dateString);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// } catch (UnsupportedEncodingException e1) {
|
|
|
|
// e1.printStackTrace();
|
|
|
|
// } catch (FileNotFoundException e1) {
|
|
|
|
// e1.printStackTrace();
|
|
|
|
// } catch (Exception e) {
|
|
|
|
// }
|
|
|
|
// return null;
|
|
|
|
//
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//private void ecritureBaseEvaluation(node evaluations) throws IOException {
|
|
|
|
//// File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath());
|
|
|
|
//// Run.ecritureNodeEnXML(evaluations, "base_evaluations_analyseWriter.xml", directory.getAbsolutePath(), Run.TypeFile.Evaluation);
|
|
|
|
//
|
|
|
|
// String directoryName = "";
|
|
|
|
// if(commandes.PathBaseEvaluationDefaut) {
|
|
|
|
// directoryName = Paths.get("").toAbsolutePath().toString();
|
|
|
|
// }else {
|
|
|
|
// directoryName = commandes.PathBaseEvaluations;
|
|
|
|
// }
|
|
|
|
// Run.ecritureNodeEnXML(evaluations, commandes.NameBaseEvaluations, directoryName, Run.TypeFile.Evaluation);
|
|
|
|
//
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
//private boolean isEvaluationExist(String nameEvaluation) {
|
|
|
|
// if(commandes.evaluationsBase.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "name", nameEvaluation)!=null) return true;
|
|
|
|
// return false;
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
//private node creationNodeEvaluation(node evaluation, String name) {
|
|
|
|
// evaluation.setNomElt("evaluation");
|
|
|
|
// Date aujourdhui = new Date();
|
|
|
|
// evaluation.getAttributs().put("version", commandes.version);
|
|
|
|
// evaluation.getAttributs().put("name", name);
|
|
|
|
// evaluation.getAttributs().put("PathFilenameAnalysis", commandes.PathFilenameAnalysis);
|
|
|
|
// evaluation.getAttributs().put("path", commandes.path);
|
|
|
|
// evaluation.getAttributs().put("fichierStudentMoodle", String.valueOf(commandes.fichierStudentMoodle));
|
|
|
|
// evaluation.getAttributs().put("sansFeeback", String.valueOf(commandes.sansFeeback) );
|
|
|
|
// evaluation.getAttributs().put("noDetail", String.valueOf(commandes.noDetail) );
|
|
|
|
// evaluation.getAttributs().put("noNote", String.valueOf(commandes.noNote) );
|
|
|
|
// evaluation.getAttributs().put("zipfeedback", String.valueOf(commandes.zipfeedback) );
|
|
|
|
// evaluation.getAttributs().put("verifHisto2", String.valueOf(commandes.verifHisto2) );
|
|
|
|
// evaluation.getAttributs().put("ecritNoteCSV", String.valueOf(commandes.ecritNoteCSV) );
|
|
|
|
// evaluation.getAttributs().put("newLogo", String.valueOf(commandes.newLogo) );
|
|
|
|
// evaluation.getAttributs().put("noLogo", String.valueOf(commandes.noLogo) );
|
|
|
|
// evaluation.getAttributs().put("analyse_nombres_modifications_simultané_maxi", String.valueOf(commandes.analyse_nombres_modifications_simultané_maxi) );
|
|
|
|
//
|
|
|
|
// //Supprime le node fichier s'il existe.
|
|
|
|
// node nodremove = evaluation.retourneFirstEnfantsByName("fichier");
|
|
|
|
// if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove);
|
|
|
|
//
|
|
|
|
// evaluation.getNodes().add(commandes.sujet);
|
|
|
|
//
|
|
|
|
// if(commandes.sujet.getAttributs().get("analysis_filename").contains(".xml")) {
|
|
|
|
// evaluation.getAttributs().put("analysis_filename",commandes.sujet.getAttributs().get("analysis_filename"));
|
|
|
|
// }else {
|
|
|
|
// evaluation.getAttributs().put("analysis_filename",commandes.nameSujet);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) );
|
|
|
|
// if(commandes.nameCSV!=null) {
|
|
|
|
// evaluation.getAttributs().put("nameCSV", commandes.nameCSV );
|
|
|
|
// }else {
|
|
|
|
// evaluation.getAttributs().put("nameCSV", "");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) );
|
|
|
|
// if(commandes.nameSVG!=null) {
|
|
|
|
// evaluation.getAttributs().put("nameSVG", commandes.nameSVG );
|
|
|
|
// }else {
|
|
|
|
// evaluation.getAttributs().put("nameSVG", "" );
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// //Supprime le node fichier s'il existe.
|
|
|
|
// nodremove = evaluation.retourneFirstEnfantsByName("fileCSV");
|
|
|
|
// if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove);
|
|
|
|
//
|
|
|
|
// evaluation.getNodes().add(commandes.nodeCSV);
|
|
|
|
//
|
|
|
|
// try {
|
|
|
|
// evaluation.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui));
|
|
|
|
// } catch (ParseException e) {
|
|
|
|
// e.printStackTrace();
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// if(commandes.nameSVG!=null) {
|
|
|
|
// if(!commandes.nameSVG.isBlank() && !commandes.contenuFichierSVG.isBlank()) {
|
|
|
|
// node SVG = new node();
|
|
|
|
// SVG.setNomElt("nodSVG");
|
|
|
|
// SVG.setContenu(commandes.contenuFichierSVG);
|
|
|
|
// evaluation.getNodes().add(SVG);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// return evaluation;
|
|
|
|
//
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
//private void recupeNodeBaseEvaluations() {
|
|
|
|
//
|
|
|
|
//// File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath());
|
|
|
|
//
|
|
|
|
// String directoryName = "";
|
|
|
|
// File file = null;
|
|
|
|
// if(commandes.PathBaseEvaluationDefaut) {
|
|
|
|
// directoryName = Paths.get("").toAbsolutePath().toString();
|
|
|
|
// }else {
|
|
|
|
// directoryName = commandes.PathBaseEvaluations;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// if(commandes.os.contains("Win")) {
|
|
|
|
// file = new File(directoryName + "\\" + commandes.NameBaseEvaluations);
|
|
|
|
// }else {
|
|
|
|
// file = new File(directoryName + "/" + commandes.NameBaseEvaluations);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// if(file!=null) {
|
|
|
|
// BufferedReader br;
|
|
|
|
// try {
|
|
|
|
// br = new BufferedReader(
|
|
|
|
// new InputStreamReader(
|
|
|
|
// new FileInputStream(file.getAbsoluteFile()), "UTF-8"));
|
|
|
|
// String line;
|
|
|
|
// StringBuilder targetString = new StringBuilder();
|
|
|
|
// while ((line = br.readLine()) != null) {
|
|
|
|
// targetString.append(line);
|
|
|
|
// }
|
|
|
|
// node evaluations = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
|
|
|
|
// if(evaluations!=null) {
|
|
|
|
// if(evaluations.getNodes().size()>0) {
|
|
|
|
// if(evaluations.getNomElt().equals("evaluations")) {
|
|
|
|
// commandes.evaluationsBase = evaluations;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }catch (Exception e) {
|
|
|
|
// JFrame frame = new JFrame();
|
|
|
|
// JLabel texte = new JLabel("<html><p>La base de données ne se trouve pas dans le même dossier<br>que celui de l'application.</p><br>"
|
|
|
|
// +"<p>Vous pouvez charger la base de données depuis la fenêtre \"<b>base de données d'évaluation</b>\" de l'application.</p>"
|
|
|
|
// + "<p>Sinon, une nouvelle base de données sera créé dans le dossier de l'application.</p></html>");
|
|
|
|
// JOptionPane.showMessageDialog(frame, texte);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//}
|
|
|
|
|
|
|
|
//private void afficheInformationEvaluation() {
|
|
|
|
// node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect);
|
|
|
|
// node fichieranalyse = evaluation.retourneFirstEnfantsByName("fichier");
|
|
|
|
// String version = evaluation.getAttributs().get("version");
|
|
|
|
// String auteur = fichieranalyse.getAttributs().get("auteur");
|
|
|
|
// String path = evaluation.getAttributs().get("path");
|
|
|
|
// String modesuivi = fichieranalyse.getAttributs().get("historiquePresent");
|
|
|
|
// String baremeAlpha = fichieranalyse.getAttributs().get("baremeABC");
|
|
|
|
// String dossierNominatif = evaluation.getAttributs().get("fichierStudentMoodle");
|
|
|
|
// String bareme = "";
|
|
|
|
// if(!Boolean.valueOf(fichieranalyse.getAttributs().get("baremeABC"))) {
|
|
|
|
// bareme = fichieranalyse.getAttributs().get("notefrom");
|
|
|
|
// }
|
|
|
|
// String progression = fichieranalyse.getAttributs().get("progression");
|
|
|
|
//
|
|
|
|
// textPane.setText("Version analyseWriter : " + version+
|
|
|
|
// "\nAuteur : " + auteur +
|
|
|
|
// "\nLes fichiers des étudiants sont dans des dossiers nominatifs : " + dossierNominatif+
|
|
|
|
// "\nBarème alphabétique : " + baremeAlpha +
|
|
|
|
// "\nMode de suivi activé : " + modesuivi);
|
|
|
|
//
|
|
|
|
// textPane_1.setText("Path des étudiants : " + path +
|
|
|
|
// "\nBarème : " + bareme +
|
|
|
|
// "\nCoef. de progression : " + progression);
|
|
|
|
//}
|
2023-02-24 18:22:58 +01:00
|
|
|
|
|
|
|
}
|