Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

Re: GUIKit - ScrollPane Tables within Wizard

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53044] Re: [mg52852] GUIKit - ScrollPane Tables within Wizard
  • From: Jeff Adams <jeffa at wolfram.com>
  • Date: Tue, 21 Dec 2004 05:19:23 -0500 (EST)
  • References: <200412150926.EAA10576@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On Dec 15, 2004, at 3:26 AM, paulw at cwgsy.net wrote:

> Hi,
>
> I am having a few problems getting Widget["Table"] to work how i want
> within a Widget["ScrollPane"] when constructing a wizard. The Table
> needs columns for; Name, Colour, Move up, Move down. Basically a list
> of objects with associated colours and the ability to move up/down in
> the order.
>
> The first thing I have tried to do is resize the table columns
> automatically to fit the column headers(or largest entry in the column)
> so that the tables are more appropriately distributed.
>
> However, there does not appear to be a command to adjust column width,
> only to change the defaut AutoResize from 2(fill screen evenly) to 0
> (leave at default size and use horizontal scroll bar).
...

Hello,

To answer the first question in this email separately...

One way to adjust column widths in a table is to set the 
"PreferredWidth"
  and/or "MinWidth", "MaxWidth" and "Resizable" properties on the columns
of the table. The column widgets of a table are available through the 
"ColumnModel"
of the table.

To illustrate this with an example notice the default behavior of the 
table column
width choices that evenly distributes spacing:

  GUIRun[
   Widget["Panel", {
       Widget["ScrollPane", {
           "PreferredSize" -> Widget["Dimension", {"Width" -> 300, 
"Height" -> 110}],
           "ViewportView" -> Widget["Table", {
                 "Items" -> {{"A", True, "A longer column value"}, {"B", 
False,
                    "Another  longer column value"}},
                 PropertyValue["Model", Name -> "myTableModel"],
                 SetPropertyValue[{"myTableModel", "ColumnIdentifiers"},
                   {"Index", "Active", "Description"}]
                 }, Name -> "myTable"]
           }]
       }]
   ]

We would really like to have the Description column use most of the 
spacing and the
boolean checkbox column does not need to be resizable from the user 
standpoint since it doesn't
take up much space.

Below I show through an extra setup Script how you can get access to 
the column widgets of
the table and then use various combinations of the "PreferredWidth",
"MinWidth", "MaxWidth" and "Resizable" properties to control not only 
whether a column is resizable
but ranges of valid widths that the user can use:

  GUIRun[
   Widget["Panel", {
       Widget["ScrollPane", {
           "PreferredSize" -> Widget["Dimension", {"Width" -> 300, 
"Height" -> 110}],
           "ViewportView" -> Widget["Table", {
                 "Items" -> {{"A", True, "A longer column value"}, {"B", 
False,
                    "Another  longer column value"}},
                 PropertyValue["Model", Name -> "myTableModel"],
                 SetPropertyValue[{"myTableModel", "ColumnIdentifiers"},
                   {"Index", "Active", "Description"}],
                 PropertyValue["ColumnModel", Name -> "columnModel"],
                 Script[
                   col = PropertyValue[{"columnModel", "Column", 1}];
                   SetPropertyValue[{col, "PreferredWidth"}, 50];
                   SetPropertyValue[{col, "MaxWidth"}, 50];
                   SetPropertyValue[{col, "Resizable"}, True];
                   col = PropertyValue[{"columnModel", "Column", 2}];
                   SetPropertyValue[{col, "PreferredWidth"}, 50];
                   SetPropertyValue[{col, "MaxWidth"}, 50];
                   SetPropertyValue[{col, "MinWidth"}, 50];
                   ]
                 }, Name -> "myTable"]
           }]
       }]
   ]


Jeff Adams
Wolfram Research


  • Prev by Date: Re: Primes (again)
  • Next by Date: Re: Re: How input stacked characters with vertical bar
  • Previous by thread: GUIKit - ScrollPane Tables within Wizard
  • Next by thread: Re: GUIKit - ScrollPane Tables within Wizard