Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.Frontier.tools.data.nodeTypes.file.expand
<<Changes
<<12/1/01; 5:36:12 PM by JES
<<Expand the node in a try, so errors can be presented to the user. If the file has no URL attribute, display an error.
<<12/1/01; 5:10:00 PM by JES
<<Set display to false, to make the outline update look smoother.
<<8/10/01; 7:10:51 PM by JES
<<Call Frontier.tools.windowTypes.commands.openUrl, which is the bottleneck for the File->Open URL command. If the file can be inserted as a sub-outline, it will be, otherwise it's opened in the web browser.
<<12/31/00; 5:34:31 PM by JES
<<On Macs, convert opml to Mac text before converting to an outline.
<<Archive
<<Sat, Dec 2, 2000 at 5:53:29 PM by JES
<<Properly handle URLs that don't end in .html, and URLs that start with file:///.
<<Thursday, September 28, 2000 at 2:09:40 AM by JES
<<Bring the web browser to the front when opening html files.
<<Wednesday, September 20, 2000 at 2:15:14 PM by PBS
<<Call playlist.httpClient so the script can accept OPML documents.
<<Friday, August 25, 2000 at 12:10:27 PM by DW
<<Open HTML files in the Web browser.
<<Friday, August 18, 2000 at 5:40:48 PM by DW
<<Undo workaround for op.insertoutline.
<<Saturday, August 12, 2000 at 9:36:47 PM by DW
<<Called when the user 2clicks on a user node. We fill in the contents of their directory outline, in the indicated folder.
local (oldTarget = target.set (window.frontmost ()));
local (oldDisplay = op.getDisplay ());
op.setDisplay (false);
local (url, xmlText);
url = string.replaceall (url, " ", "%20");
if op.attributes.getOne ("url", @url) {
try {
Frontier.tools.windowTypes.commands.openUrl (url, true)} //true means open as a sub-outline
else {
dialog.alert (tryError)}}
else {
dialog.alert ("Can't expand the file because its URL is unknown.")};
op.setDisplay (oldDisplay);
try {target.set (oldTarget)}
<<bundle //old code
<<case true
<<string.lower (url) endswith ".opml"
<<local (urllist = string.urlsplit (url))
<<if string.lower (urllist[1]) beginsWith "file:" //12/02/00 JES: the URL may be to a local opml file.
<<xmlText = file.readWholeFile (file.urlToFile (url))
<<else
<<xmltext = string.httpResultSplit (tcp.httpClient (server:urllist [2], path:urllist [3], flAcceptOpml:true))
<<local (localoutline)
<<wp.newtextobject (xmltext, @scratchpad.xxx)
<<if system.environment.isMac
<<xmlText = string.latinToMac (xmlText)
<<op.xmltooutline (xmltext, @localoutline)
<<op.deletesubs ()
<<op.insertoutline (@localoutline, right)
<<if date.versionLessThan (Frontier.version (), "7.0b13")
<<op.go (left, 1)
<<else
<<webbrowser.openUrl (url)
<<webbrowser.bringToFront ()
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.