I've now added the following in CVS:
(a) If you ctrl-click, shift-click or swipe in the main window to
select more than one series, then right-click, one of the options is
"Define list". Choose this, type in a name, and you've got a list.
(b) In the model specification dialog, named lists are shown along
with series in the left-hand "available vars" box.
This is not yet in the snapshots for Windows and OS X; I'd like to
see a little testing first.
A few design decisions arose:
(1) How should lists be visually distinguished from series in the
selector? I could colorize list names, but right now they appear in
bold face. This seemed to me slightly more suggestive of what's
going on (list = bulkier object than series).
(2) Where should lists be placed in the selection box? I've placed
them after the constant (which by gretl convention always comes
first, if applicable) but before the series. My thinking is that
lists in the GUI are likely to be most useful when the dataset
contains many series, in which case you wouldn't want to have to
scroll down past all the series to find your lists.
(3) What should happen with the business of "pre-select the first
variable on the left" (skipping the constant) in the selection box?
(I mean, when you open the dialog, one series is already selected
for you.) Well, the rationale for this is that the most efficient
way of using the model spec dialog from scratch is: first
double-click on your dependent variable, then swipe and right-click
to define a set of independent variables -- and in many datasets the
first series is the one that one is likely to wish to take as
dependent. Since a list can't serve as dependent variable I've made
it so that the first plain series is pre-selected.
(4) This is larger: What should happen on the right when one clicks
a list from the left into a right-hand side box? The most basic
question is, should the list be cashed out into its member series,
or should it appear on the right as a single element? Right now,
it's the former: you see the member series names on the right. There
are things to be said on both sides of this; let me elaborate.
First, cashing out the list right away is least disruptive of the
current functionality in the C code module that supports the model
spec dialog. We check that the list truly exists and contains valid
series ID numbers, then from that point on it's just as if the user
had put in the list-member series individually.
One might think that keeping the list as a list on the right would
make things cleaner for the user -- a shorter, easier-to-read
display on the right; and one could select a list and pull it out
again if one wanted. But this would raise several other design
problems; here are two examples:
* What if the box on the right already contains one or more of the
series in a list that is added subsequently? Right now it's easy: in
adding a list, we in fact add only those series that are not already
present. If we were to represent the list as a list on the right,
we'd have to kick out any duplicated series. Then what if you remove
the list? Should we put the duplicated series back in?
* The lag selection mechanism: how should lists be handled in that
context? (Hint: it's already very complicated.)
--
Allin Cottrell
Department of Economics
Wake Forest University