package fenetres; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; import java.util.Enumeration; import javax.swing.FocusManager; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import MEPTL.commandes; import cXML.node; import list.listeAttributWriterPasEvaluableAvecCodeEvaluateur; import list.listeAttributWriterValeurPasModifiable; import list.listeAttributsAnalyseWriter; import list.listeNodeFormatageDirectDeWriter; import net.miginfocom.swing.MigLayout; public class attributs extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; JScrollPane scrollPaneCentre = new JScrollPane(); private JPanel panelCentre = new JPanel(); JButton btnValide = new JButton("Valider les modifications"); node nod; afficheText J; int indexSelect=0; ArrayList Leslabels = new ArrayList(); ArrayList Lesvaleurs = new ArrayList(); ArrayList Lesevaluer = new ArrayList(); ArrayList Lespoints = new ArrayList(); ArrayList KeysAttribut = new ArrayList(); ArrayList KeysRemove = new ArrayList(); ArrayList LesBoutonsSuppr = new ArrayList(); /** * Create the frame. */ public attributs(node nod, afficheText J) { this.nod=nod; this.J=J; setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100, 100, 806, 669); 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); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); setIconImage(img.getImage()); setTitle(commandes.Titre + " - Les attributs de Writer"); JPanel panelGauche = new JPanel(); contentPane.add(panelGauche, BorderLayout.WEST); JPanel panelHaut = new JPanel(); contentPane.add(panelHaut, BorderLayout.NORTH); JLabel lblNomNode = new JLabel(nod.getNomElt()); lblNomNode.setFont(new Font("Tahoma", Font.BOLD, 14)); panelHaut.add(lblNomNode); JPanel panelBas = new JPanel(); contentPane.add(panelBas, BorderLayout.SOUTH); panelBas.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5)); JButton btnNewButton = new JButton("Verifier les codes d'évaluation"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); JButton btnAddAttribut = new JButton("Ajoute un attribut au node"); btnAddAttribut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String nameAttribut=""; nameAttribut = JOptionPane.showInputDialog(null,"Quel est le nom de l'attribut ?",""); if(nameAttribut!=null)if(!nameAttribut.isBlank()) { nameAttribut = nameAttribut.replaceAll("\\s+", ""); String key = nameAttribut; JTextField txtFielPoints = new JTextField("0"); JTextField txtFielValue = new JTextField(""); JLabel lbKeys = new JLabel(nameAttribut); JCheckBox checkEval = new JCheckBox(); txtFielValue.addMouseListener(new MyMouseListener()); txtFielPoints.setColumns(3); checkEval.setSelected(false); Leslabels.add(lbKeys); Lesvaleurs.add(txtFielValue); Lespoints.add(txtFielPoints); Lesevaluer.add(checkEval); KeysAttribut.add(nameAttribut); JButton Btn = new JButton(""); Btn.setIcon(new ImageIcon(create.class.getResource("/resources/supprimeAttributmini.png"))); LesBoutonsSuppr.add(Btn); Btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Leslabels.remove(lbKeys); Lespoints.remove(txtFielPoints); Lesvaleurs.remove(txtFielValue); Lesevaluer.remove(checkEval); LesBoutonsSuppr.remove(Btn); KeysAttribut.remove(key); KeysRemove.add(key); panelCentre.removeAll(); refresh(); } }); panelCentre.removeAll(); refresh(); } } }); panelBas.add(btnAddAttribut); panelBas.add(btnNewButton); btnValide = new JButton("Valider les modifications"); btnValide.setFont(new Font("Tahoma", Font.BOLD, 12)); btnValide.setForeground(Color.RED); panelBas.add(btnValide); JPanel panelDroite = new JPanel(); contentPane.add(panelDroite, BorderLayout.EAST); JButton btnIntervalle = new JButton("Intervalle"); btnIntervalle.setToolTipText("Intervalle entre deux valeurs numériques."); btnIntervalle.setIcon(new ImageIcon(attributs.class.getResource("/resources/intervallemini.png"))); btnIntervalle.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); String newValue = Lesvaleurs.get(indexSelect).getText().substring(0, j) + "→" + Lesvaleurs.get(indexSelect).getText().substring(j, Lesvaleurs.get(indexSelect).getText().length()); Lesvaleurs.get(indexSelect).setText(newValue); } }); panelDroite.setLayout(new GridLayout(12, 1, 0, 0)); panelDroite.add(btnIntervalle); JButton btnTextClean = new JButton("Text clean"); btnTextClean.setToolTipText("Texte nettoyé de tous les caractères spéciaux, chiffres et ignore la casse (équivalent à allContent=\"environ\").
Cette fonction ne peut pas être combinée avec les autres fonctions ci-dessous.
Ce n'est pas un opérateur OU contrairement à l'opérateur ↕.
La tolérance de texte (90% de similitude avec le texte de la consigne) paramètre dans les setting. (exemple : ¢‽2) "); btnTextClean.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); Lesvaleurs.get(indexSelect).setText(Lesvaleurs.get(indexSelect).getText() + "¢"); } }); btnTextClean.setIcon(new ImageIcon(attributs.class.getResource("/resources/textcleanmini.png"))); panelDroite.add(btnTextClean); JButton btnOuStrict = new JButton("OU Strict"); btnOuStrict.setToolTipText("Fonction OU texte exact (sans traitement).
Cette fonction ne peut pas être combinée avec les autres fonctions OU.
Cette fonction peut être combinée avec la fonction ET."); btnOuStrict.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); String newValue = Lesvaleurs.get(indexSelect).getText().substring(0, j) + "¦" + Lesvaleurs.get(indexSelect).getText().substring(j, Lesvaleurs.get(indexSelect).getText().length()); Lesvaleurs.get(indexSelect).setText(newValue); } }); btnOuStrict.setIcon(new ImageIcon(attributs.class.getResource("/resources/oustrictmini.png"))); panelDroite.add(btnOuStrict); JButton btnOuStrictSEps = new JButton("OU Strict s.esp"); btnOuStrictSEps.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); String newValue = Lesvaleurs.get(indexSelect).getText().substring(0, j) + "≡" + Lesvaleurs.get(indexSelect).getText().substring(j, Lesvaleurs.get(indexSelect).getText().length()); Lesvaleurs.get(indexSelect).setText(newValue); } }); btnOuStrictSEps.setIcon(new ImageIcon(attributs.class.getResource("/resources/oustrictsepsmini.png"))); btnOuStrictSEps.setToolTipText("Fonction OU texte exact sans les espaces.
Cette fonction ne peut pas être combinée avec les autres fonctions OU."); panelDroite.add(btnOuStrictSEps); JButton btnOUEnviron = new JButton("OU Environ"); btnOUEnviron.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); String newValue = Lesvaleurs.get(indexSelect).getText().substring(0, j) + "↑" + Lesvaleurs.get(indexSelect).getText().substring(j, Lesvaleurs.get(indexSelect).getText().length()); Lesvaleurs.get(indexSelect).setText(newValue); } }); btnOUEnviron.setIcon(new ImageIcon(attributs.class.getResource("/resources/ouenvironmini.png"))); btnOUEnviron.setToolTipText("Fonction OU, texte nettoyé des caractères spéciaux, chiffres, ignore la CASE MAIS SANS SIMILITUDE de texte.
Cette fonction ne peut pas être combinée avec les autres fonctions OU."); panelDroite.add(btnOUEnviron); JButton btnOUEnvironSimilitude = new JButton("OU Env. Sim."); btnOUEnvironSimilitude.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); String newValue = Lesvaleurs.get(indexSelect).getText().substring(0, j) + "↕" + Lesvaleurs.get(indexSelect).getText().substring(j, Lesvaleurs.get(indexSelect).getText().length()); Lesvaleurs.get(indexSelect).setText(newValue); } }); btnOUEnvironSimilitude.setToolTipText("Fonction OU texte nettoyé des caractères spéciaux, chiffres et similitude de texte.
Cette fonction ne peut pas être combinée avec les autres fonctions OU.
La tolérance de texte (79% de similitude avec le texte de la consigne) paramètre dans les setting."); btnOUEnvironSimilitude.setIcon(new ImageIcon(attributs.class.getResource("/resources/ouenvironsimilitudemini.png"))); panelDroite.add(btnOUEnvironSimilitude); JButton btnET = new JButton("ET contient text"); btnET.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); String newValue = Lesvaleurs.get(indexSelect).getText().substring(0, j) + "×" + Lesvaleurs.get(indexSelect).getText().substring(j, Lesvaleurs.get(indexSelect).getText().length()); Lesvaleurs.get(indexSelect).setText(newValue); } }); btnET.setToolTipText("Fonction ET contient le texte.
Ensemble des textes qui doivent être contenu dans la valeur de l'attribut ou le contenu du node."); btnET.setIcon(new ImageIcon(attributs.class.getResource("/resources/etmini.png"))); panelDroite.add(btnET); JButton btnTouText = new JButton("Tout text"); btnTouText.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int j = Lesvaleurs.get(indexSelect).getCaretPosition(); System.out.println("position du cursor "+ j); Lesvaleurs.get(indexSelect).setText(Lesvaleurs.get(indexSelect).getText() + "†"); } }); btnTouText.setIcon(new ImageIcon(attributs.class.getResource("/resources/toutextmini.png"))); btnTouText.setToolTipText("N'importe quel texte mais pas null, ou pas la valeur none ou pas vide.
Toutes les autres fonctions sont ignorées."); panelDroite.add(btnTouText); contentPane.add(scrollPaneCentre, BorderLayout.CENTER); scrollPaneCentre.setViewportView(panelCentre); panelCentre.setLayout(new MigLayout("gap rel 0", "[40px:n,fill][50px:n][100px:n,grow][40px:n][32px:n]", "[::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px]")); JLabel lblNewLabel0 = new JLabel("Supprime"); lblNewLabel0.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel0, "cell 0 0"); JLabel lblNewLabel = new JLabel("Nom attribut"); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel, "cell 1 0"); JLabel lblNewLabel_1 = new JLabel("Valeurs"); lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel_1, "flowx,cell 2 0"); JLabel lblNewLabel_2 = new JLabel("Evaluer"); lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel_2, "cell 3 0"); JLabel lblNewLabel_3 = new JLabel("Point(s)"); lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel_3, "cell 4 0,alignx left"); Enumeration key = nod.getAttributs().keys(); while(key.hasMoreElements()) { String k = key.nextElement(); if(!listeAttributsAnalyseWriter.isAttributAnalyseWriter(k)) { String value = nod.getAttributs().get(k); String point = "0"; JCheckBox checkEval = new JCheckBox(); boolean evaluer = false; if(value.contains("‽")||value.contains("‼")) { evaluer=true; if(value.contains("‽")) { point = value.substring(value.lastIndexOf("‽")+1,value.length()); value = value.substring(0,value.lastIndexOf("‽")); } if(value.contains("‼")) { point = value.substring(value.lastIndexOf("‼")+1,value.length()); value = value.substring(0,value.lastIndexOf("‼")); } } JTextField txtFielPoints = new JTextField(point); JTextField txtFielValue = new JTextField(value); JLabel lbKeys = new JLabel(k); txtFielValue.addMouseListener(new MyMouseListener()); txtFielPoints.setColumns(3); checkEval.setSelected(evaluer); Leslabels.add(lbKeys); Lesvaleurs.add(txtFielValue); Lespoints.add(txtFielPoints); Lesevaluer.add(checkEval); KeysAttribut.add(k); JButton Btn = new JButton(""); Btn.setIcon(new ImageIcon(create.class.getResource("/resources/supprimeAttributmini.png"))); LesBoutonsSuppr.add(Btn); Btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Leslabels.remove(lbKeys); Lespoints.remove(txtFielPoints); Lesvaleurs.remove(txtFielValue); Lesevaluer.remove(checkEval); LesBoutonsSuppr.remove(Btn); KeysAttribut.remove(k); KeysRemove.add(k); panelCentre.removeAll(); refresh(); } }); } } //Placement dans le panel des informations for(int i = 0 ; i|\\\"", ""); if(value.contains("‽")) value = value.substring(0,value.lastIndexOf("‽")); if(value.contains("‼")) value = value.substring(0,value.lastIndexOf("‼")); String point = "0"; if(Lesevaluer.get(i).isSelected()) { value = value + codeEvaluateur; int pointNumeric = 0; try { pointNumeric = Integer.valueOf(Lespoints.get(i).getText()); point = String.valueOf(pointNumeric); } catch (Exception e2) { JOptionPane.showMessageDialog(null, "La valeur pour l'attribut " + Leslabels.get(i) + " n'est pas un entier"); } } if(Lesevaluer.get(i).isSelected()) value = value + point; nod.getAttributs().put(Leslabels.get(i).getText(), value); } for(int j = 0 ; j < KeysRemove.size();j++) { nod.supprimeAttribut(KeysRemove.get(j)); } J.refreshAffichage(nod); dispose(); } }); addMouseListener((MouseListener) new MouseAdapter() { public void mousePressed(MouseEvent me) { System.out.println(me); Component focusOwner = FocusManager.getCurrentManager().getFocusOwner(); System.out.println(focusOwner.getName()); } }); this.setVisible(true); } private void refresh() { JLabel lblNewLabel0 = new JLabel("Supprime"); lblNewLabel0.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel0, "cell 0 0"); JLabel lblNewLabel = new JLabel("Nom attribut"); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel, "cell 1 0"); JLabel lblNewLabel_1 = new JLabel("Valeurs"); lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel_1, "flowx,cell 2 0"); JLabel lblNewLabel_2 = new JLabel("Evaluer"); lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel_2, "cell 3 0"); JLabel lblNewLabel_3 = new JLabel("Point(s)"); lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 11)); panelCentre.add(lblNewLabel_3, "cell 4 0,alignx left"); //Placement dans le panel des informations for(int i = 0 ; i