MAJ V4.4.3

This commit is contained in:
pablo rodriguez 2023-02-22 19:55:37 +01:00
parent 542559a987
commit c0167d7e58
30 changed files with 186 additions and 33 deletions

Binary file not shown.

Binary file not shown.

19
bin/.gitignore vendored
View File

@ -9,3 +9,22 @@
/sousmenuEvaluation/
/sousmenuRecherche/
/sousmenuRepresentation/
/verifhistoriquemini.png
/verifhistoriquestudent.png
/verifhistoriquestudent.svg
/verifhistoriquestudentmini.png
/versevaluate.png
/versevaluate.svg
/versevaluatemini.png
/versfichierAnalyse.png
/versfichierAnalyseModifmax.svg
/voir.svg
/voirmini.png
/what.svg
/whatmini.png
/zip.png
/zip.svg
/zipmini.png
/zipstudent.png
/zipstudent.svg
/zipstudentmini.png

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -559,9 +559,11 @@ public class meptl {
for(int v = 0 ; v <= indexBreak; v++) {
if(!nodstructure.getNodes().get(j).getContenu().isEmpty()) {
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
ContenusVidesAvantBreak=false;
if(nodstructure.getNodes().get(j).getContenu().size()>v) {
if(nodstructure.getNodes().get(j).getContenu().get(v)!=null) {
if(!nodstructure.getNodes().get(j).getContenu().get(v).isEmpty()) {
ContenusVidesAvantBreak=false;
}
}
}
}

View File

@ -89,9 +89,9 @@ public class actNewFichierAnalyse extends AbstractAction{
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:deletion");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-start");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-end");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:bookmark-start");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:bookmark-end");
commandes.sujet = meptl.LectureFichierEtudiantSousFormeDeNode(commandes.sujet,b,0);

View File

@ -52,14 +52,26 @@ public class formatDateWriter {
}
/**
* Retourne une String à partir d'une date composé de YYYY-MM-JJTHH:MM:SS.</br>
* Retourne une String au format dd/MM/yyy HH:mm:ss à partir d'une date.</br>
* @param date
* @return
*/
public static String DateEnClairFR(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("EEEE dd MMM yyy' à 'HH:mm:ss");
String d1 = simpledateformat.format(date);
return d1;
}
/**
* Retourne une String au format YYYY-MM-JJTHH:MM:SS à partir d'une date.</br>
* @param d
* @return
* @throws ParseException
*/
public static String DateLibreOffice(Date d) throws ParseException {
public static String DateLibreOffice(Date date) throws ParseException {
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String d1 = simpledateformat.format(d);
String d1 = simpledateformat.format(date);
return d1;
}

View File

@ -162,9 +162,13 @@ public class evaluerLesFichiersEtudiants implements Runnable{
//Supprime l'historique des modifications
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change");
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-start");
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:change-end");
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:deletion");
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:bookmark-start");
nodStudent.supprimeTousLesNodesEnfantWithThisName("text:bookmark-end");
} catch (IOException e1) {
e1.printStackTrace();

View File

@ -105,9 +105,9 @@ public class ChargeFichierXML extends JFileChooser {
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:deletion");
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change-start");
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change-end");
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change");
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:bookmark-start");
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:bookmark-end");
// Vérification de la conformité du fichier d'analyse
if(!fichierSujetValide(sujetLoad)) {

View File

@ -48,12 +48,14 @@ public class chargeEvaluations extends JFrame {
*/
private static final long serialVersionUID = 1L;
private static chargeEvaluations instance;
private JPanel contentPane;
private JPanel contentPane = new JPanel();
JPanel panelCentre = new JPanel();
ArrayList<JLabel> LeslabelsTitre = new ArrayList<JLabel>();
ArrayList<JLabel> LeslabelsMeta = new ArrayList<JLabel>();
ArrayList<JLabel> LeslabelsDate = new ArrayList<JLabel>();
ArrayList<JLabel> LeslabelsFileNameAnalysis = new ArrayList<JLabel>();
ArrayList<JRadioButton> LesRadioButtons = new ArrayList<JRadioButton>();
JLabel lblInformationBaseEvluation = new JLabel("");
public static boolean isDispose = true;
int indexSelect=0;
@ -76,7 +78,7 @@ public class chargeEvaluations extends JFrame {
public chargeEvaluations() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 1200, 600);
setBounds(100, 100, 1300, 600);
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);
@ -89,21 +91,22 @@ public class chargeEvaluations extends JFrame {
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setLayout(new BorderLayout(2, 2));
JPanel panelGauche = new JPanel();
contentPane.add(panelGauche, BorderLayout.WEST);
panelGauche.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2));
JPanel panelHaut = new JPanel();
contentPane.add(panelHaut, BorderLayout.NORTH);
JLabel lblInformationBaseEvluation = new JLabel("");
lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 14));
panelHaut.add(lblInformationBaseEvluation);
JPanel panelBas = new JPanel();
contentPane.add(panelBas, BorderLayout.SOUTH);
panelBas.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));
panelBas.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10));
JButton btnSupprimeEvaluation = new JButton("Supprimer une évaluation");
btnSupprimeEvaluation.addActionListener(new ActionListener() {
@ -138,40 +141,45 @@ public class chargeEvaluations extends JFrame {
JScrollPane scrollPaneCentre = new JScrollPane();
contentPane.add(scrollPaneCentre, BorderLayout.CENTER);
JPanel panelCentre = new JPanel();
scrollPaneCentre.setViewportView(panelCentre);
panelCentre.setLayout(new MigLayout("gap rel 4", "[100px:n,grow][50px:n,grow][150px:n,grow 150][150px:n,grow 150][150px:n,grow 150]", "[20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0]"));
JLabel lblNewLabel = new JLabel("Nom de l'évaluation");
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel.setForeground(new Color(0, 0, 255));
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel, "cell 0 0");
JLabel lblNewLabel_1 = new JLabel("Date d'enregistrement");
lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel_1.setForeground(new Color(0, 0, 255));
lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_1, "cell 1 0");
JLabel lblNewLabel_2 = new JLabel("Nom du fichier d'analyse");
lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel_2.setForeground(new Color(0, 0, 255));
lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_2, "cell 2 0");
JLabel lblNewLabel_3 = new JLabel("Titre de l'exercice");
lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel_3.setForeground(new Color(0, 0, 255));
lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_3, "cell 3 0");
JLabel lblNewLabel_4 = new JLabel("Propriété personnalisé Sujet");
lblNewLabel_4.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel_4.setForeground(new Color(0, 0, 255));
lblNewLabel_4.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_4, "cell 4 0");
String dateDernierEnregistrement = commandes.evaluationsBase.getAttributs().get("date");
// String dateDernierEnregistrement = commandes.evaluationsBase.getAttributs().get("date");
String nombreEvluation = String.valueOf(commandes.evaluationsBase.getNodes().size());
lblInformationBaseEvluation.setText("<html>Date dernier enregistrement : " + dateDernierEnregistrement + " -- Nombre d'évaluation : " + nombreEvluation);
lblInformationBaseEvluation.setText("<html>Date dernier enregistrement : " +calcul.formatDateWriter.DateEnClairFR( calcul.formatDateWriter.DateLibreOffice(commandes.evaluationsBase.getAttributs().get("date"))) + " -- Nombre d'évaluation : " + nombreEvluation);
for(int i = 0 ; i<commandes.evaluationsBase.getNodes().size(); i++ ) {
LesRadioButtons.add(new JRadioButton(commandes.evaluationsBase.getNodes().get(i).getAttributs().get("name")));
LeslabelsDate.add(new JLabel(commandes.evaluationsBase.getNodes().get(i).getAttributs().get("date")));
LeslabelsDate.add(new JLabel( calcul.formatDateWriter.DateEnClairFR( calcul.formatDateWriter.DateLibreOffice(commandes.evaluationsBase.getNodes().get(i).getAttributs().get("date") ) )));
node fichier = commandes.evaluationsBase.getNodes().get(i).retourneFirstEnfantsByName("fichier");
@ -242,9 +250,7 @@ public class chargeEvaluations extends JFrame {
} catch (IOException e1) {
e1.printStackTrace();
}
isDispose=true;
dispose();
getInstance();
actualise();
}
}
}
@ -252,12 +258,32 @@ public class chargeEvaluations extends JFrame {
});
/**
* Bouton Sauvegarde de l'évaluation.</br>
*/
btnSaveEvaluation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(commandes.fichierAnalyseValide) {
int compteur = 0;
String name ="Nom de l'évaluation";
for(int i = 0; i < LesRadioButtons.size();i++) {
if(LesRadioButtons.get(i).isSelected()) compteur++;
}
if(compteur>1) {
for(int i = 0; i < LesRadioButtons.size();i++) {
LesRadioButtons.get(i).setSelected(false);
}
}else {
for(int i = 0; i < LesRadioButtons.size();i++) {
if(LesRadioButtons.get(i).isSelected()) {
name = LesRadioButtons.get(i).getText();
}
}
}
String name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?","Nom de l'évaluation");
name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name);
if(!name.isBlank()) {
if(!isEvaluationExist(name)) {
@ -272,9 +298,7 @@ public class chargeEvaluations extends JFrame {
try {
commandes.evaluationsBase.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui));
ecritureBaseEvaluation(commandes.evaluationsBase);
isDispose=true;
dispose();
getInstance();
actualise();
} catch (ParseException | IOException e1) {
e1.printStackTrace();
}
@ -286,6 +310,7 @@ public class chargeEvaluations extends JFrame {
ListenerAction();
}
//Quitte la fenêtre.</br>
private void ListenerAction() {
addWindowListener(new java.awt.event.WindowAdapter() {
@Override
@ -482,7 +507,12 @@ public class chargeEvaluations extends JFrame {
evaluation.getAttributs().put("newLogo", String.valueOf(commandes.newLogo) );
evaluation.getAttributs().put("noLogo", String.valueOf(commandes.noLogo) );
//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 {
@ -505,6 +535,9 @@ public class chargeEvaluations extends JFrame {
}
//Supprime le node fichier s'il existe.
nodremove = evaluation.retourneFirstEnfantsByName("fileCSV");
if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove);
evaluation.getNodes().add(commandes.nodeCSV);
@ -528,4 +561,77 @@ public class chargeEvaluations extends JFrame {
}
private void actualise() {
LesRadioButtons.clear();
LeslabelsDate.clear();
LeslabelsTitre.clear();
LeslabelsFileNameAnalysis.clear();
LeslabelsMeta.clear();
panelCentre.setLayout(new MigLayout("gap rel 4", "[100px:n,grow][50px:n,grow][150px:n,grow 150][150px:n,grow 150][150px:n,grow 150]", "[20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0]"));
JLabel lblNewLabel = new JLabel("Nom de l'évaluation");
lblNewLabel.setForeground(new Color(0, 0, 255));
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel, "cell 0 0");
JLabel lblNewLabel_1 = new JLabel("Date d'enregistrement");
lblNewLabel_1.setForeground(new Color(0, 0, 255));
lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_1, "cell 1 0");
JLabel lblNewLabel_2 = new JLabel("Nom du fichier d'analyse");
lblNewLabel_2.setForeground(new Color(0, 0, 255));
lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_2, "cell 2 0");
JLabel lblNewLabel_3 = new JLabel("Titre de l'exercice");
lblNewLabel_3.setForeground(new Color(0, 0, 255));
lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_3, "cell 3 0");
JLabel lblNewLabel_4 = new JLabel("Propriété personnalisé Sujet");
lblNewLabel_4.setForeground(new Color(0, 0, 255));
lblNewLabel_4.setFont(new Font("Tahoma", Font.BOLD, 14));
panelCentre.add(lblNewLabel_4, "cell 4 0");
String dateDernierEnregistrement = commandes.evaluationsBase.getAttributs().get("date");
String nombreEvluation = String.valueOf(commandes.evaluationsBase.getNodes().size());
lblInformationBaseEvluation.setText("<html>Date dernier enregistrement : " + dateDernierEnregistrement + " -- Nombre d'évaluation : " + nombreEvluation);
for(int i = 0 ; i<commandes.evaluationsBase.getNodes().size(); i++ ) {
LesRadioButtons.add(new JRadioButton(commandes.evaluationsBase.getNodes().get(i).getAttributs().get("name")));
LeslabelsDate.add(new JLabel(commandes.evaluationsBase.getNodes().get(i).getAttributs().get("date")));
node fichier = commandes.evaluationsBase.getNodes().get(i).retourneFirstEnfantsByName("fichier");
String Titre = fichier.getAttributs().get("titre");
String MetatSujet = fichier.getAttributs().get("metaSujet");
String nameFileAnalysis = fichier.getAttributs().get("filenameAnalyse");
LeslabelsTitre.add(new JLabel(Titre));
LeslabelsMeta.add(new JLabel(MetatSujet));
LeslabelsFileNameAnalysis.add(new JLabel(nameFileAnalysis));
}
int j = 0;
for(int i = 0 ; i<LesRadioButtons.size(); i++ ) {
j=i+1;
panelCentre.add(LesRadioButtons.get(i), "cell 0 "+j);
panelCentre.add(LeslabelsDate.get(i), "cell 1 "+j);
panelCentre.add(LeslabelsFileNameAnalysis.get(i), "cell 2 "+j);
panelCentre.add(LeslabelsTitre.get(i), "cell 3 "+j);
panelCentre.add(LeslabelsMeta.get(i), "cell 4 "+j);
LesRadioButtons.get(i).addMouseListener(new MyMouseListener());
}
}
}

View File

@ -661,6 +661,14 @@ public class evaluate extends JFrame {
chckbxVerif.setEnabled(true);
chckbxNoDetail.setEnabled(true);
if(commandes.fourniCSV) {
lblChargementFichierCSV.setBackground(new Color(40,180,40));
lblChargementFichierCSV.setOpaque(true);
}else {
lblChargementFichierCSV.setOpaque(false);
lblFichierCSV.setText("<HTML><B><U>Fichier CSV</U></B></HTML>");
}
txtpnmessages.afficheChargementFichierAnalyse();
}
@ -1203,8 +1211,10 @@ public class evaluate extends JFrame {
}
@Override public void actionPerformed( ActionEvent e ) {
txtpnmessages.setContentType("text/plain");
if(commandes.fourniCSV) {
txtpnmessages.setText(Run.ecritureNode(commandes.nodeCSV, 0).toString());
String texte = Run.ecritureNode(commandes.nodeCSV, 0).toString();
txtpnmessages.setText(texte);
System.out.println( "Affiche la liste des étudiants déjà en mémoire." );
}else {
txtpnmessages.setText("*** Veuillez sélectionner un fichier CSV contenant la liste des étudiants. ***");