Examples: Navigator property (RichTextNavigator - Java)

This agent gets every paragraph in every cell in the first table of the current document. The agent works within elements by setting up a navigator for the table and for each cell in the table.

import lotus.domino.*;

public class JavaAgent extends AgentBase {

  public void NotesMain() {

    try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here) 
      DocumentCollection dc = agentContext.getUnprocessedDocuments();
      Document doc = dc.getFirstDocument();
      RichTextItem body = (RichTextItem)doc.getFirstItem("Body");
      RichTextNavigator rtnav = body.createNavigator();
      if (rtnav.findFirstElement(RichTextItem.RTELEM_TYPE_TABLE)) {
        // Set up range and navigator for table
        RichTextRange rtrange = body.createRange();
        rtrange.setBegin(rtnav);
        rtrange.setEnd(rtnav);
        RichTextNavigator rtnav2 = rtrange.getNavigator();
        // Find cells in table
        RichTextRange rtrange2 = body.createRange();
        RichTextRange rtrange3 = body.createRange();
        int counter = 0;
        rtnav2.findFirstElement(RichTextItem.RTELEM_TYPE_TABLECELL);
        do {
          counter++;
          System.out.println("Cell " + counter);
          // Set up range and navigator for cell
          rtrange2.setBegin(rtnav2);
          rtrange2.setEnd(rtnav2);
          RichTextNavigator rtnav3 = rtrange2.getNavigator();
          // Find paragraphs in cell
          if (rtnav3.findFirstElement(
          RichTextItem.RTELEM_TYPE_TEXTPARAGRAPH)) {
            do {
              rtrange3.setBegin(rtnav3);
              rtrange3.setEnd(rtnav3);
              System.out.println(rtrange3.getTextParagraph());
            } while (rtnav3.findNextElement());
          }
            else System.out.println("\tNo text in cell.");
        } while (rtnav2.findNextElement());
      }
      else
        System.out.println("Body does not contain any tables");

    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}