Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.fatPages.getFileData
on getFileData (path) {
<<This script is called from the FATP file clicker script.
local (flRunnable = false, flOdb = false, adrDest);
local (pageSource = fatPages.readSourceFile (path));
bundle { //fill in atts table
if not fatPages.getPageAtts (@pageSource, @atts) {
fatPages.noObjectError (path)};
if not defined (atts.pageData) {
fatPages.noObjectError (path)};
atts.path = path};
bundle { //is this a runnable desktop script?
if string.lower (file.type (path)) == "ftds" {
<<Desktop scripts are of type ftds.
flRunnable = true};
if defined (atts.runnable) and atts.runnable {
flRunnable = true};
if kb.cmdKey () {
flRunnable = false}};
if defined (atts.adrPageData) { //is this an odb object?
flOdb = true};
if (window.isOpen (path)) and (not flRunnable) and (not flOdb) {
window.bringToFront (path);
return (true)};
if flOdb and !flRunnable { //if it's an odb object, confirm the destination adr
adrDest = fatPages.confirmAddress (atts.adrPageData);
if not adrDest {
return (false)}};
bundle { //move the data into a new file window or the odb
if flOdb {
if flRunnable { //no user confirmation
adrDest = address (atts.adrPageData)};
fatPages.unpackOdbObject (@atts, adrDest, path, flRunnable)}
else {
fatPages.unpackFileObject (@atts, path, flRunnable)}};
return (true)}
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.