例: Navigator property (RichTextNavigator - Java™)

次のエージェントは、現在の文書の最初の表にあるすべてのセル内のすべての段落を取得します。エージェントは、表と表内の各セルに対してナビゲータを設定することにより、要素内で動作します。

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();
    }
  }
}