MathGroup Archive 2009

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

Search the Archive

Re: Can nobody help me? Re: selecting a column in a grid

  • To: mathgroup at smc.vnet.net
  • Subject: [mg98312] Re: Can nobody help me? Re: selecting a column in a grid
  • From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
  • Date: Sun, 5 Apr 2009 06:40:22 -0400 (EDT)
  • References: <gr6c5c$ppo$1@smc.vnet.net>

Hi Paul,

Cool down ;-) Try this for inspiration:

Dynamic[clickpos]
Grid[
 Table[
  DynamicModule[
   {col=Black, pos = {i, j}},
   EventHandler[
    Style[RandomInteger[{0, 1000000}], FontColor -> Dynamic[col]],
    {"MouseDown" :> (clickpos = pos; col = Red),
     "MouseUp" :> (col = Black)}
    ]
   ], {i, 5}, {j, 5}]
 ]

Cheers -- Sjoerd

On Apr 4, 3:12 am, "Paul Ellsmore" <paul.ellsm... at nanion.co.uk> wrote:
> The key point in this problem is that the columns are not equal widths, a=
nd
> in fact are variable width, depending on the particular data displayed. S=
o I
> set ItemSize to automatic, so that each column width is defined by the da=
ta.
> The trouble is that MousePosition gives me coordinates that are a linear
> function of the position in the grid, but the columns are not linearly
> spaced in the Grid, so how do I know which column the mouse is in?
>
> I need one of three things, all three of which are beyond my skills:
>
> 1) I could get the actual values that ItemSize is set to when Automatic i=
s
> used. CurrentValue[ItemSize] doesn't work. Anyone got an alternative?
> 2) I could calculate what values ItemSize will be set to by looking at th=
e
> type and  number of characters in each grid cell, knowing the font size=
,
> font family, cell margins, frame linewidth etc. But I don't have access t=
o
> the information needed - how many pixels does a Courier Size 10 "n" take =
up?
> 3) I could use EventHandler in a better way. Currently I wrap it around t=
he
> whole Grid, but if I could wrap it around a cell, that would work for me.=
 No
> syntax that I have tried works - should I try using GridBox, or is there =
an
> obvious better idea?
>
> Nobody got any ideas at all? What kind of language is this, where you can=
't
> even select a column in a table?
>
> Cheers,
>
> Paul.
>
> -----Original Message-----
> From: Paul Ellsmore [mailto:paul.ellsm... at nanion.co.uk]
> Sent: 01 April 2009 11:55
> Subject:  selecting a column in a grid
>
> Hi,
>
> I have a tricky problem with a graphical user interface. I have a grid of
> data, and I want to be able to MouseClick in the grid to either select a =
row
> or a column. Using GUIKit, this is trivial, but I want to be able to
> distribute my program using PlayerPro, which won't support GUIKit.
>
> Selecting a row is straightforward using EventHandler and
> EventHandlerScaled, since I know how many rows there are and they are all
> one line in height. However, the column widths change according to the da=
ta,
> since I have set ItemSize to Auto. So is there some way of retrieving the
> actual values used in ItemSize, when Auto is used? I have tried
> CurrentValue[ItemSize] in many variations, but it always fails.
>
> I could, of course, look at the data that will be in the grid, and comput=
e
> the widths of each column accordingly, and synthesize the values that
> ItemSize will take. To do that, though, I would need to know what the pix=
el
> width of a particular text string will be, which varies with font family,
> size etc. Is there an easy way to do this? This is essentially what
> Mathematica does when ItemSize is set to Auto, but I have no idea how to =
do
> it myself.
>
> Currently I have EventHandler wrapped around the whole grid. Is it possib=
le
> to wrap it around each individual cell in a grid? I have tried a few idea=
s,
> but they don't seem to work. The documentation suggests that EventHandler
> can be wrapped around any expression, but that doesn't seem to be the cas=
e,
> or at least the wrapped expression doesn't seem to display properly insid=
e
> other constructs, such as Grid, Column etc.
>
> Is there some better approach I could take, rather than using EventHandle=
r?
>
> All ideas gratefully received.
>
> Cheers,
>
> Paul.
>
> Dr. Paul A. Ellsmore
>
> Nanion Limited
>
> Oxford Centre for Innovation
>
> Mill Street
>
> Oxford
>
> United Kingdom
>
> OX2 0JX
>
> Tel: +44 (0) 1865 811175
>
> Fax: +44 (0) 1865 248594



  • Prev by Date: Re: Re: Joust in Mathematica
  • Next by Date: Computing resources
  • Previous by thread: Can nobody help me? Re: selecting a column in a grid
  • Next by thread: RE: Re: Can nobody help me? Re: selecting a column in a grid