analyseWriter/src/fenetres/allContent.java
pablo rodriguez 7b523425d7 MAJ V4.4.2
Ajoute le menu au node structurepage qui permet d'évaluer les contenus
textuels de tous les nodes textuels dans les pages du document.

Ajoute le menu au node structure qui permet d'évaluer les noms des
styles parents de tous les nodes contenu dans les pages.
2023-01-24 21:11:01 +01:00

217 lines
8.4 KiB
Java

package fenetres;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import MEPTL.commandes;
import cXML.node;
import list.listeDesNodesAllContent;
public class allContent extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField textFieldPoint;
private JLabel lblExplication;
node nod;
afficheText J;
JComboBox<String> comboBoxValeur;
String valeur="strict";
int point=0;
/**
* Evaluation de tous les contenu d'un node.
* @param nod : Le node à évaluer.
* @param J : Affichage du texte
* @param Childs : Si TRUE alors évaluation de tous les contenus des nodes enfants.
*/
public allContent(node nod, afficheText J,boolean Childs) {
this.nod=nod;
this.J=J;
if(nod.getAttributs().get("allContent")!=null) {
String value = nod.getAttributs().get("allContent");
if(value.contains("strictSansEspace")) { value=value.replace("strictSansEspace", "");valeur="strictSansEspace";}
if(value.contains("strict")) {value=value.replace("strict", "");valeur="strict";}
if(value.contains("environ")) {value=value.replace("environ", "");valeur="environ";}
point = Integer.valueOf(value);
}
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 556, 326);
setTitle("allContent");
ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") );
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);
setTitle("allContent " + commandes.Titre + " " + commandes.version + " " + commandes.branch);
setIconImage(img.getImage());
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnNewButton = new JButton("Valider");
btnNewButton.setIcon(new ImageIcon(allContent.class.getResource("/resources/truemini.png")));
btnNewButton.setFont(new Font("Tahoma", Font.BOLD, 12));
btnNewButton.setBounds(394, 237, 121, 39);
contentPane.add(btnNewButton);
JLabel lblValeurDeLattribut = new JLabel("Type d'évaluation");
lblValeurDeLattribut.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblValeurDeLattribut.setBounds(10, 105, 130, 23);
contentPane.add(lblValeurDeLattribut);
JLabel lblDescription = new JLabel("<html>Cet attribut permet d'évaluer le contenu du node et de celui des nodes enfants de ce node.<br>"
+ "Par conséquent, tous les nodes enfants seront évalués.</html>");
lblDescription.setLabelFor(this);
lblDescription.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblDescription.setBounds(10, 11, 520, 50);
contentPane.add(lblDescription);
comboBoxValeur = new JComboBox<String>();
comboBoxValeur.setModel(new DefaultComboBoxModel<String>(new String[] {"strict", "strictSansEspace", "environ"}));
comboBoxValeur.setSelectedItem(valeur);
comboBoxValeur.setBounds(150, 106, 130, 22);
contentPane.add(comboBoxValeur);
JLabel lblPoint = new JLabel("Combien de point?");
lblPoint.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblPoint.setBounds(10, 72, 130, 22);
contentPane.add(lblPoint);
textFieldPoint = new JTextField();
textFieldPoint.setHorizontalAlignment(SwingConstants.CENTER);
textFieldPoint.setText("0");
textFieldPoint.setBounds(150, 72, 43, 20);
textFieldPoint.setColumns(6);
textFieldPoint.setText(String.valueOf(point));
contentPane.add(textFieldPoint);
lblExplication = new JLabel("<html>Dans le fichier de l'étudiants.<br>Le contenu du node doit être rigoureusement identique, CASE comprise.</html>");
if(comboBoxValeur.getSelectedItem().equals("strict")) {
lblExplication.setText("<html>Dans le fichier de l'étudiants.<br>Le contenu du node doit être rigoureusement identique, CASE comprise.</html>");
}
if(comboBoxValeur.getSelectedItem().equals("strictSansEspace")) {
lblExplication.setText("<html>Dans le fichier de l'étudiants.<br>Le contenu du node doit être rigoureusement identique, CASE comprise, mais ignore les espaces en début et fin.</html>");
}
if(comboBoxValeur.getSelectedItem().equals("environ")) {
lblExplication.setText("<html>Dans le fichier de l'étudiants.<br>Le contenu du node peut être plus ou moins proche (voir le paramètre similude), la CASE est ignorée.</html>");
}
lblExplication.setBounds(10, 158, 520, 56);
contentPane.add(lblExplication);
JLabel lblNewLabel = new JLabel("Pour annuler la méthode, saisissez 0 point.");
lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblNewLabel.setIcon(new ImageIcon(allContent.class.getResource("/resources/falsemini.png")));
lblNewLabel.setBounds(240, 69, 275, 23);
contentPane.add(lblNewLabel);
comboBoxValeur.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(comboBoxValeur.getSelectedItem().equals("strict")) {
lblExplication.setText("<html>Dans le fichier de l'étudiants.<br>Le contenu du node doit être rigoureusement identique, CASE comprise.</html>");
}
if(comboBoxValeur.getSelectedItem().equals("strictSansEspace")) {
lblExplication.setText("<html>Dans le fichier de l'étudiants.<br>Le contenu du node doit être rigoureusement identique, CASE comprise, mais ignore les espaces en début et fin.</html>");
}
if(comboBoxValeur.getSelectedItem().equals("environ")) {
lblExplication.setText("<html>Dans le fichier de l'étudiants.<br>Le contenu du node peut être plus ou moins proche (voir le paramètre similude), la CASE est ignorée.</html>");
}
}
});
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
int point = Integer.valueOf(textFieldPoint.getText());
if(point<0) point =0;
if(!Childs) {
nod.getAttributs().put("allContent", comboBoxValeur.getSelectedItem().toString() + String.valueOf(point));
nod.evaluerAllChildTrue();
J.refreshAffichage(nod);
}else {
if(nod.getNomElt().equals("page")) {
placeAtrtibutAllContentDansLesNodesDeLaPage(nod,comboBoxValeur.getSelectedItem().toString(),point);
}
if(nod.getNomElt().equals("structurepage")) {
for(int i = 0 ; i < nod.getNodes().size(); i++) {
if(nod.getNodes().get(i).getNomElt().equals("page")) {
placeAtrtibutAllContentDansLesNodesDeLaPage(nod.getNodes().get(i),comboBoxValeur.getSelectedItem().toString(),point);
}
}
}
J.refreshAffichage(nod);
}
dispose();
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "Le nombre de point doit être un entier.");
}
TreePath path = fenetres.create.getTree().getSelectionPath();
DefaultTreeModel model = (DefaultTreeModel) fenetres.create.getTree().getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
model.reload(root);
fenetres.create.getTree().setSelectionPath(path);
fenetres.create.getTree().expandPath(path);
fenetres.create.getTextNodeSelect().refreshAffichage(nod);
}
});
setVisible(true);
}
private void placeAtrtibutAllContentDansLesNodesDeLaPage(node nodePage,String methode, Integer point) {
for(int i = 0 ; i < nodePage.getNodes().size(); i++) {
if( listeDesNodesAllContent.isAllContent(nodePage.getNodes().get(i))){
nodePage.getNodes().get(i).getAttributs().put("allContent", methode+String.valueOf(point));
nodePage.getNodes().get(i).evaluerAllChildTrue(); }
}
}
}