2022-06-19 21:01:30 +02:00
package fenetres.create_act ;
import java.awt.event.ActionEvent ;
2022-11-22 22:17:32 +01:00
import java.awt.event.KeyEvent ;
2022-06-19 21:01:30 +02:00
import javax.swing.AbstractAction ;
import javax.swing.Action ;
import javax.swing.ImageIcon ;
import javax.swing.JOptionPane ;
2022-11-22 22:17:32 +01:00
import javax.swing.KeyStroke ;
import javax.swing.tree.DefaultMutableTreeNode ;
import javax.swing.tree.DefaultTreeModel ;
import javax.swing.tree.TreePath ;
2022-06-19 21:01:30 +02:00
2022-12-17 17:11:22 +01:00
import MEPTL.commandes ;
2022-06-19 21:01:30 +02:00
import cXML.node ;
import fenetres.create ;
public class actDownNode extends AbstractAction {
/ * *
*
* /
private static final long serialVersionUID = 1L ;
{
putValue ( Action . NAME , " Descendre le node " ) ;
putValue ( Action . SMALL_ICON , new ImageIcon ( create . class . getResource ( " /resources/downnodemini.png " ) ) ) ;
2022-11-22 22:17:32 +01:00
putValue ( Action . SHORT_DESCRIPTION , " Descendre le node (Shift + D) " ) ;
putValue ( Action . ACCELERATOR_KEY , KeyStroke . getKeyStroke ( KeyEvent . VK_D , KeyEvent . SHIFT_DOWN_MASK ) ) ;
2022-06-19 21:01:30 +02:00
}
@Override
public void actionPerformed ( ActionEvent e ) {
if ( fenetres . create . getTree ( ) . getSelectionPath ( ) ! = null ) {
int a = JOptionPane . showConfirmDialog ( null , " Voulez-vous descendre le node " + fenetres . create . getSelectNode ( ) . toString ( ) + " ? " , " Sélectionner un choix " , JOptionPane . YES_NO_OPTION ) ;
if ( a = = JOptionPane . YES_NO_OPTION ) {
2022-11-30 21:18:53 +01:00
node nod = ( node ) fenetres . create . getSelectNode ( ) . getUserObject ( ) ;
2022-06-19 21:01:30 +02:00
if ( ! nod . chemin ( ) . contains ( " setting " ) ) {
2022-11-30 21:18:53 +01:00
DefaultMutableTreeNode selectNode = fenetres . create . getSelectNode ( ) ;
DefaultMutableTreeNode selectParentNode = ( DefaultMutableTreeNode ) selectNode . getParent ( ) ;
int selectedNodeIndex = selectNode . getParent ( ) . getIndex ( selectNode ) ;
int count = selectNode . getParent ( ) . getChildCount ( ) ;
2022-11-22 22:17:32 +01:00
2022-11-30 21:18:53 +01:00
if ( selectedNodeIndex < count - 1 ) {
TreePath path = fenetres . create . getTree ( ) . getSelectionPath ( ) ;
nod . getParent ( ) . downNodeEnfant ( nod ) ;
DefaultTreeModel treeModel = ( DefaultTreeModel ) fenetres . create . getTree ( ) . getModel ( ) ;
treeModel . insertNodeInto ( selectNode , selectParentNode , selectedNodeIndex + 1 ) ;
2022-12-17 17:11:22 +01:00
String nameNode = nod . getNomElt ( ) ;
2022-12-18 16:22:56 +01:00
if ( nameNode . equals ( " text:p " ) | | nameNode . equals ( " text:h " ) | | nameNode . equals ( " text:list-item " ) | | nameNode . equals ( " text:list " )
| | nameNode . equals ( " text:span " ) | | nameNode . equals ( " text:line-break " ) ) {
actNewFichierAnalyse . placeIsDoublonInStructure ( commandes . sujet . retourneFirstEnfantsByName ( " structurepage " ) ) ;
2022-12-17 17:11:22 +01:00
}
2022-11-30 21:18:53 +01:00
DefaultMutableTreeNode root = ( DefaultMutableTreeNode ) treeModel . getRoot ( ) ;
fenetres . create . setTree ( treeModel ) ;
treeModel . reload ( root ) ;
fenetres . create . getTree ( ) . setSelectionPath ( path ) ;
fenetres . create . getTree ( ) . expandPath ( path ) ;
}
2022-11-22 22:17:32 +01:00
2022-06-19 21:01:30 +02:00
} else {
JOptionPane . showMessageDialog ( null , " Vous ne devez pas déplacer ce node ! " , " Oh non!!! " , JOptionPane . INFORMATION_MESSAGE ) ;
}
}
}
}
2022-11-22 22:17:32 +01:00
2022-11-30 21:18:53 +01:00
@SuppressWarnings ( " unused " )
2022-11-22 22:17:32 +01:00
private static DefaultMutableTreeNode addNodeMutable ( node nod , DefaultMutableTreeNode parent ) {
if ( nod ! = null ) {
DefaultMutableTreeNode node1 = null ;
for ( int i = 0 ; i < nod . getNodes ( ) . size ( ) ; i + + ) {
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 ;
}
2022-06-19 21:01:30 +02:00
}