|Tinderbox User's Manual : Prototypes|
Prototypes let you specify the default value for an entire class of notes. You specify one note as the prototype and tell Tinderbox to use the prototype for the other notes of that type. Then, whenever Tinderbox checks an attribute that you haven't specifically set, it will use the value from the prototype. Change an attribute in a prototype and you change it for the notes that use that prototype. A note inherits all attributes from its prototype except Created, Modified, Height, Width, XPos, and YPos.
Prototypes are an advanced feature -- you may not need to use them -- but they're powerful time-savers for complex projects.
To create a prototype,
This new note can now be a prototype for other notes.
In outline view the note icon for notes which can serve as prototypes is surrounded by a light green circle.
To use a prototype,
Your note will now use the selected prototype: it will inherit the values for most of its attributes from the prototype note. When you change the value of any of those attributes in the prototype, the value of that attribute in all of the notes that use that prototype will change as well.
Tinderbox notes inherit from their prototype; when you give a note a prototype, you’re telling Tinderbox, "this note is just like its prototype, except for the differences I tell you about."
Whenever Tinderbox looks up the value of an attribute, it reviews the following checklist:
Notice that a note’s own values always override inheritance. Suppose that PrototypicalTask is gray. We create a new note called TodaysMeeting that inherits from PrototypicalTask. Initially, TodaysMeeting inherits everything from its prototype, so it’s gray, too. But if we set the Color of TodaysMeeting to blue, it turns blue. Other tasks remain gray.
Now, we make yet another note, ConferenceCall, which also inherits from PrototypicalTask. It, too, is gray, because PrototypicalTask is gray. But perhaps we’d like all tasks to be green; we change the Color of PrototypicalTask to green. Now, ConferenceCall turns green, because it inherits its Color from the prototype. TodaysMeeting remains blue, because you gave it a specific color; a note’s own values always take precedence over inheritance.
Any note can serve as a prototype for other notes. You don’t need to define prototypes in advance, and you should feel free to create new prototypes as your needs change.
Prototypes save typing. As you take notes, you may find that you sometimes repeat yourself, setting up a series of similar notes that describe similar sorts of things — people, or references, or issues you want to discuss with your staff. Prototypes can help you capture the common elements, making it easier and more pleasant to create notes.
A note can only have one prototype, but each prototype can be used by many different notes.
Prototype inheritance in Tinderbox is extremely efficient; don’t worry about memory or performance when using prototypes.
If a prototype is a container, then notes that use the prototype will "inherit" copies of the prototype’s children. For example, if PrototypeArticle contains separate notes for AuthorInformation and Text, then making a note into an instance of PrototypeArticle will create new notes inside the article to hold the author information and the text of the article.
Note that these “inherited” notes are created at the time the prototype is assigned; adding or removing children to the prototype at some later time will not affect notes that already use the prototype.
Inheritance of prototype notes is controlled by the attribute,
PrototypeBequeathsChildren. By setting this attribute to false for a specific prototype, passing of children to new instances of the prototype may be disabled. By setting the default value of PrototypeBequeathsChildren to false, the feature may be disabled throughout the document (unless specifically overridden by a prototype that wants to use it).
|Up: Tinderbox User's Manual|
|Previous: Attributes||Next: The Toolbar|