次のエージェントは、選択した文書の Body アイテム内にある各タイプの要素の数を表示します。
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
// Open file - proceed only if file can be opened
String filename = "c:¥¥lotus¥¥notesv6¥¥notes.ini";
Stream stream = session.createStream();
DocumentCollection dc = agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
RichTextItem rti = (RichTextItem)doc.getFirstItem("Body");
RichTextNavigator rtnav = rti.createNavigator();
System.out.println("Number of doc links = " +
getCount(RichTextItem.RTELEM_TYPE_DOCLINK, rtnav));
System.out.println("Number of file attachments = " +
getCount(RichTextItem.RTELEM_TYPE_FILEATTACHMENT, rtnav));
System.out.println("Number of OLE objects = " +
getCount(RichTextItem.RTELEM_TYPE_OLE, rtnav));
System.out.println("Number of sections = " +
getCount(RichTextItem.RTELEM_TYPE_SECTION, rtnav));
System.out.println("Number of tables = " +
getCount(RichTextItem.RTELEM_TYPE_TABLE, rtnav));
System.out.println("Number of table cells = " +
getCount(RichTextItem.RTELEM_TYPE_TABLECELL, rtnav));
System.out.println("Number of text paragraphs = " +
getCount(RichTextItem.RTELEM_TYPE_TEXTPARAGRAPH, rtnav));
System.out.println("Number of text runs = " +
getCount(RichTextItem.RTELEM_TYPE_TEXTRUN, rtnav));
} catch(Exception e) {
e.printStackTrace();
}
}
int getCount(int elementType, RichTextNavigator rtnav) {
int n = 0;
try {
if (rtnav.findFirstElement(elementType)) {
do {
n++; }
while (rtnav.findNextElement(elementType));
}
} catch(Exception e) {
e.printStackTrace(); }
return n;
}
}