Another important network is called the standard tool network and is constructed around each tool in a language environment. The standard tool network contains encapsulations of the tool, the source, and a message handling mechanism. A few generic signals (clear, terminate), circulate within this basic network. We augment the standard network for a tool with additional encapsulations according to the tool's needs. For example, given a compiler tool, we might add an encapsulation of the tool that receives the signal compile, requesting the compiler to perform its task.
Figure shows an approximation of a typical tool network. Stnodes are represented as ellipses. In this network, an encapsulated button sends the compile signal to the tool, who begins its calculation. Typically, a signal to start a computation is emitted by a graphical object (e.g., a button) that is encapsulated within the tool network. The graphical aspects of the button such as its location are independent of its communicative role.
Recall that the class of the encapsulating stnode determines the signals that the stnode receives and may send. And the same tool may be encapsulated any number of times by different classes of stnode.
While computing, the tool sends the predefined post signal that interests both the message display and source ctedit. This signal carries two values, a message object and a message identifier. The message display uses this data to display the message text. The source display uses this data to add message locations to a special message selection. The message display may emit the predefined highlight-message signal to tell the source ctedit to highlight a given message.
The source ctedit is encapsulated twice in the network. One encapsulation is predefined and concerns message needs. The other concerns functionalities offered by the tool. The tool may tell the source ctedit to highlight certain information (e.g., a variable name). This request might be transmitted by the user specified signal highlight-data. When we introduce a new functionality into a network, we tend to re-encapsulate members rather than modifying stnode classes to allow for new signals. This way, functionalities may be added, removed, or modified, without affecting one another.
The environment manual of the Mantle documents the functions that create the standard tool network and allow you to add buttons to it easily.