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
  • Subject: [mg123944] What is the recommended way to set up definitions for or initialize a palette?
  • From: Szabolcs Horvát <szhorvat at>
  • Date: Sun, 1 Jan 2012 02:28:24 -0500 (EST)
  • Delivered-to:

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.


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!",

     (* one-time initialization *)


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

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


Szabolcs Horv=E1t
Mma QA site proposal:

  • 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