Creating a checklist of items using composites


(Jake Bernstein) #1

I’d like to create a checklist using Tinderbox (instead of what I would typically do, which is just type it in Bear or something). But I find when I create a list composite, there’s no way (it seems) to add notes directly to the composite. This makes continuing a list very cumbersome. Am I missing something? Thanks!


(Jake Bernstein) #2

Partially going to answer my own question: use Outline view. Duh.

But I’m still curious to see what’s said about this topic.


(Jake Bernstein) #3

Actually never mind, I haven’t answered my question – outline view would create containers in Map view. I don’t want containers. I do want composites. Help welcome!


(Paul Walters) #4

Command-click a member of a composite to access its text and key attributes.

BTW, composites work best on maps – they are a visual structure.


(Jake Bernstein) #5

I got that far. What I would like is when I press “Return” to create a new Note while within a composite that it create the next note with the same attributes as the previous one. So I can create a “list” composite and rapidly enter data into the list.

Does that make sense?


(Nick Gordon) #6

Don’t Composites have an OnJoin action? Couldn’t you use that to set attributes?

Apologies if I’m seeing you on a wild goose chase


(Mark Anderson) #7

Although Tinderbox has a built-in ‘list’ composite, you might want to extend than a bit, as it doesn’t - for instance use any prototypes.

Setting a list-item prototype seems an obvious enhancement, if applied to the ‘item’ note in the master composite for ‘list’. If the latter’s $OnJoin were set to apply the same prototype to the joining item that might make set-up easier (Note: I’ve not had time to test this idea).

@Jake_Bernstein, note that composites are very new Tinderbox feature and still bedding down - i.e. there’s room for feature improvement. So if you’ve ideas for such improvement, such as being able to add a new note to the composite under/next to the selected item, I suggest emailing Eastgate with an explanation of the concept and how you see it being used.


(Paul Walters) #8

I’m not comprehending. The built-in “List” composite has two notes – “(header)” and “(item)”. Does your comment mean that if you have “(header)” selected and press return that you get another instance of “(header)” – or would you get another instance of the “List” composite? Or something else?

Maybe you want to consider creating a new prototype of your own that has the same key attributes as the notes that comprise the built-in “List” composite – or other attributes you might find useful. Make that prototype the prototype of the root container of your list, or use an OnAdd action for that container. That way, every child will be assigned that prototype – when you “press return” you’ll get a new note with the attributes you want to use. I think this is the “standard” way of making a list of notes that have the same attributes – at least, over here, I’ve been making lists this way for a very long time. No need to involve composites in this process.

To take that further - prototypes can have a child hierarchy. So a prototype can mimic a composite if that prototype, call it “Header”, comprising a “Header” note and an “Item” note. If you have a container whose OnAdd action is $Prototype="Header";, then adding a note to that container will add an instance of “Header” and that note will have an “Item” child. If “Item” is also a prototype (with its own set of key attributes different than “Header”'s key attributes), and the OnAdd action for “Header” is $Prototype="Item";, then for every child of “Header” you create in your list, you get a new instance of “Item”.


(Jake Bernstein) #9

[quote=“mwra, post:7, topic:1088”]
Setting a list-item prototype seems an obvious enhancement, if applied to the ‘item’ note in the master composite for ‘list’. If the latter’s $OnJoin were set to apply the same prototype to the joining item that might make set-up easier (Note: I’ve not had time to test this idea).[/quote]

Yes, I actually set up a “listItem” prototype right away. And I am working on the $OnJoin action.

Good suggestion! Will do.


(Jake Bernstein) #10

:scream:

I’ll try to mock up some screenshots.


(Mark Anderson) #11

I experimented with this briefly this morning - without joy. I was trying to get $OnJoin to set a prototype for the newly-joining note but couldn’t get it to work. I think it should but this particular aspect of OnJoin may have some sort of scheduling issue (in terms of the order/speed with which the change is applied).