TimelineBandLabels in Timeline View and as KeyAttribute

Timeline View is a huge and valuable feature.

There are, however, two things about it I haven’t quite figured out yet.

First Thing

I set TimelineBand as KeyAttribute. There I can decide in which TimelineBand a certain is supposed to appear. (Let’s say we have three TimelineBand = 0,1,2)

I then set TimelineBandLabels as KeyAttribute as well. Because: I want to name those TimelineBands. (Let’s say: 0 = Here; 1 = There; 2 = Everywhere.

First-Thing-Question

How would an if-else-rule look like when I wanted Tinderbox to automatically assign:

  • the TimelineBandLabel “Here” when the TimelineBand is “0” is set OR
  • the TimelineBandLabel “There” when the TimelineBand is “1” is set OR
  • the TimelineBandLabel “Everywhere” when the TimelineBand is “2” is set.

Second Thing

Second-Thing-Question

Why are those TimelineBandLabels not available in Timeline View? Tinderbox does place the events in accordance to the TimelineBand value I set! Fine!

But the TimelineBandLabels do not appear. One has to enter them manually. To do that, one has to switch to the View Timeline (from the View Menu) an the click on the little “i”-icon in the Timeline-View-Tab. There, under “Labels” one can manually enter the TimelineBandLabels.

It’s interesting, though, that only those values entered in “Labels” become available in TimelineBandLabels. (But again: It does not seem to work the other way around.)

Any ideas how to go about solving the First and the Second Thing?

$TimeLineBandLabels is set once for each timeline view – it is not set on note-by-note basis. Labels apply to the band not the note. You can set the values for the labels in the system attributes inspector or the Timeline inspector using a string such as here;there;everywhere which will apply to bands 0,1,2, respectively.

I know you can change $TimeLIneBandLabels in the KA for a given note, for example, but it doesn’t “take”. I think being able to add/edit labels at the note level is maybe a bug – since the labels should be set only in the system attributes or the Timeline inspector.

1 Like

Thanks, @PaulWalters, for your quick reply.

It’s interesting that you

think being able to add/edit labels at the note level is maybe a bug.

I even think it should be a feature! For: Who can remember all the $TimelineBandLabels corresponding $TimelineBand-numbers? I can’t! For me – while creating new notes – it would be easier to assign TimelineBandLabels instead of assigning TimelineBand-numbers. But that’s probably just me.


What works - so far

Anyway. Here is what in the meantime I came up with (thanks to @mwra’s inspirational entry for “List/Set.at(N)” on aTbRef):

$TimelineBandLabels = "xx;yy;zz".at($TimelineBand);

That means: I had to hard-code “xx;yy;zz”.

That works quite alright.


What still could be improved

What I would have loved, however, is to access the $TimelineBandLabels-List like so:

$TimelineBandLabels = $TimelineBandLabels.at($TimelineBand);

But I couldn’t manage to get access to this very list.


Ideas?
Cheers!

I think @PaulWalters’ description is correct. Each note (container) can host a timeline view and each such view can have its own setting. Meanwhile a Timeline by default includes all descendants (see here). Thus if you edit a note’s KA for $TimelineBandLabels you are not editing the current timeline view, but rather any timeline view based on the currently edited note. To edit the $TimelineBandLabels of the current timeline view you need to edit that view parent container. As the latter is not necessarily the parent of the currently focused note but may be several outline levels up, the simplest way to edit this value is (as PW already pointed out) via the Timeline properties dialog which is accessed by right clicking the view pane or pressing the ‘i’ icon on the view’s tab on the tab bar above the view panes.

I think the OP is also confusing the List-type attribute $TimelineBandLabels that applies to all bands in the current view with the discrete label used for the band to which the current note is allocated. There is no attribute for the latter. A user attribute could be created for that and populated as has been described.

I think the numbered bands is an accident of birth as IIRC, TimelineBands were added (as an attribute) before custom band labels were added.

I’d agree that the actual label is more useful for (most) users than the band numbers, though the latter allows more easily for some calculation based on band numbers.

As a note could be in band zero in one view and band 6 in another, and differing views can have differing labels, the notes band label will vary by view context!

So I don’t see a bug here, just a misassumption as to how timeline view works.

That makes perfect sense, @mwra. Thank you both, @PaulWalters and @mwra, for the clarification.