Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

What is the recommended way to set up definitions for or initialize a palette?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123944] What is the recommended way to set up definitions for or initialize a palette?
  • From: Szabolcs Horvát <szhorvat at gmail.com>
  • Date: Sun, 1 Jan 2012 02:28:24 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Dear MathGroup,

Suppose we need to create a palette with several buttons.
These buttons do complex tasks and need to share some functions (i.e.
there's a set of custom functions that several of the buttons might
call).  These functions may also depend on some standard packages.


Question: What is the best way to define these functions, so they can be
used by the palette?


I'd prefer to make the palette as self-contained as possible, and open
it from the Palettes menu (i.e. it is not convenient to have the palette
open as the side effect of loading a package).

Some things to point out:

  * This must work even when the kernel

  * I am not completely sure if it is necessary to use fully qualified
    names (i.e. JLink`JavaNew instead of JavaNew) in the code if the
    packages that are being used are not guaranteed to be loaded when
    the palette is opened.

  * I'm interested in both one-button and multi-button palette solutions.

-------------8<-------------

Here's a simplified example to show what I'm doing currently (this is
different code from what I have and is only for illustration).  I'm sure
there's a lot of room for improvement!

button=Button["do it!",
   Module[{},

     (* one-time initialization *)
     If[!ValueQ[myPalette`defined],

       Needs["GraphUtilities`"];

       myPalette`defined=True;
       myPalette`doIt[] := Print["done!"];
     ];

     (* button functionaliry *)
     GraphUtilities`GraphPath[{1->2},1,2]; (* use package function *)
     myPalette`doIt[];
   ]
]

CreatePalette[button]


--
Szabolcs Horv=E1t
Mma QA site proposal: http://area51.stackexchange.com/proposals/37304



  • Prev by Date: LocalizeVariables doesn't!
  • Next by Date: Re: drawing polygon diagonals
  • Previous by thread: LocalizeVariables doesn't!
  • Next by thread: Re: drawing polygon diagonals