Re: Dynamically defined URL
- To: mathgroup at smc.vnet.net
- Subject: [mg60942] Re: Dynamically defined URL
- From: "Ingolf Dahl" <ingolf.dahl at telia.com>
- Date: Tue, 4 Oct 2005 04:16:44 -0400 (EDT)
- Reply-to: <ingolf.dahl at telia.com>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Murray,
You must specify ButtonEvaluator -> Automatic for the ButtonBox, otherwise
the button is evaluated by the FrontEnd when it is pressed, and the FrontEnd
does not know the value of ThisNBPath and cannot even do StringJoin. So this
works:
ThisNBPath= "";
filename="";
NotebookWrite[ InputNotebook[], Cell[ TextData[ ButtonBox[ "webmath",
ButtonEvaluator->Automatic,
ButtonData:>
{( URL[ StringJoin["file:///", ThisNBPath, filename]]),None},
ButtonStyle->"Hyperlink"]], "Text"]]
If you evaluate this, you will get a button which will send you to "My
Computer" on a Windows PC.
If you then redefine "ThisNBPath" and "filename" to
ThisNBPath="E:/Documents/";
filename="WebMath.htm";
the same button should send you to your file.
Best regards
Ingolf Dahl
Sweden
-----Original Message-----
From: Murray Eisenberg [mailto:murray at math.umass.edu]
To: mathgroup at smc.vnet.net
Subject: [mg60942]
I'm trying to build up a local file URL to be the value of ButtonData
for a ButtonBox. (The file is in a subdirectory of the current
notebook's directory, and I want to be able to refer to the target file
no matter where I move the entire directory.)
If I use an actual string as the argument in ButtonData:>{URL[...],
None}, as in the following expression of that cell, it works just fine:
Cell[TextData[ButtonBox["webmath",
ButtonData:>{
URL[ "file:///E:/Documents/WebMath.htm""], None},
ButtonStyle->"Hyperlink"]], "Text"]
However, if I try to build up the argument to URL in any way, even as in
the following version where I simply join strings, then Mathematica
reports a MathLink error occurred while receiving BoxData" after I
convertthe expression to an actual input cell and click the hyperlink:
Cell[TextData[ButtonBox[webmath",
ButtonData:>{
URL[
StringJoin["file:///", "E:/Documents/", "WebMath.htm"]], None},
ButtonStyle->"Hyperlink"]], "Text"]
What's wrong and how can it be fixed?
Version: 5.2 for Microsoft Windows (June 20, 2005)
(I actually want to do something more sophisticated, namely instead of
"E:/Documents/", use the value of a function ThisNBPath I've defined
that will return the path to the directory of the evaluation notebook.)
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305