Attach allows you to move information from one object or group of
objects into the for another object. This is useful for viewing
convenience, printing, and dumping. Attach is complex but extremely
powerful; we recommend learning about it via experimentation. It is
still being developed and will probably be extended to include
- the text window into which you are importing data.
- the object or class from which you are importing data
- Attach: invokes tag
chooser corresponding to selected donor(s); you must pick branch
from donor to import into acceptor. The tag chooser is a blocking
window; you must respond to it with a selection or CANCEL to continue.
- Detach: remove attached data from selected donor;
you must collapse and expand the relevant tag in the acceptor for this
to take effect. See help for text windows
for an explanation of collapse/expand.
- Attach Recursively: invokes tag chooser
corresponding to selected donor; you must pick branch from donor to
import into acceptor. Recursively means donor refers to a
donor which refers to a donor... and you want to import this entire
data chain into the acceptor.
- Help on attach: brings up this help.
Making an attachment
1. First you must choose a single or group of donor objects from which
to retrieve information. Do this by selecting (clicking once) on a
tag or object in the acceptor window. If you click a tag, ACE looks to
the right to determing the object or objects in the donor
class(es). Note that data in a text window is
arranged in a branching structure which functions as a hierarchical
outline. A tag identifies all objects "under" it as potential
2. Second, you must choose which part of the donor to retrieve.
- If a tag is flanked on the right by another tag, ACEDB continues
rightward until it finds a valid object. It must find the first
valid object on the first line or else the attachment will fail
with an error.
- If additional data lies to the right of the donor object in the
acceptor, the attachment operation fails for that object.
Select "Attach" from the pull-down "Attach..." menu (see below for
"Attach Recursively"). A tag chooser
window will appear. The tag chooser shows the layout of the donor
class. In cases where a tag identifies donors from different classes,
the tag chooser shows the class for the donor on the same line as the
Again, data in objects is arranged in a branching structure which
functions as a hierarchical outline. To identify a branch or
sub-branch to import, double-click on a tag or field. Choose a tag if
you want to import the branch it defines, i.e., the tag itself as well
as everything "indented" under that tag.
Choosing a field gives a different effect. ACEDB identifies the branch
that contains the field by looking leftward until it encounters a
tag. But instead of importing the entire branch, only the part of the
branch that contains the field of interest is taken.
The tag chooser will only show a single class. However, if your donors
come from different classes, ACEDB will silently examine them to see
if they contain a branch like the one you chose in the tag-chooser.
As soon as you double-click, the tag chooser will disappear.
3. Third, the donor you originally selected will now be collapsed
(indicated by arrow and number). Uncollapse it by clicking once to see
the attached information. See help for text
windows for more information about collapse/expand.
- you can now choose other donors in the acceptor and import
information from them by repeating the steps above. Donors may
be chosen from newly attached information.
- no data appears if the donor object(s) lack the information
you are trying to import.
- no data appears for a donor if it is flanked on the right
in the acceptor by other information.
To remove imported information, pick the donor in the acceptor window
and select the "Detach" item from the menu. The information will still
be visible in the acceptor until you collapse and expand the donor by
clicking on it. If a text window opens instead, that's because you
clicked on an object name. Try collapsing and expanding a tag to the
donor's left instead.
In some cases objects are linked together in a recursive fashion. For
example, in a cell lineage a particular cell may have one or more
daughters, each of which may have daughters, and so on. A recursive
attachment allows you to follow these links and import information
from them into the same acceptor window.
to Table of Contents
last edited: July 1994