Monday, November 08, 2010 at 12:00 AM.
system.verbs.apps.AnArchie.examples.outlineResults
on outlineResults (searchResults, sortList=nil, outlineAddr=nil) {
local (x, count, dir = right);
bundle { <<set up the outline
if (outlineAddr == nil) {
outlineAddr = @scratchpad.searchResults};
if not defined (outlineAddr^) {
new (outlineType, outlineAddr);
target.set (outlineAddr);
editMenu.setFont ("Monaco");
editMenu.setFontSize (9);
target.clear ()};
edit (outlineAddr); <<user can see what's going on
target.set (outlineAddr); <<user can bring a different window to front
op.fullCollapse ();
op.firstSummit ();
if op.getLineText () == "" {
op.setLineText ("Search Results " + clock.now())}
else {
op.insert ("Search Results " + clock.now(), up)}};
dir = right;
count = sizeof(searchResults^);
for x = 1 to count {
aRec = searchResults^[x];
if (aRec[anarchie.eventInfo.isDirectory]) {
op.insert(aRec[1] + " Ä", dir)}
else {
op.insert(aRec[1], dir)};
dir = down; << after the first, insert down
<<op.insert (searchResults^[x]['name'], dir)
<<do all the subfields of the record
with anarchie, eventInfo {
op.insert("Host: "+aRec[host], right);
op.insert("Path: "+aRec[path], down);
op.insert("Size: "+aRec[fileSize], down);
op.insert("Date: "+string(aRec[modification]), down)};
op.go(left,1);
op.collapse ()};
bundle { <<restore the outline
op.firstSummit ();
if (sortList) {
op.go(right, 1);
op.sort()};
target.clear()}}; << just in case!
<<outlineResults(@people.x)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.