NodeChangingAction

Inheritance: java.lang.Object

public class NodeChangingAction

Specifies the type of node change.

Examples:

Shows how to use a NodeChangingCallback to monitor changes to the document tree in real-time as we edit it.


 public void nodeChangingCallback() throws Exception {
     Document doc = new Document();
     doc.setNodeChangingCallback(new NodeChangingPrinter());

     DocumentBuilder builder = new DocumentBuilder(doc);
     builder.writeln("Hello world!");
     builder.startTable();
     builder.insertCell();
     builder.write("Cell 1");
     builder.insertCell();
     builder.write("Cell 2");
     builder.endTable();

     builder.insertImage(getImageDir() + "Logo.jpg");
     builder.getCurrentParagraph().getParentNode().removeAllChildren();
 }

 /// 
 /// Prints every node insertion/removal as it takes place in the document.
 /// 
 private static class NodeChangingPrinter implements INodeChangingCallback {
     public void nodeInserting(NodeChangingArgs args) {
         Assert.assertEquals(args.getAction(), NodeChangingAction.INSERT);
         Assert.assertEquals(args.getOldParent(), null);
     }

     public void nodeInserted(NodeChangingArgs args) {
         Assert.assertEquals(args.getAction(), NodeChangingAction.INSERT);
         Assert.assertNotNull(args.getNewParent());

         System.out.println("Inserted node:");
         System.out.println(MessageFormat.format("\tType:\t{0}", args.getNode().getNodeType()));

         if (!"".equals(args.getNode().getText().trim())) {
             System.out.println(MessageFormat.format("\tText:\t\"{0}\"", args.getNode().getText().trim()));
         }

         System.out.println(MessageFormat.format("\tHash:\t{0}", args.getNode().hashCode()));
         System.out.println(MessageFormat.format("\tParent:\t{0} ({1})", args.getNewParent().getNodeType(), args.getNewParent().hashCode()));
     }

     public void nodeRemoving(NodeChangingArgs args) {
         Assert.assertEquals(args.getAction(), NodeChangingAction.REMOVE);
     }

     public void nodeRemoved(NodeChangingArgs args) {
         Assert.assertEquals(args.getAction(), NodeChangingAction.REMOVE);
         Assert.assertNull(args.getNewParent());

         System.out.println(MessageFormat.format("Removed node: {0} ({1})", args.getNode().getNodeType(), args.getNode().hashCode()));
     }
 }
 

Fields

FieldDescription
INSERTA node is being inserted in the tree.
REMOVEA node is being removed from the tree.
length

Methods

MethodDescription
fromName(String nodeChangingActionName)
getName(int nodeChangingAction)
getValues()
toString(int nodeChangingAction)

INSERT

public static int INSERT

A node is being inserted in the tree.

REMOVE

public static int REMOVE

A node is being removed from the tree.

length

public static int length

fromName(String nodeChangingActionName)

public static int fromName(String nodeChangingActionName)

Parameters:

ParameterTypeDescription
nodeChangingActionNamejava.lang.String

Returns: int

getName(int nodeChangingAction)

public static String getName(int nodeChangingAction)

Parameters:

ParameterTypeDescription
nodeChangingActionint

Returns: java.lang.String

getValues()

public static int[] getValues()

Returns: int[]

toString(int nodeChangingAction)

public static String toString(int nodeChangingAction)

Parameters:

ParameterTypeDescription
nodeChangingActionint

Returns: java.lang.String