Re: Dynamically defined URL
- To: mathgroup at smc.vnet.net
- Subject: [mg60937] Re: Dynamically defined URL
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Tue, 4 Oct 2005 01:25:02 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <001101c5c827$08b0a040$996f1081@fy.chalmers.se>
- Reply-to: murray at math.umass.edu
- Sender: owner-wri-mathgroup at wolfram.com
Yes, that works perfectly. Thank you!
Ingolf Dahl wrote:
> 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
> Sent: 03 October 2005 10:06
> Subject: [mg60937]
>
> 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