analyseWriter/src/fenetres/create.java

1098 lines
42 KiB
Java

package fenetres;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Enumeration;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.plaf.SplitPaneUI;
import javax.swing.plaf.basic.BasicSplitPaneUI;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import MEPTL.commandes;
import action.actAPropos;
import action.actAbout;
import action.actAfficheInformationFichierAnalyse;
import action.actAllContent;
import action.actAttribut;
import action.actCollapseAll;
import action.actCollapseNode;
import action.actDeleteNode;
import action.actDocumentation;
import action.actDownNode;
import action.actEvalAncrageNumeroAbsoluePageOui;
import action.actEvalEnteteActive;
import action.actEvalEntetePasActive;
import action.actEvalFirstChildTrue;
import action.actEvalFormatageDirect;
import action.actEvalInitialCreator;
import action.actEvalLastChildTrue;
import action.actEvalNameNodeOui;
import action.actEvalNamePageOui;
import action.actEvalNameSequenceOui;
import action.actEvalNumeroAbsoluePageOui;
import action.actEvalNumeroPageOui;
import action.actEvalPasParagrapheVideOui;
import action.actEvalPiedPageActive;
import action.actEvalPiedPagePasActive;
import action.actEvalPlacementParagrapheOui;
import action.actEvalSautPageColonneOui;
import action.actEvalTabAlignementGaucheOui;
import action.actEvalTabDefautStyleLeaderOui;
import action.actEvalTextUserDefinedOui;
import action.actEvalueFalse;
import action.actEvalueTrue;
import action.actEvaluer;
import action.actEvaluerATraversAnalyseStyleTrue;
import action.actEvaluerNomDuStyleHeriteTrue;
import action.actEvaluerStyleTrue;
import action.actEvaluerTousEnfantsFalse;
import action.actEvaluerTousEnfantsTrue;
import action.actExit;
import action.actExpandAll;
import action.actExpandNode;
import action.actLicence;
import action.actNewFichierAnalyse;
import action.actNodeFichier;
import action.actOpenBaseEvaluation;
import action.actSaveEvaluation;
import action.actSetting;
import action.actTitre1;
import action.actTitre2;
import action.actTitre3;
import action.actTotalPoint;
import action.actTotalPointNode;
import action.actTutoriels;
import action.actUpNode;
import action.actevalNameCreator;
import cXML.Run;
import cXML.node;
import list.listeDesNodesAllContent;
import list.listeDesNodesAnalyseStyle;
import list.listeDesNodesAncrable;
import list.listeDesNodesEvalPlacement;
import list.listeDesNodesFormatageDirect;
import list.listeDesNodesPourEvaluationEntetePage;
import list.listeDesNodesPourEvaluerPage;
import list.listeDesNodesPourEvaluerPiedDePage;
import list.listeDesNodesTabStop;
import list.listeEvalNameNode;
import menucontextuel.CreatePopupMenu;
import net.miginfocom.swing.MigLayout;
/**
*
* @author pablo rodriguez
*
*/
public final class create extends JFrame {
private static final long serialVersionUID = 1L;
// les éléments de create
private static JTree tree = new JTree();
private static DefaultMutableTreeNode selectNode;
private static afficheText textNodeSelect = new afficheText();
private JToolBar toolBarPrincipal;
private JMenuBar menuBar = new JMenuBar();
private static JButton buttonEvaluate;
private JPanel panelDroiteBoutons= new JPanel();
private static create instance;
public static boolean isDispose = true;
private static JLabel lblInfo = new JLabel("Fichier d'analyse");
private final JLabel lblNewLabel_1 = new JLabel("Les méthodes d'évaluation");
private final JButton btnAttribut= new JButton(new actAttribut());
private final JButton btnAllContent = new JButton(new actAllContent());
private final JButton btnevalNameLegacyStyleTrue = new JButton(new actEvaluerNomDuStyleHeriteTrue());
private final JButton btnanalyseStyletrue = new JButton(new actEvaluerStyleTrue());
private final JButton btnevalSautPageColonnetrue = new JButton(new actEvalSautPageColonneOui());
private final JButton btnevalNameNodetrue = new JButton(new actEvalNameNodeOui());
private final JButton btnevalFormatageDirecttrue = new JButton(new actEvalFormatageDirect());
private final JButton btnevalPlacementtrue = new JButton(new actEvalPlacementParagrapheOui());
private final JButton btnevalFirstChildtrue = new JButton(new actEvalFirstChildTrue());
private final JButton btnevalLastChildtrue = new JButton(new actEvalLastChildTrue());
private final JButton btnevalAncrageNumeroAbsoluePagetrue = new JButton(new actEvalAncrageNumeroAbsoluePageOui());
private final JButton btnevalPasParagrapheVidetrue = new JButton(new actEvalPasParagrapheVideOui());
private final JButton btnevalNamePagetrue = new JButton(new actEvalNamePageOui());
private final JButton btnevalNumeroPagetrue = new JButton(new actEvalNumeroPageOui());
private final JButton btnevalNumeroAbsoluePagetrue = new JButton(new actEvalNumeroAbsoluePageOui());
private final JButton btnevalEnteteActivetrue = new JButton(new actEvalEnteteActive());
private final JButton btnevalEntetePasActivetrue = new JButton(new actEvalEntetePasActive());
private final JButton btnEvalPiedPageActivetrue = new JButton(new actEvalPiedPageActive());
private final JButton btnEvalPiedPagePasActivetrue = new JButton(new actEvalPiedPagePasActive());
private final JButton btnevalTABAlignementAGauchetrue = new JButton(new actEvalTabAlignementGaucheOui());
private final JButton btnevalTABStyleLeaderDefaulttrue = new JButton(new actEvalTabDefautStyleLeaderOui());
private final JButton btnEvaluerATraversAnalyseStyletrue = new JButton(new actEvaluerATraversAnalyseStyleTrue());
private final JButton btnevalNameInitialCreator = new JButton(new actEvalInitialCreator());
private final JButton btnevalNameCreator = new JButton(new actevalNameCreator());
private final JButton btnevalNameSequence = new JButton(new actEvalNameSequenceOui());
private final JButton btnevalTextUserDefined = new JButton(new actEvalTextUserDefinedOui());
/**
* Création de la fenêtre.</br>
*/
public create() {
btnAllContent.setEnabled(false);
btnevalNameLegacyStyleTrue.setIcon(new ImageIcon(create.class.getResource("/resources/heritagestyle.png")));
btnevalNameLegacyStyleTrue.setEnabled(false);
btnanalyseStyletrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaluerstyle.png")));
btnanalyseStyletrue.setEnabled(false);
btnevalSautPageColonnetrue.setIcon(new ImageIcon(create.class.getResource("/resources/sautpagecolonne.png")));
btnevalSautPageColonnetrue.setEnabled(false);
btnevalNameNodetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalnode.png")));
btnevalNameNodetrue.setEnabled(false);
btnevalFormatageDirecttrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalformatagedirect.png")));
btnevalFormatageDirecttrue.setEnabled(false);
btnevalPlacementtrue.setIcon(new ImageIcon(create.class.getResource("/resources/ordreparagraphe.png")));
btnevalPlacementtrue.setEnabled(false);
btnevalFirstChildtrue.setIcon(new ImageIcon(create.class.getResource("/resources/premierenfant.png")));
btnevalFirstChildtrue.setEnabled(false);
btnevalLastChildtrue.setIcon(new ImageIcon(create.class.getResource("/resources/dernierenfant.png")));
btnevalLastChildtrue.setEnabled(false);
btnevalAncrageNumeroAbsoluePagetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalnumeropageancrage.png")));
btnevalAncrageNumeroAbsoluePagetrue.setEnabled(false);
btnevalPasParagrapheVidetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalpasparagraphevide.png")));
btnevalPasParagrapheVidetrue.setEnabled(false);
btnevalNamePagetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalnamepage.png")));
btnevalNamePagetrue.setEnabled(false);
btnevalNumeroPagetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalnumeropage.png")));
btnevalNumeroPagetrue.setEnabled(false);
btnevalNumeroAbsoluePagetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evalnumeroabsoluepage.png")));
btnevalNumeroAbsoluePagetrue.setEnabled(false);
btnevalEnteteActivetrue.setIcon(new ImageIcon(create.class.getResource("/resources/enteteoui.png")));
btnevalEnteteActivetrue.setEnabled(false);
btnevalEntetePasActivetrue.setIcon(new ImageIcon(create.class.getResource("/resources/entetenon.png")));
btnevalEntetePasActivetrue.setEnabled(false);
btnEvalPiedPageActivetrue.setIcon(new ImageIcon(create.class.getResource("/resources/piedpageoui.png")));
btnEvalPiedPageActivetrue.setEnabled(false);
btnEvalPiedPagePasActivetrue.setIcon(new ImageIcon(create.class.getResource("/resources/piedpagenon.png")));
btnEvalPiedPagePasActivetrue.setEnabled(false);
btnevalTABAlignementAGauchetrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaltabalgngauche.png")));
btnevalTABAlignementAGauchetrue.setEnabled(false);
btnevalTABStyleLeaderDefaulttrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaltabstyleleader.png")));
btnevalTABStyleLeaderDefaulttrue.setEnabled(false);
btnEvaluerATraversAnalyseStyletrue.setIcon(new ImageIcon(create.class.getResource("/resources/atraversanalysestyle.png")));
btnEvaluerATraversAnalyseStyletrue.setEnabled(false);
btnevalNameInitialCreator.setIcon(new ImageIcon(create.class.getResource("/resources/auteurcreateur.png")));
btnevalNameInitialCreator.setEnabled(false);
btnevalNameCreator.setIcon(new ImageIcon(create.class.getResource("/resources/auteurediteur.png")));
btnevalNameCreator.setEnabled(false);
btnevalNameSequence.setIcon(new ImageIcon(create.class.getResource("/resources/evalnamesequence.png")));
btnevalNameSequence.setEnabled(false);
btnevalTextUserDefined.setIcon(new ImageIcon(create.class.getResource("/resources/evaltextuserdefined.png")));
btnevalTextUserDefined.setEnabled(false);
setBackground(new Color(255, 255, 255));
try {
initialize();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
setVisible(true);
}
/**
* Obtient l'instance encours.</br>
* @return l'instance de la fenêtre.</br>
*/
public static create getInstance() {
if (isDispose) {
instance = new create();
}
instance.setVisible(true);
lectureFichierDejaCharger();
refreshLabelInfo();
isDispose=false;
return instance;
}
/**
* Ferme la fenêtre et quitte.
*/
public static void fermeCreate() {
if(!isDispose) {
isDispose=true;
instance.dispose();
}
}
/**
* Initialize the contents of the frame.
* @throws UnsupportedLookAndFeelException
*/
private void initialize() throws UnsupportedLookAndFeelException {
setSize(1200,800);
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 img = new ImageIcon(getClass().getResource("/evalwriter.png") );
setTitle(commandes.Titre + " " + commandes.version + " " + commandes.branch);
setIconImage(img.getImage());
setLocationRelativeTo( null );
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
// Construction et injection de la barre de menu
setJMenuBar( this.createMenuBar() );
// coloration et nombre de ligne de l'arbre
tree.setBackground(new Color(255, 255, 255));
tree.setVisibleRowCount(30);
// Ajoute le menu contextuel de la tree
tree.setComponentPopupMenu(null);
this.createToolBar();
// Utiliser un BoxLayout pour la barre d'outils (pour plusieurs lignes et redimensionnement)
// BoxLayout layout = new BoxLayout(toolBarPrincipal, BoxLayout.X_AXIS);
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
toolBarPrincipal.setLayout(layout);
getContentPane().add(toolBarPrincipal,BorderLayout.NORTH);
// The content of the window
if(commandes.fichierAnalyseValide) tree = commandes.tree;
JPanel panelLeft = new JPanel();
panelLeft.setLayout(new BorderLayout());
JPanel panelNorth = new JPanel();
panelNorth.setLayout(new GridLayout(2,1,0,0));
JScrollPane leftScrollPane = new JScrollPane( );
leftScrollPane.setPreferredSize( new Dimension(400, 0) );
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon(create.class.getResource("/resources/accueil fichier anlyse.png")));
panelNorth.add(lblNewLabel);
lblInfo.setFont(new Font("Tahoma", Font.BOLD, 12));
panelNorth.add(lblInfo);
panelLeft.add(panelNorth,BorderLayout.NORTH);
panelLeft.add(leftScrollPane,BorderLayout.CENTER);
JScrollPane rightScrollPane = new JScrollPane();
textNodeSelect.setBackground(Color.LIGHT_GRAY);
textNodeSelect.setFont(new Font("Monospaced", Font.PLAIN, 15));
JScrollPane ScrollPaneTableBouton = new JScrollPane( );
panelDroiteBoutons.setBackground(Color.LIGHT_GRAY);
panelDroiteBoutons.setBorder(null);
panelDroiteBoutons.setLayout(new MigLayout("", "[40px:n,fill][40px:n,fill][40px:n,fill][40px:n,fill][40px:n,fill][40px:n,fill]", "[20px][40px][40px][60px][60px][60px][60px][60px][60px][60px][60px][60px][60px]"));
rightScrollPane.setViewportView(panelDroiteBoutons);
ScrollPaneTableBouton.setViewportView(textNodeSelect);
lblNewLabel_1.setIcon(new ImageIcon(create.class.getResource("/resources/evaluermini.png")));
lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 14));
panelDroiteBoutons.add(lblNewLabel_1, "cell 0 0 6 1,aligny center,grow");
btnAttribut.setText("");
btnAttribut.setHorizontalAlignment(SwingConstants.LEFT);
btnAttribut.setForeground(new Color(0, 128, 192));
panelDroiteBoutons.add(btnAttribut, "cell 0 1,grow");
btnAttribut.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/attribut.png")));
btnAllContent.setText("");
btnAllContent.setHorizontalAlignment(SwingConstants.LEFT);
btnAllContent.setForeground(new Color(0, 128, 192));
panelDroiteBoutons.add(btnAllContent, "cell 1 1,grow");
btnAllContent.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/allcontent.png")));
btnevalNameNodetrue.setText("");
panelDroiteBoutons.add(btnevalNameNodetrue, "cell 2 1");
btnevalNameLegacyStyleTrue.setText("");
panelDroiteBoutons.add(btnevalNameLegacyStyleTrue, "cell 3 1");
btnanalyseStyletrue.setText("");
panelDroiteBoutons.add(btnanalyseStyletrue, "cell 4 1");
btnEvaluerATraversAnalyseStyletrue.setText("");
panelDroiteBoutons.add(btnEvaluerATraversAnalyseStyletrue, "cell 5 1");
btnevalSautPageColonnetrue.setText("");
panelDroiteBoutons.add(btnevalSautPageColonnetrue, "cell 0 2");
btnevalFirstChildtrue.setText("");
panelDroiteBoutons.add(btnevalFirstChildtrue, "cell 1 2");
btnevalLastChildtrue.setText("");
panelDroiteBoutons.add(btnevalLastChildtrue, "cell 2 2");
btnevalPlacementtrue.setText("");
panelDroiteBoutons.add(btnevalPlacementtrue, "cell 3 2");
btnevalFormatageDirecttrue.setText("");
panelDroiteBoutons.add(btnevalFormatageDirecttrue, "cell 4 2");
btnevalAncrageNumeroAbsoluePagetrue.setText("");
panelDroiteBoutons.add(btnevalAncrageNumeroAbsoluePagetrue, "cell 5 2");
btnevalEnteteActivetrue.setText("");
panelDroiteBoutons.add(btnevalEnteteActivetrue, "cell 0 3");
btnevalEntetePasActivetrue.setText("");
panelDroiteBoutons.add(btnevalEntetePasActivetrue, "cell 1 3");
btnEvalPiedPageActivetrue.setText("");
panelDroiteBoutons.add(btnEvalPiedPageActivetrue, "cell 2 3");
btnEvalPiedPagePasActivetrue.setText("");
panelDroiteBoutons.add(btnEvalPiedPagePasActivetrue, "cell 3 3");
btnevalTABAlignementAGauchetrue.setText("");
panelDroiteBoutons.add(btnevalTABAlignementAGauchetrue, "cell 4 3");
btnevalTABStyleLeaderDefaulttrue.setText("");
panelDroiteBoutons.add(btnevalTABStyleLeaderDefaulttrue, "cell 5 3");
btnevalNamePagetrue.setText("");
panelDroiteBoutons.add(btnevalNamePagetrue, "cell 0 4");
btnevalNumeroAbsoluePagetrue.setText("");
panelDroiteBoutons.add(btnevalNumeroAbsoluePagetrue, "cell 1 4");
btnevalNumeroPagetrue.setText("");
panelDroiteBoutons.add(btnevalNumeroPagetrue, "cell 2 4");
btnevalPasParagrapheVidetrue.setText("");
panelDroiteBoutons.add(btnevalPasParagrapheVidetrue, "cell 3 4");
btnevalNameInitialCreator.setText("");
panelDroiteBoutons.add(btnevalNameInitialCreator, "cell 4 4");
btnevalNameCreator.setText("");
panelDroiteBoutons.add(btnevalNameCreator, "cell 5 4");
btnevalNameSequence.setText("");
panelDroiteBoutons.add(btnevalNameSequence, "cell 0 5");
btnevalTextUserDefined.setText("");
panelDroiteBoutons.add(btnevalTextUserDefined, "cell 1 5");
JSplitPane splitPane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, rightScrollPane, ScrollPaneTableBouton );
splitPane2.setBounds(10, 10, 1364, 783);
splitPane2.setDividerLocation(0.4);
splitPane2.setOneTouchExpandable(true);
SplitPaneUI spui = splitPane2.getUI();
if (spui instanceof BasicSplitPaneUI) {
((BasicSplitPaneUI) spui).getDivider().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
if (arg0.getClickCount() == 2) {
Dimension size1 = rightScrollPane.getPreferredSize();
int dividerLocation = splitPane2.getOrientation() == JSplitPane.HORIZONTAL_SPLIT ?
size1.width : size1.height;
splitPane2.setDividerLocation(dividerLocation);
}
}
});
}
JSplitPane splitPane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panelLeft, splitPane2 );
splitPane1.setBounds(10, 10, 1364, 783); //10, 10, 1364, 783
splitPane1.setDividerLocation(0.25);
leftScrollPane.setViewportView(tree);
tree.setFont(new Font("Tahoma", Font.PLAIN, 16));
getContentPane().add(splitPane1, BorderLayout.CENTER);
if(commandes.fichierAnalyseValide) {
tree.setVisible(true);
constructionTree();
}else {
tree.setVisible(false);
}
this.setExtendedState(MAXIMIZED_BOTH);
rightScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
ListenerAction();
}
/**
* Selection du node du tree et d'un node CXML.</br>
* Fermeture de la fenêtre.<br>
*/
private void ListenerAction() {
/**
* Selection d'un node dans le JTree.</br>
*/
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(tree.getSelectionPath()!=null) {
selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent();
node nod = (node) selectNode.getUserObject(); //node sélectionné.
new CreatePopupMenu(nod); // création du popup menu.
textNodeSelect.setEditable(true);
textNodeSelect.refreshAffichage(nod); //affiche des informations sur le node.
textNodeSelect.setEditable(false);
// refreshTree(); //repaint l'arbre.
if(tree.isCollapsed(tree.getSelectionPath())){
tree.expandPath(tree.getSelectionPath()); //Etend le node sélectionné.
}else {
tree.collapsePath(tree.getSelectionPath());
}
}
}
});
/**
* Selection d'un node sans la souris.
*/
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
if(tree.getSelectionPath()!=null) {
selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent();
node nod = (node) selectNode.getUserObject(); //node sélectionné.
new CreatePopupMenu(nod); // création du popup menu.
textNodeSelect.setEditable(true);
textNodeSelect.refreshAffichage(nod); //affiche des informations sur le node.
textNodeSelect.setEditable(false);
btnevalNameLegacyStyleTrue.setEnabled(false);
btnanalyseStyletrue.setEnabled(false);
btnAllContent.setEnabled(false);
btnevalSautPageColonnetrue.setEnabled(false);
btnevalNameNodetrue.setEnabled(false);
btnevalFormatageDirecttrue.setEnabled(false);
btnevalPlacementtrue.setEnabled(false);
btnevalFirstChildtrue.setEnabled(false);
btnevalLastChildtrue.setEnabled(false);
btnevalAncrageNumeroAbsoluePagetrue.setEnabled(false);
btnevalPasParagrapheVidetrue.setEnabled(false);
btnevalNamePagetrue.setEnabled(false);
btnevalNumeroPagetrue.setEnabled(false);
btnevalNumeroAbsoluePagetrue.setEnabled(false);
btnevalEnteteActivetrue.setEnabled(false);
btnevalEntetePasActivetrue.setEnabled(false);
btnEvalPiedPageActivetrue.setEnabled(false);
btnEvalPiedPagePasActivetrue.setEnabled(false);
btnevalTABAlignementAGauchetrue.setEnabled(false);
btnevalTABStyleLeaderDefaulttrue.setEnabled(false);
btnEvaluerATraversAnalyseStyletrue.setEnabled(false);
btnevalNameInitialCreator.setEnabled(false);
btnevalNameCreator.setEnabled(false);
btnevalNameSequence.setEnabled(false);
btnevalTextUserDefined.setEnabled(false);
if(listeDesNodesAllContent.isAllContent(nod)) {
btnAllContent.setEnabled(true);
}
if(listeDesNodesFormatageDirect.isFormatageDirect(nod)) {
btnevalNameLegacyStyleTrue.setEnabled(true);
btnevalSautPageColonnetrue.setEnabled(true);
btnevalFormatageDirecttrue.setEnabled(true);
}
if(listeDesNodesAnalyseStyle.isAnalyseStyle(nod)) {
btnanalyseStyletrue.setEnabled(true);
}
if(listeEvalNameNode.isNodeEvalNameNode(nod)) {
btnevalNameNodetrue.setEnabled(true);
}
if(listeDesNodesEvalPlacement.isPlacement(nod)) {
btnevalPlacementtrue.setEnabled(true);
if(nod.retourneLeNodeFrereAvant()==null) {
btnevalFirstChildtrue.setEnabled(true);
}
if(nod.retourneLeNodeFrereApres()==null) {
btnevalLastChildtrue.setEnabled(true);
}
}
if(listeDesNodesAncrable.isAncrable(nod)) {
btnevalAncrageNumeroAbsoluePagetrue.setEnabled(true);
}
if(listeDesNodesPourEvaluerPage.isPage(nod)) {
btnevalPasParagrapheVidetrue.setEnabled(true);
btnevalNamePagetrue.setEnabled(true);
btnevalNumeroPagetrue.setEnabled(true);
btnevalNumeroAbsoluePagetrue.setEnabled(true);
}
if(listeDesNodesPourEvaluationEntetePage.isEntete(nod)) {
if(nod.isHasEnfant()) {
btnevalEnteteActivetrue.setEnabled(true);
}else {
btnevalEntetePasActivetrue.setEnabled(true);
}
}
if(listeDesNodesPourEvaluerPiedDePage.isPiedDePage(nod)){
if(nod.isHasEnfant()) {
btnEvalPiedPageActivetrue.setEnabled(true);
}else {
btnEvalPiedPagePasActivetrue.setEnabled(true);
}
}
if(listeDesNodesTabStop.AlignementDefaut(nod)) {
btnevalTABAlignementAGauchetrue.setEnabled(true);
}
if(listeDesNodesTabStop.RemplissageDefaut(nod)) {
btnevalTABStyleLeaderDefaulttrue.setEnabled(true);
}
if(nod.getNomElt().equals("style:style")) {
btnEvaluerATraversAnalyseStyletrue.setEnabled(true);
}
if(nod.getNomElt().equals("meta:initial-creator")) {
btnevalNameInitialCreator.setEnabled(true);
}
if(nod.getNomElt().equals("dc:creator")) {
btnevalNameCreator.setEnabled(true);
}
if(nod.getNomElt().equals("text:sequence-decl")) {
btnevalNameSequence.setEnabled(true);
}
if(nod.getNomElt().equals("text:user-defined")) {
btnevalTextUserDefined.setEnabled(true);
}
}
}
});
/**
* Fermeture de la fenêtre.</br>
*/
addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) {
baseDonneesEvaluations.ferme();
evaluate.ferme();
fermeCreate();
};
}
});
}
/**
* Repaint l'arbre.</br>
*/
@SuppressWarnings("unused")
private void refreshTree() {
tree.repaint();
}
/**
* Methode de construction de la barre de menu.</br>
* */
private JMenuBar createMenuBar() {
// La barre de menu à proprement parler
menuBar = new JMenuBar();
// Définition du menu déroulant "File" et de son contenu
JMenu mnuFile = new JMenu( "Base des évaluations" );
mnuFile.setMnemonic( 'F' );
JMenuItem menuItem_3 = mnuFile.add( new actOpenBaseEvaluation() );
menuItem_3.setText("Base des évaluations");
mnuFile.addSeparator();
JMenuItem menuItem_4 = mnuFile.add( new actSaveEvaluation());
menuItem_4.setText("Enregistrer l'évaluation");
mnuFile.addSeparator();
JMenuItem menuItem_5 = mnuFile.add( new actExit());
menuItem_5.setText("Quitter");
menuBar.add(mnuFile);
// Définition du menu Node
JMenu mnNode = new JMenu("Modifier");
mnNode.add( new actNodeFichier() );
mnNode.addSeparator();
menuBar.add(mnNode);
//Menu arbre
JMenu mnManageTree = new JMenu("Arbre");
JMenuItem menuMoveUp = mnManageTree.add(new actUpNode());
menuMoveUp.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.SHIFT_DOWN_MASK));
JMenuItem menuItem_2 = mnManageTree.add(new actDownNode());
menuItem_2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.SHIFT_DOWN_MASK));
mnManageTree.addSeparator();
mnManageTree.add(new actExpandAll());
mnManageTree.add(new actExpandNode());
mnManageTree.addSeparator();
mnManageTree.add(new actCollapseAll());
mnManageTree.add(new actCollapseNode());
mnManageTree.addSeparator();
JMenuItem menuItem_1 = mnManageTree.add(new actDeleteNode());
menuItem_1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.CTRL_DOWN_MASK));
mnNode.add(mnManageTree);
mnNode.addSeparator();
//Définition Evaluer
JMenu mnEvaluer = new JMenu("Evaluer");
mnEvaluer.add(new actEvalueTrue());
mnEvaluer.add(new actEvalueFalse());
mnEvaluer.addSeparator();
mnEvaluer.add(new actAttribut());
mnEvaluer.addSeparator();
mnEvaluer.add(new actAllContent());
mnNode.add(mnEvaluer);
mnNode.addSeparator();
//Les titres pour la représentation
JMenu mnLesTitres= new JMenu("Les titres");
mnNode.add(mnLesTitres);
JMenuItem mnTitre1 = mnLesTitres.add(new actTitre1());
mnTitre1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, InputEvent.SHIFT_DOWN_MASK));
JMenuItem mnTitre2 = mnLesTitres.add(new actTitre2());
mnTitre2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, InputEvent.SHIFT_DOWN_MASK));
JMenuItem mnTitre3 = mnLesTitres.add(new actTitre3());
mnTitre3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, InputEvent.SHIFT_DOWN_MASK));
// Définition du menu déroulant "Création évaluation" et de son contenu
JMenu mnuExercice = new JMenu( "Evaluer les fichiers des étudiants" );
mnuExercice.setMnemonic( 'N' );
mnuExercice.add(new actEvaluer());
menuBar.add(mnuExercice);
// Définition du menu déroulant "Help" et de son contenu
JMenu mnuHelp = new JMenu( "Aides" );
mnuHelp.setMnemonic( 'H' );
mnuHelp.add( new actAPropos());
mnuHelp.addSeparator();
mnuHelp.add( new actDocumentation());
mnuHelp.addSeparator();
mnuHelp.add( new actTutoriels());
mnuHelp.addSeparator();
mnuHelp.add( new actLicence());
menuBar.add( mnuHelp );
return menuBar;
}
/**
* Methode de construction de la barre d'outils/</br>
*/
private void createToolBar() {
toolBarPrincipal = new JToolBar();
toolBarPrincipal.setFloatable(true);
toolBarPrincipal.setRollover(true);
toolBarPrincipal.setName("outils principaux");
JButton btnChargeEvaluation = toolBarPrincipal.add( new actOpenBaseEvaluation() );
btnChargeEvaluation.setIcon(new ImageIcon(create.class.getResource("/resources/chargehistoriqueevaluation.png")));
btnChargeEvaluation.setHideActionText(true);
toolBarPrincipal.add(btnChargeEvaluation);
toolBarPrincipal.addSeparator();
JButton btnSaveEvaluation = toolBarPrincipal.add( new actSaveEvaluation() );
btnSaveEvaluation.setIcon(new ImageIcon(create.class.getResource("/resources/saveEvaluation.png")));
btnSaveEvaluation.setHideActionText(true);
toolBarPrincipal.add(btnSaveEvaluation);
JButton btnNewFichierAnalyse = toolBarPrincipal.add( new actNewFichierAnalyse() );
btnNewFichierAnalyse.setIcon(new ImageIcon(create.class.getResource("/resources/fichierODF.png")));
btnNewFichierAnalyse.setHideActionText(true);
toolBarPrincipal.add(btnNewFichierAnalyse);
toolBarPrincipal.addSeparator();
buttonEvaluate = toolBarPrincipal.add( new actEvaluer() );
buttonEvaluate.setIcon(new ImageIcon(create.class.getResource("/resources/versevaluate.png")));
toolBarPrincipal.addSeparator();
JButton btnAfficheInformationFichierAnalyse = toolBarPrincipal.add( new actAfficheInformationFichierAnalyse() );
btnAfficheInformationFichierAnalyse.setIcon(new ImageIcon(create.class.getResource("/resources/fichierAnalyseInfo.png")));
btnAfficheInformationFichierAnalyse.setHideActionText(true);
toolBarPrincipal.add(btnAfficheInformationFichierAnalyse);
JButton btnNodeFichier = toolBarPrincipal.add( new actNodeFichier() );
btnNodeFichier.setIcon(new ImageIcon(create.class.getResource("/resources/nodeFichier.png")));
btnNodeFichier.setHideActionText(true);
toolBarPrincipal.add(btnNodeFichier);
JButton btnSetting = toolBarPrincipal.add( new actSetting());
btnSetting.setIcon(new ImageIcon(create.class.getResource("/resources/setting.png")));
toolBarPrincipal.add(btnSetting);
toolBarPrincipal.addSeparator();
JButton btnEvaluerTrue = toolBarPrincipal.add( new actEvalueTrue() );
btnEvaluerTrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaluertrue.png")));
btnEvaluerTrue.setHideActionText(true);
toolBarPrincipal.add(btnEvaluerTrue);
JButton btnEvaluerFalse = toolBarPrincipal.add(new actEvalueFalse() );
btnEvaluerFalse.setIcon(new ImageIcon(create.class.getResource("/resources/evaluerfalse.png")));
btnEvaluerFalse.setHideActionText(true);
toolBarPrincipal.add(btnEvaluerFalse);
JButton btnEvaluerTouteLaBrancheEtLesEnfantTrue = toolBarPrincipal.add( new actEvaluerTousEnfantsTrue() );
btnEvaluerTouteLaBrancheEtLesEnfantTrue.setIcon(new ImageIcon(create.class.getResource("/resources/evaluertouslesenfants.png")));
btnEvaluerTouteLaBrancheEtLesEnfantTrue.setHideActionText(true);
toolBarPrincipal.add(btnEvaluerTouteLaBrancheEtLesEnfantTrue);
JButton btnEvaluerTouteLaBrancheEtLesEnfantFalse = toolBarPrincipal.add( new actEvaluerTousEnfantsFalse() );
btnEvaluerTouteLaBrancheEtLesEnfantFalse.setIcon(new ImageIcon(create.class.getResource("/resources/evaluertouslesenfantsfaux.png")));
btnEvaluerTouteLaBrancheEtLesEnfantTrue.setHideActionText(true);
toolBarPrincipal.add(btnEvaluerTouteLaBrancheEtLesEnfantFalse);
toolBarPrincipal.addSeparator();
JButton btnAttribut = new JButton(new actAttribut());
btnAttribut.setText("");
btnAttribut.setIcon(new ImageIcon(create.class.getResource("/resources/attribut.png")));
toolBarPrincipal.add(btnAttribut);
toolBarPrincipal.addSeparator();
JButton btnTotalPoint = new JButton(new actTotalPoint());
btnTotalPoint.setToolTipText("Nombre de point total dans l'exercice.");
btnTotalPoint.setText("");
btnTotalPoint.setIcon(new ImageIcon(create.class.getResource("/resources/totalpoint.png")));
toolBarPrincipal.add(btnTotalPoint);
JButton btnTotalPointNode = toolBarPrincipal.add( new actTotalPointNode() );
btnTotalPointNode.setIcon(new ImageIcon(create.class.getResource("/resources/totalpointnode.png")));
btnTotalPointNode.setHideActionText(true);
toolBarPrincipal.add(btnTotalPointNode);
toolBarPrincipal.addSeparator();
JButton btnAbout = toolBarPrincipal.add( new actAbout() );
btnAbout.setIcon(new ImageIcon(create.class.getResource("/resources/apropos.png")));
if(commandes.newVersion) btnAbout.setIcon(new ImageIcon(create.class.getResource("/resources/apropos_new.png")));
btnAbout.setHideActionText( true );
toolBarPrincipal.add(btnAbout);
JButton btnNewButton = toolBarPrincipal.add( new actDocumentation());
btnNewButton.setIcon(new ImageIcon(create.class.getResource("/resources/documentation.png")));
btnNewButton.setHideActionText(true);
toolBarPrincipal.add(btnNewButton);
toolBarPrincipal.addSeparator();
JButton buttonExit = toolBarPrincipal.add( new actExit() );
buttonExit.setHideActionText( true );
}
// /**
// * Annule une action.</br>
// */
// @SuppressWarnings("unused")
// private AbstractAction actUndo = new AbstractAction() {
//
// private static final long serialVersionUID = 1L;
//
// {
// putValue( Action.NAME, "Annuler" );
// putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/undo.png") ) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_U );
// putValue( Action.SHORT_DESCRIPTION, "Annuler (CTRL+Z)" );
// putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_DOWN_MASK ) );
// }
//
// @Override public void actionPerformed( ActionEvent e ) {
// System.out.println( "Undo" );
// }
// };
// /**
// *
// */
// @SuppressWarnings("unused")
// private AbstractAction actRedo = new AbstractAction() {
//
// /**
// *
// */
// private static final long serialVersionUID = 1L;
//
// {
// putValue( Action.NAME, "Refaire" );
// putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/redo.png") ) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_R );
// putValue( Action.SHORT_DESCRIPTION, "Refaire (CTRL+U)" );
// putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.CTRL_DOWN_MASK ) );
// }
//
// @Override public void actionPerformed( ActionEvent e ) {
// System.out.println( "Redo" );
// }
// };
// /**
// *
// */
// @SuppressWarnings("unused")
// private AbstractAction actCut = new AbstractAction() {
//
// private static final long serialVersionUID = 1L;
//
// {
// putValue( Action.NAME, "Couper" );
// putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/cut.png") ) );
// putValue( Action.MNEMONIC_KEY, KeyEvent.VK_T );
// putValue( Action.SHORT_DESCRIPTION, "Couper (CTRL+X)" );
// putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK ) );
// }
//
// @Override public void actionPerformed( ActionEvent e ) {
// System.out.println( "Cut" );
// }
// };
/**
* Ferme l'application.</br>
*/
public void closeWindows() {
if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) {
isDispose=true;
dispose();
}
}
public void closeDirectlyWindows() {
isDispose=true;
this.dispose();
}
/**
* Construction du Tree avec le node sujet.
*/
public static void constructionTree() {
Run.parentAndLevel(commandes.sujet, commandes.sujet, 0);
DefaultMutableTreeNode root = null;
commandes.tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
commandes.tree.setExpandsSelectedPaths(true);
commandes.tree.setInvokesStopCellEditing(true);
tree.setExpandsSelectedPaths(true);
tree.setInvokesStopCellEditing(true);
//Construction si c'est un fichier d'analyse
if(commandes.sujet.getNomElt().equals("fichier")) {
root = new DefaultMutableTreeNode(commandes.sujet,true);
root = addNodeMutable(commandes.sujet, root);
commandes.tree = new JTree(root);
tree.setCellRenderer(new MyTreeCellRenderer());
tree.setModel(commandes.tree.getModel()) ;
refreshLabelInfo();
}
}
/**
* Rafraichi le label info contenant le nm du fichier d'analyse.
*/
private static void refreshLabelInfo() {
//Mise à jour du label info
if(commandes.sujet.getAttributs().get("analysis_filename")!=null) {
lblInfo.setText(commandes.sujet.getAttributs().get("analysis_filename"));
}else {
lblInfo.setText("fichier d'analyse");
}
}
/**
* Permet la construction du tree.
* @param nod
* @param parent
* @return
*/
private static DefaultMutableTreeNode addNodeMutable(node nod, DefaultMutableTreeNode parent) {
if(nod!=null) {
DefaultMutableTreeNode node1 = null;
for(int i = 0 ; i < nod.getNodes().size(); i++) {
// Le node setting ne doit pas s'afficher dans le JTree
if(!nod.getNodes().get(i).getNomElt().equals("setting")) {
node1 = new DefaultMutableTreeNode(nod.getNodes().get(i));
addNodeMutable(nod.getNodes().get(i), node1);
parent.add(node1);
}
}
}
return parent;
}
/**
* Lecture du fichier déjà chargé.</br>
*/
private static void lectureFichierDejaCharger() {
if(commandes.fichierAnalyseValide) {
tree.setVisible(true);
fenetres.create.constructionTree();
fenetres.create.getTextNodeSelect().afficheChargementFichierAnalyse();
// fenetres.create.getTglbtnTousLesNodes().setSelected(false);
fenetres.create.getButtonEvaluate().setEnabled(true);
fenetres.create.getTextNodeSelect().afficheChargementFichierAnalyse();
// table.setModel(new myTableModel(commandes.sujet.retourneFirstEnfantsByName("structurepage")));
// table.setVisible(true);
}else {
fenetres.create.getTextNodeSelect().setContentType("text/plain");
// table.setVisible(false);
}
}
public static JTree getTree() {
return tree;
}
public static void setTree(TreeModel newModel) {
tree.setModel(newModel);
}
public static DefaultMutableTreeNode getSelectNode() {
return selectNode;
}
public static afficheText getTextNodeSelect() {
return textNodeSelect;
}
// public static JToggleButton getTglbtnTousLesNodes() {
// return tglbtnTousLesNodes;
// }
public static JButton getButtonEvaluate() {
return buttonEvaluate;
}
public static void expandAll() {
Enumeration<?> topLevelNodes = ((TreeNode) tree.getModel().getRoot()).children();
while(topLevelNodes.hasMoreElements()) {
DefaultMutableTreeNode N = (DefaultMutableTreeNode) topLevelNodes.nextElement();
tree.expandPath(new TreePath(N.getPath()));
expandNode( N);
}
}
public static void collapseAll() {
Enumeration<?> topLevelNodes = ((TreeNode) tree.getModel().getRoot()).children();
while(topLevelNodes.hasMoreElements()) {
DefaultMutableTreeNode N = (DefaultMutableTreeNode) topLevelNodes.nextElement();
tree.collapsePath(new TreePath(N.getPath()));
collapseNode(N);
}
}
public static void expandNode(DefaultMutableTreeNode N) {
Enumeration<?> topLevelNodes = ((TreeNode) N).children();
while(topLevelNodes.hasMoreElements()) {
DefaultMutableTreeNode N1 = (DefaultMutableTreeNode) topLevelNodes.nextElement();
tree.expandPath(new TreePath(N1.getPath()));
expandNode(N1);
}
}
public static void collapseNode(DefaultMutableTreeNode N) {
Enumeration<?> topLevelNodes = ((TreeNode) N).children();
while(topLevelNodes.hasMoreElements()) {
DefaultMutableTreeNode N1 = (DefaultMutableTreeNode) topLevelNodes.nextElement();
tree.collapsePath(new TreePath(N1.getPath()));
collapseNode( N1 );
}
tree.collapsePath(new TreePath(N.getPath()));
}
}