package fenetres; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextPane; import javax.swing.ListSelectionModel; import javax.swing.SwingConstants; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.TableColumnModel; import MEPTL.commandes; import action.actOpenBaseEvaluation; import baseEvaluations.chargeEvaluationSelected; import baseEvaluations.creerNouvelleEvaluation; import baseEvaluations.ecritureBaseEvaluation; import baseEvaluations.evaluationExist; import baseEvaluations.myTableBaseEvaluation; import baseEvaluations.recupeNodeBaseEvaluations; import baseEvaluations.trierParDateDecroissanteLaBase; import cXML.Run; import cXML.node; import net.lingala.zip4j.exception.ZipException; import net.miginfocom.swing.MigLayout; public class baseDonneesEvaluations extends JFrame { /** * */ private static final long serialVersionUID = 1L; private static baseDonneesEvaluations instance; private myTableBaseEvaluation model = new myTableBaseEvaluation(); static JTable table = new JTable(); private JPanel panelHaut = new JPanel(); private JPanel panelBas = new JPanel(); private JPanel panelGauche = new JPanel(); private JLabel lblInformationBaseEvluation = new JLabel(""); private JButton btnSupprimeEvaluation = new JButton("Supprimer une
évaluation"); private JButton btnSaveEvaluation = new JButton("Enregistrer l'évaluation
actuelle en mémoire"); private JButton btnRenommeFichierAnalyse = new JButton("Renommer le fichier
d'analyse"); private JButton btnRenommerEvaluation = new JButton("Renommer l'évaluation
sélectionnée"); public static boolean isDispose = true; int indexSelect=0; ListSelectionModel lsm = null; JScrollPane scrollPaneTable = new JScrollPane(); JScrollPane scrollPaneBoutons = new JScrollPane(); private final JButton btnChargerNewBase = new JButton("Utiliser une autre
base d'évaluation"); private final JButton btnFermer = new JButton("Femer"); private final JTextPane textPane = new JTextPane(); private final JTextPane textPane_1 = new JTextPane(); private final JButton btnExtraireFileAnalysis = new JButton("Extraire le fichier
d'analyse"); private final JButton btnFusionnerBase = new JButton("Fusionner deux bases
d'évaluation"); private final JButton btnChargerFichierAnalyse = new JButton("Charger un fichier
d'analyse"); private final static JLabel lblCheminVersBase = new JLabel(commandes.PathBaseEvaluations); private final JButton btnArchiveBase = new JButton("Archive la base des évaluations "); public baseDonneesEvaluations() { super(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 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); ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); setIconImage(img.getImage()); setTitle(commandes.Titre + " - La base de données des évaluations"); getContentPane().setLayout(new BorderLayout(2, 2)); model.addOrUpdate(); table = new JTable(model); 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); table.setFont(new Font("Tahoma", Font.PLAIN, 14)); scrollPaneTable = new JScrollPane(table); //Add the scroll pane to this panel. getContentPane().add(scrollPaneTable,BorderLayout.CENTER); 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); lblCheminVersBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/chargehistoriqueevaluationmini.png"))); panelBas.add(lblCheminVersBase); //*Le haut getContentPane().add(panelHaut, BorderLayout.NORTH); panelHaut.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); lblInformationBaseEvluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/accueilChargeEvaluation.png"))); lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 14)); panelHaut.add(lblInformationBaseEvluation); panelGauche.setBorder(null); scrollPaneBoutons = new JScrollPane(panelGauche); getContentPane().add(scrollPaneBoutons, BorderLayout.WEST); panelGauche.setLayout(new MigLayout("", "[247px]", "[53px][][][][][][][][30.00][][][][]")); btnChargerNewBase.setHorizontalAlignment(SwingConstants.LEFT); btnChargerNewBase.setForeground(new Color(0, 128, 192)); panelGauche.add(btnChargerNewBase, "cell 0 0,growx,aligny top"); btnChargerNewBase.setFont(new Font("Tahoma", Font.BOLD, 16)); btnChargerNewBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/sauvegardehistoriqueevaluation.png"))); btnSaveEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnSaveEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveEvaluation.png"))); panelGauche.add(btnSaveEvaluation, "flowy,cell 0 1,growx,aligny top"); btnSaveEvaluation.setForeground(new Color(0, 64, 128)); btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); btnRenommerEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnRenommerEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/renommeEvaluaton.png"))); panelGauche.add(btnRenommerEvaluation, "cell 0 2,growx,aligny top"); btnRenommerEvaluation.setForeground(new Color(153, 50, 204)); btnRenommerEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); btnFusionnerBase.setForeground(new Color(56, 184, 149)); btnFusionnerBase.setHorizontalAlignment(SwingConstants.LEFT); btnFusionnerBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fusionneBaseEvaluation.png"))); btnFusionnerBase.setFont(new Font("Tahoma", Font.BOLD, 16)); panelGauche.add(btnFusionnerBase, "cell 0 3,growx,aligny top"); btnArchiveBase.setForeground(new Color(128, 128, 192)); btnArchiveBase.setFont(new Font("Tahoma", Font.BOLD, 16)); btnArchiveBase.setHorizontalAlignment(SwingConstants.LEFT); btnArchiveBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveZipEvaluation.png"))); panelGauche.add(btnArchiveBase, "cell 0 4,growx,aligny top"); btnChargerFichierAnalyse.setForeground(new Color(0, 64, 128)); btnChargerFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT); btnChargerFichierAnalyse.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fichierAnalyse.png"))); btnChargerFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 16)); panelGauche.add(btnChargerFichierAnalyse, "cell 0 5,growx,aligny top"); btnExtraireFileAnalysis.setHorizontalAlignment(SwingConstants.LEFT); btnExtraireFileAnalysis.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/extraireFichierAnalyse.png"))); btnExtraireFileAnalysis.setForeground(new Color(209, 105, 35)); btnExtraireFileAnalysis.setFont(new Font("Tahoma", Font.BOLD, 16)); panelGauche.add(btnExtraireFileAnalysis, "cell 0 6,growx,aligny top"); btnRenommeFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT); btnRenommeFichierAnalyse.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fichierAnalyseRenomme.png"))); panelGauche.add(btnRenommeFichierAnalyse, "cell 0 7,growx,aligny top"); btnRenommeFichierAnalyse.setForeground(new Color(255, 140, 0)); btnRenommeFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 16)); btnSupprimeEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnSupprimeEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/removeEvaluaton.png"))); panelGauche.add(btnSupprimeEvaluation, "cell 0 9,growx,aligny top"); btnSupprimeEvaluation.setForeground(new Color(255, 0, 0)); btnSupprimeEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); btnFermer.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/quitteEvaluation.png"))); btnFermer.setHorizontalAlignment(SwingConstants.LEFT); btnFermer.setFont(new Font("Tahoma", Font.BOLD, 16)); panelGauche.add(btnFermer, "cell 0 10,growx,aligny top"); //*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; lsm = (ListSelectionModel)e.getSource(); if (lsm.isSelectionEmpty()) { System.out.println("Aucune ligne sélectionnée."); } else { indexSelect = lsm.getMinSelectionIndex(); System.out.println("La ligne " + indexSelect + " est sélectionnée."); } } }); ListenerAction(); } public static baseDonneesEvaluations getInstance() { if (isDispose) { instance = new baseDonneesEvaluations(); } // afficheLesBoutonGestionBase(); instance.setVisible(true); if(commandes.IndexEvaluationCharger!=-1) { selectRow(commandes.IndexEvaluationCharger); } isDispose=false; lblCheminVersBase.setText(commandes.PathBaseEvaluations); return instance; } public static void selectRow(int indexRow) { table.setRowSelectionInterval(indexRow, indexRow); } /** * Ferme l'instance. */ public static void ferme() { if(!isDispose) { isDispose=true; instance.dispose(); } } private void ListenerAction() { /** * Quitter le fenêtre.
*/ addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { isDispose=true; dispose(); } }); /** * 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(); } } } }); /** * Extrait le fichier d'analyse de l'évaluation. */ btnExtraireFileAnalysis.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(lsm!=null) { if (!lsm.isSelectionEmpty()) { node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect).retourneFirstEnfantsByName("fichier"); String nameFile = evaluation.getAttributs().get("analysis_filename"); JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Enregistrer sous..."); File file = null; if(!evaluation.getAttributs().get("analysis_filename").isEmpty()) { file = new File(commandes.PathFilenameAnalysis ); //+ "\\" + utils.filename + ".xml" } fileChooser.setCurrentDirectory(file); fileChooser.setSelectedFile(new File(nameFile)); int userSelection = fileChooser.showSaveDialog(null); if (userSelection == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); try { if(commandes.os.contains("Win")) { Run.ecritureNodeEnXML(evaluation, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Run.TypeFile.Sujet ); JOptionPane.showMessageDialog(null,"Le fichier d'analyse a été extrait."); }else { Run.ecritureNodeEnXML(evaluation, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("/")),Run.TypeFile.Sujet ); JOptionPane.showMessageDialog(null,"Le fichier d'analyse a été extrait."); } } catch (IOException e1) { e1.printStackTrace(); } System.out.println("Save as file: " + fileToSave.getAbsolutePath()); } System.out.println( "Save as" ); } } } }); /** * Charger un fichier d'analyse */ btnChargerFichierAnalyse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new ChargeFichierXML(); node evaluation = new node(); evaluation.setNomElt("evaluation"); String name = "Nouvelle évaluation"; name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name); if(name!=null) { if(!name.isBlank()) { new creerNouvelleEvaluation(new node(),name,true); new ecritureBaseEvaluation(); new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); } }else { JOptionPane.showConfirmDialog(null, "L'évaluation n'a pas été enregistrée.\nVous devez fournir un nom à l'évaluation."); } } }); /** * Fusionner deux bases d'évaluations */ btnFusionnerBase.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new ChargePathBaseEvaluation(true); new trierParDateDecroissanteLaBase(); new ecritureBaseEvaluation(); 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) { new ChargePathBaseEvaluation(false); new actOpenBaseEvaluation(); lblCheminVersBase.setText(commandes.PathBaseEvaluations); model.addOrUpdate(); table = new JTable(model); } }); /** * 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) { System.out.println("double clicked"); if(lsm!=null) { if (!lsm.isSelectionEmpty()) { indexSelect = lsm.getMinSelectionIndex(); new chargeEvaluationSelected(commandes.evaluationsBase.getNodes().get(indexSelect)); 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) { } }); /** * Bouton Sauvegarde de l'évaluation en cours.
*/ btnSaveEvaluation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(commandes.fichierAnalyseValide) { String name ="Nom de l'évaluation"; if(lsm!=null) { if (!lsm.isSelectionEmpty()) { indexSelect = lsm.getMinSelectionIndex(); name = model.getNameEvaluation(indexSelect); } } name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name); if(name!=null) { if(!name.isBlank()) { if(evaluationExist.isEvaluationExist(name ,commandes.evaluationChargeEnMemoire.getAttributs().get("date")) && (commandes.evaluationChargeEnMemoire.equals(commandes.evaluationsBase.getNodes().get(indexSelect)))) { new creerNouvelleEvaluation(commandes.evaluationsBase.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "name", name), name,true); }else { new chargeEvaluationSelected(new creerNouvelleEvaluation(new node(), name, false).getEvaluation()); commandes.IndexEvaluationCharger = 0; } new trierParDateDecroissanteLaBase(); new ecritureBaseEvaluation(); new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); selectRow(commandes.IndexEvaluationCharger); } } }else { JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide."); } } }); /** * Bouton supprimer une évaluation.
*/ btnSupprimeEvaluation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(lsm!=null) { if (!lsm.isSelectionEmpty()) { if(JOptionPane.showConfirmDialog(null,"Voulez-vous supprimer l'évaluation sélectionnée ?", "Suppression", JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION) { indexSelect = lsm.getMinSelectionIndex(); if(commandes.IndexEvaluationCharger==indexSelect) { if(JOptionPane.showConfirmDialog(null,"Vous êtes sur le point de supprimer l'évaluation encours d'utilisation.\n" + "Voulez-vous vraiment supprimer cette évaluation?", "Suppression", JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION) { commandes.evaluationsBase.getNodes().remove(indexSelect); commandes.IndexEvaluationCharger=-1; commandes.evaluationChargeEnMemoire=null; } }else { commandes.evaluationsBase.getNodes().remove(indexSelect); if(commandes.IndexEvaluationCharger>indexSelect) commandes.IndexEvaluationCharger--; } new ecritureBaseEvaluation(); new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); //selectRow(commandes.IndexEvaluationCharger); } } } } }); /** * Renomme le fichier d'analyse */ btnRenommeFichierAnalyse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(lsm!=null)if (!lsm.isSelectionEmpty()) { // indexSelect = lsm.getMinSelectionIndex(); node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect); 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(); Text.setText("

Renommer le fichier d'analyse avec le nom :

"); panel.add(Text); nomFichierAnalyse = JOptionPane.showInputDialog(null,panel, nomFichierAnalyse); 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); new ecritureBaseEvaluation(); new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); } } } } } }); /** * Renommer une évaluation */ btnRenommerEvaluation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(lsm!=null)if (!lsm.isSelectionEmpty()) { indexSelect = lsm.getMinSelectionIndex(); node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect); 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); new ecritureBaseEvaluation(); new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); // table.setRowSelectionInterval(0, 0); } } } }); } ///** // * charge en mémoire l'évaluation sélectionnée.
// * @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("

Le fichier d'analyse est déjà chargé depuis la base de données.


" // + "

Cependant, vous avez le fichier d'analyse qui se trouve dans le dossier :

" // + "

"+CheminVersFileXML+"

" // + "

Et dont la date est plus récente que le fichier d'analyse qui se trouve dans la base.



" // + "

Voulez-vous le charger depuis ce dossier ?

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

La base de données ne se trouve pas dans le même dossier
que celui de l'application.


" // +"

Vous pouvez charger la base de données depuis la fenêtre \"base de données d'évaluation\" de l'application.

" // + "

Sinon, une nouvelle base de données sera créé dans le dossier de l'application.

"); // 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); //} }