| 
 | Allegro CL version 8.2 Unrevised from 8.1 to 8.2. 8.1 version | ||||||||||
A non-instantiable class that can be mixed with the grid-column class to create grid
columns whose cells draw lamp widgets. Each cell in the column will
display a lamp if the row of that cell is an instance of a grid-row subclass that mixes in the
widget-row-mixin class.
To ensure that this mixin class' methods take precedence over other methods that specialize on grid-column, this mixin class generally should appear first in a defclass expression's list of superclasses, as in:
(defclass my-lamp-column (lamp-column-mixin my-subclass-of-grid-column) ...)
The draw-cell method provided
by this mixin will draw (in each cell) the single lamp widget that is
the value of the lamp-widget
property of the grid column.  It will call read-cell-value to determine the state of the
lamp (off, on, or blinking) in each cell. The grid column may be given
a data-read-converter function
to convert arbitrary application values into corresponding lamp state
values (nil, t, and
:blinking).
The grid column may be given a title-reader property to determine the string to
display in each lamp cell.  If there is no title-reader function or it returns nil, then no label will be displayed beside the lamp
image (and the lamp image will be centered within the grid cell).
Here is a typical expression for creating a lamp grid column.  It
assumes that the data-object of each grid-row has a slot called danger-level
containing one of the values :low,
:moderate, or :high.
(make-instance 'my-lamp-column
  :name :danger-level
  :proportional nil
  :section-size 24
  :data-reader 'danger-level
  :data-read-converter (lambda (user-value)
                         (case user-value
                           (:low nil)
                           (:moderate t)
                           (:high :blinking)))
  :lamp-widget (make-instance 'lamp
                 :on-color red
                 :lamp-shape :triangle
                 :lamp-width 16
                 :lamp-height 12))
The Employee grid example in the Navigator Dialog includes a lamp column.
See the section Built-In Grid Cell Widgets on the page for the
grid-widget class for an
overview of the grid column mixins.
A quicker but less object-oriented alternative to using the widget-column-mixin classes is to
write cell-widget methods.
See the lamp widget.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.1 page.
Created 2010.1.21.
| 
 | Allegro CL version 8.2 Unrevised from 8.1 to 8.2. 8.1 version | ||||||||||