228 lines
9.9 KiB
Java
228 lines
9.9 KiB
Java
|
package app;
|
||
|
import java.awt.BorderLayout;
|
||
|
|
||
|
import javax.swing.ImageIcon;
|
||
|
import javax.swing.JFrame;
|
||
|
import javax.swing.JPanel;
|
||
|
import javax.swing.border.EmptyBorder;
|
||
|
|
||
|
import MEPTL.commandes;
|
||
|
import cXML.node;
|
||
|
|
||
|
import javax.swing.JTabbedPane;
|
||
|
import javax.swing.JLabel;
|
||
|
import javax.swing.JOptionPane;
|
||
|
import javax.swing.SwingConstants;
|
||
|
import java.awt.Font;
|
||
|
import javax.swing.JComboBox;
|
||
|
import javax.swing.DefaultComboBoxModel;
|
||
|
import javax.swing.JTextField;
|
||
|
import javax.swing.JButton;
|
||
|
import java.awt.event.ActionListener;
|
||
|
import java.awt.event.ActionEvent;
|
||
|
|
||
|
public class setting extends JFrame {
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
private static final long serialVersionUID = 1L;
|
||
|
private JPanel contentPane;
|
||
|
private JTextField textFieldNomEtudiant;
|
||
|
private JTextField textFieldPrenomEtudiant;
|
||
|
private JTextField textFieldEmail;
|
||
|
private JTextField textFieldIDEtudiant;
|
||
|
private JComboBox<String> comboBoxSeparateur;
|
||
|
private JComboBox<String> comboBoxEncodage;
|
||
|
private JButton btnValiderCSV;
|
||
|
/**
|
||
|
* Create the frame.
|
||
|
*/
|
||
|
public setting() {
|
||
|
setResizable(false);
|
||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||
|
setBounds(100, 100, 742, 642);
|
||
|
contentPane = new JPanel();
|
||
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
||
|
contentPane.setLayout(new BorderLayout(0, 0));
|
||
|
setContentPane(contentPane);
|
||
|
|
||
|
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
|
||
|
contentPane.add(tabbedPane, BorderLayout.CENTER);
|
||
|
|
||
|
ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") );
|
||
|
setIconImage(img.getImage());
|
||
|
setTitle(commandes.Titre + commandes.version + " - Les paramètres pour l'évaluation");
|
||
|
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||
|
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 img1 = new ImageIcon(getClass().getResource("/fichierCSV.png") );
|
||
|
ImageIcon img3 = new ImageIcon(getClass().getResource("/property.png") );
|
||
|
ImageIcon img4 = new ImageIcon(getClass().getResource("/content.png") );
|
||
|
ImageIcon img2 = new ImageIcon(getClass().getResource("/structurepage.png") );
|
||
|
|
||
|
JPanel panelCSV = new JPanel();
|
||
|
tabbedPane.addTab("Fichier CSV", img1, panelCSV, null);
|
||
|
panelCSV.setLayout(null);
|
||
|
|
||
|
node nodCSV = commandes.sujet.retourneFirstEnfantsByName("csv");
|
||
|
if(nodCSV==null) {
|
||
|
JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.<br>Le node CSV n'est pas dans le fichier.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
JLabel lblNewLabel = new JLabel("<html>Les paramètres du fichier CSV permettent, d'écrire et d'importer les notes des étudiants dans le CMS moodle.<br>\r\nCes paramètres seront enregistrés dans le fichier d'analyse.</html>");
|
||
|
lblNewLabel.setVerticalAlignment(SwingConstants.TOP);
|
||
|
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 14));
|
||
|
lblNewLabel.setHorizontalAlignment(SwingConstants.LEFT);
|
||
|
lblNewLabel.setBounds(10, 11, 691, 42);
|
||
|
panelCSV.add(lblNewLabel);
|
||
|
|
||
|
JLabel lblEncodage = new JLabel("Encodage");
|
||
|
lblEncodage.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
lblEncodage.setBounds(42, 74, 86, 20);
|
||
|
panelCSV.add(lblEncodage);
|
||
|
|
||
|
comboBoxEncodage = new JComboBox<String>();
|
||
|
comboBoxEncodage.setModel(new DefaultComboBoxModel<String>(new String[] {"UTF-8", "US-ASCII", "ISO-8859-1", "UTF-16BE", "UTF-16LE", "UTF-16"}));
|
||
|
comboBoxEncodage.setSelectedItem(nodCSV.getAttributs().get("encoding"));
|
||
|
comboBoxEncodage.setBounds(138, 74, 159, 22);
|
||
|
panelCSV.add(comboBoxEncodage);
|
||
|
|
||
|
JLabel lblSeparateur = new JLabel("Séparateur");
|
||
|
lblSeparateur.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
lblSeparateur.setBounds(370, 74, 86, 20);
|
||
|
panelCSV.add(lblSeparateur);
|
||
|
|
||
|
comboBoxSeparateur = new JComboBox<String>();
|
||
|
comboBoxSeparateur.setModel(new DefaultComboBoxModel<String>(new String[] {"point virgule", "virgule", "espace", "tabulation", ""}));
|
||
|
if(nodCSV.getAttributs().get("separator").equals(";")) comboBoxSeparateur.setSelectedItem("point virgule");
|
||
|
if(nodCSV.getAttributs().get("separator").equals(",")) comboBoxSeparateur.setSelectedItem("virgule");
|
||
|
if(nodCSV.getAttributs().get("separator").equals(" ")) comboBoxSeparateur.setSelectedItem("espace");
|
||
|
if(nodCSV.getAttributs().get("separator").equals("\t")) comboBoxSeparateur.setSelectedItem("tabulation");
|
||
|
comboBoxSeparateur.setBounds(457, 74, 159, 22);
|
||
|
panelCSV.add(comboBoxSeparateur);
|
||
|
|
||
|
JLabel lblveuillezSaisirLes = new JLabel("<html><b>Veuillez saisir des quatre noms des champs.</b><br>\r\nSi vous exportez le fichier depuis moodle, faite correspondre les noms des 4 champs ci-dessous avec celui de votre fichier.</html>");
|
||
|
lblveuillezSaisirLes.setVerticalAlignment(SwingConstants.TOP);
|
||
|
lblveuillezSaisirLes.setHorizontalAlignment(SwingConstants.LEFT);
|
||
|
lblveuillezSaisirLes.setFont(new Font("Tahoma", Font.PLAIN, 14));
|
||
|
lblveuillezSaisirLes.setBounds(10, 120, 691, 60);
|
||
|
panelCSV.add(lblveuillezSaisirLes);
|
||
|
|
||
|
JLabel lblNewLabel_3 = new JLabel("Champ, nom de l'étudiant");
|
||
|
lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
lblNewLabel_3.setBounds(42, 210, 186, 20);
|
||
|
panelCSV.add(lblNewLabel_3);
|
||
|
|
||
|
node nodImportMoodle = nodCSV.retourneFirstEnfantsByName("import_moodle");
|
||
|
if(nodImportMoodle==null) {
|
||
|
JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.<br>le node import_moodle n'est pas dans le fichier d'analyse.");
|
||
|
}
|
||
|
|
||
|
textFieldNomEtudiant = new JTextField();
|
||
|
textFieldNomEtudiant.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
textFieldNomEtudiant.setColumns(10);
|
||
|
textFieldNomEtudiant.setBounds(233, 210, 200, 22);
|
||
|
textFieldNomEtudiant.setText(nodImportMoodle.getAttributs().get("name"));
|
||
|
panelCSV.add(textFieldNomEtudiant);
|
||
|
|
||
|
|
||
|
JLabel lblNewLabel_3_1 = new JLabel("Champ, prénom de l'étudiant");
|
||
|
lblNewLabel_3_1.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
lblNewLabel_3_1.setBounds(42, 260, 186, 20);
|
||
|
panelCSV.add(lblNewLabel_3_1);
|
||
|
|
||
|
textFieldPrenomEtudiant = new JTextField();
|
||
|
textFieldPrenomEtudiant.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
textFieldPrenomEtudiant.setColumns(10);
|
||
|
textFieldPrenomEtudiant.setBounds(233, 260, 200, 22);
|
||
|
textFieldPrenomEtudiant.setText(nodImportMoodle.getAttributs().get("firstname"));
|
||
|
panelCSV.add(textFieldPrenomEtudiant);
|
||
|
|
||
|
JLabel lblNewLabel_3_1_1 = new JLabel("Champ, email de l'étudiant");
|
||
|
lblNewLabel_3_1_1.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
lblNewLabel_3_1_1.setBounds(42, 310, 186, 20);
|
||
|
panelCSV.add(lblNewLabel_3_1_1);
|
||
|
|
||
|
textFieldEmail = new JTextField();
|
||
|
textFieldEmail.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
textFieldEmail.setColumns(10);
|
||
|
textFieldEmail.setBounds(233, 310, 200, 22);
|
||
|
textFieldEmail.setText(nodImportMoodle.getAttributs().get("email"));
|
||
|
panelCSV.add(textFieldEmail);
|
||
|
|
||
|
JLabel lblNewLabel_3_1_1_1 = new JLabel("Champ,numéro de l'étudiant");
|
||
|
lblNewLabel_3_1_1_1.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
lblNewLabel_3_1_1_1.setBounds(42, 360, 186, 20);
|
||
|
panelCSV.add(lblNewLabel_3_1_1_1);
|
||
|
|
||
|
textFieldIDEtudiant = new JTextField();
|
||
|
textFieldIDEtudiant.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
textFieldIDEtudiant.setColumns(10);
|
||
|
textFieldIDEtudiant.setBounds(233, 360, 200, 22);
|
||
|
textFieldIDEtudiant.setText(nodImportMoodle.getAttributs().get("id"));
|
||
|
panelCSV.add(textFieldIDEtudiant);
|
||
|
|
||
|
btnValiderCSV = new JButton("Valider");
|
||
|
btnValiderCSV.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||
|
btnValiderCSV.setBounds(535, 430, 145, 37);
|
||
|
panelCSV.add(btnValiderCSV);
|
||
|
|
||
|
JPanel panelZip = new JPanel();
|
||
|
panelZip.setLayout(null);
|
||
|
tabbedPane.addTab("ZIP", img1, panelZip, null);
|
||
|
|
||
|
JPanel panelPlagiarism = new JPanel();
|
||
|
panelPlagiarism.setLayout(null);
|
||
|
tabbedPane.addTab("Triche", img2, panelPlagiarism, null);
|
||
|
|
||
|
JPanel panelTextSimilarity = new JPanel();
|
||
|
panelTextSimilarity.setLayout(null);
|
||
|
tabbedPane.addTab("Texte similitude", img4, panelTextSimilarity, null);
|
||
|
|
||
|
JPanel panelColor = new JPanel();
|
||
|
panelColor.setLayout(null);
|
||
|
tabbedPane.addTab("Couleur", img4, panelColor, null);
|
||
|
|
||
|
JPanel panelTraduction = new JPanel();
|
||
|
panelTraduction.setLayout(null);
|
||
|
tabbedPane.addTab("Traduction", img4, panelTraduction, null);
|
||
|
|
||
|
|
||
|
ListenerAction();
|
||
|
this.setVisible(true);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
private void ListenerAction() {
|
||
|
|
||
|
btnValiderCSV.addActionListener(new ActionListener() {
|
||
|
public void actionPerformed(ActionEvent e) {
|
||
|
node nodCSV = commandes.sujet.retourneFirstEnfantsByName("csv");
|
||
|
nodCSV.getAttributs().put("encoding", comboBoxEncodage.getSelectedItem().toString());
|
||
|
if(comboBoxSeparateur.getSelectedItem().equals("point virgule")) nodCSV.getAttributs().put("separator", ";");
|
||
|
if(comboBoxSeparateur.getSelectedItem().equals("virgule")) nodCSV.getAttributs().put("separator", ",");
|
||
|
if(comboBoxSeparateur.getSelectedItem().equals("espace")) nodCSV.getAttributs().put("separator", " ");
|
||
|
if(comboBoxSeparateur.getSelectedItem().equals("tabulation")) nodCSV.getAttributs().put("separator", "\t");
|
||
|
|
||
|
node nodImport= commandes.sujet.retourneFirstEnfantsByName("import_moodle");
|
||
|
|
||
|
nodImport.getAttributs().put("name", textFieldNomEtudiant.getText());
|
||
|
nodImport.getAttributs().put("firstname", textFieldPrenomEtudiant.getText());
|
||
|
nodImport.getAttributs().put("email", textFieldEmail.getText());
|
||
|
nodImport.getAttributs().put("id", textFieldIDEtudiant.getText());
|
||
|
|
||
|
JOptionPane.showMessageDialog(null, "<html>Les informations ont bien été renseignées.<br>"
|
||
|
+ "N'oubliez pas d'enregistrer votre fichier d'analyse.</html>");
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|