ビューナビゲータ内の現在のエントリまたは指定されたエントリの最初の子に、現在のポインタを移動します。
gotoChild(entry:NotesViewEntry) : boolean
パラメータ | 説明 |
---|---|
entry | ビュー内のエントリです。NULL にすることはできません。 |
戻り値 | 説明 |
---|---|
boolean |
|
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var entry:NotesViewEntry = null;
var firstTime = true;
var position:string = requestScope.query;
if (position.isEmpty()) {
requestScope.status += "¥nNo position";
return;
}
var p:int = 0;
var n:int = 0;
var i:int = 0;
// Expecting position of form p.p ... .p
// Each iteration processes one p
while (!position.isEmpty()) {
// Parse position and verify as number
n = position.indexOf(".");
if (n > -1) {
p = parseInt(position.left(n));
position = position.right(position.length - n -1);
} else {
p = parseInt(position);
position = "";
}
if (isNaN(p)) {
requestScope.status += "¥nInvalid number";
return;
}
// Go to the first entry for the level being processed
if (!firstTime) {
if (!nav.gotoChild()) {
requestScope.status += "¥nInvalid position";
return;
}
} else {
if (!nav.gotoFirst()) {
requestScope.status += "¥nView empty";
return;
}
firstTime = false;
}
// Go to entry # p on the level being processed
for (var i=1; i<(p); i++) {
if (!nav.gotoNextSibling()) {
requestScope.status += "¥nInvalid position";
return;
}
}
}
// Get the entry
entry = nav.getCurrent();
requestScope.status += "¥n" + entry.getPosition(".") + " ";
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());