package fenetres; import java.awt.Color; import java.awt.Font; import java.util.ArrayList; import javax.swing.ImageIcon; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JOptionPane; import MEPTL.commandes; import cXML.node; public class CustomInputDialogActivateStyle { public static void showCustominputDialog(node nod) { JLabel lblTitre = new JLabel("

AnalyseStyle

"); lblTitre.setForeground(new Color(50,50,200)); JLabel lblExpliaction = new JLabel("

Si la méthode est activée alors le style de ce texte est analysé
" + "dans la structure du document. Cette méthode convient pour
" + "les formatages directs (surcharges) des paragraphes ou des
" + "caractères.

"); lblExpliaction.setFont(new Font("Tahoma", Font.BOLD, 12)); lblExpliaction.setForeground(Color.blue); ImageIcon icon = new ImageIcon(create.class.getResource("/resources/evaluerstyle.png")); JCheckBox chckbxAllBrother = new JCheckBox("Placer la méthode sur tous les nodes frères."); Object[] message = { lblTitre, lblExpliaction, chckbxAllBrother }; String[] options = {"Active", "Désactive"}; int optionSelected = JOptionPane.showOptionDialog( null, message, "Ajouter ou supprimer la méthode AnalyseStyle", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, icon, options, options[0]); if (optionSelected == 0) { // Bouton "Ajouter" sélectionné placeLaMethodeActive(nod); if(chckbxAllBrother.isSelected()) { ArrayList nods = nod.retourneTousLesFreres(); for(int i = 0 ; i < nods.size(); i ++) { placeLaMethodeActive(nods.get(i)); } } } else if (optionSelected == 1) { // Bouton "Supprimer" sélectionné supprimeLaMethode(nod); if(chckbxAllBrother.isSelected()) { if(chckbxAllBrother.isSelected()) { ArrayList nods = nod.retourneTousLesFreres(); for(int i = 0 ; i < nods.size(); i ++) { supprimeLaMethode(nods.get(i)); } } } }else { // Si la boîte de dialogue est annulée ou fermée } } private static void placeLaMethodeActive(node nod) { nod.getAttributs().put("analyseStyle", "true"); //*************************************************************************************************************** //** Place l'attribut EvaluerATraversAnalyseStyle=true au style qui doit être évaluer à travers d'analyseStyle ** //** S'il y a des attributs évaluer avec ‽ alors change par ‼ ** //*************************************************************************************************************** String nameStyle = nod.getAttributs().get("text:style-name"); ArrayList nodP = commandes.sujet.retourneEnfantsContainAttribut("style:name"); for(int i = 0 ; i < nodP.size();i++) { if(nodP.get(i).getAttributs().get("style:name").equals(nameStyle)) { nodP.get(i).getAttributs().put("EvaluerATraversAnalyseStyle", "true"); nodP.get(i).evaluerTrue(); nodP.get(i).changeLesCodesEvaluateursVersCodeATraversAnalyseStyle(); } } } private static void supprimeLaMethode(node nod) { nod.supprimeAttribut("analyseStyle"); //*************************************************************************************************************** //** Place l'attribut EvaluerATraversAnalyseStyle=true au style qui doit être évaluer à travers d'analyseStyle ** //** S'il y a des attributs évaluer avec ‽ alors change par ‼ ** //*************************************************************************************************************** String nameStyle = nod.getAttributs().get("text:style-name"); ArrayList nodP = commandes.sujet.retourneEnfantsContainAttribut("style:name"); for(int i = 0 ; i < nodP.size();i++) { if(nodP.get(i).getAttributs().get("style:name").equals(nameStyle)) { nodP.get(i).getAttributs().put("EvaluerATraversAnalyseStyle", "false"); nodP.get(i).changeLesCodesEvaluateursVersCodeATraversAnalyseStyle(); nodP.get(i).evaluerFalse(); } } } }