Concepts

Mind MapsŪ are the registered trade mark of the Buzan Organisation and used with enthusiastic permission



Components

The Node Component

The Node component is the element which joins Branches together. Each Branch has a Node at its beginning and end. A Mind Map always has a minimum of one node - the Root Node. A Node can have any number of Branches leaving it, and currently only one entering it. The release version should feature the ability to create cross- Branches , at which point the Node component will support multiple incoming Branches.

The Node component has styles which determine how the joins between branches appear. There is scope for considerable extension of this behaviour through custom algorithms. The present default behaviour is to allow the child Branches to be positioned freely by the user, and to draw a curve from Branch to Branch , giving an "organic" feel to the Mind Map ®.

The Branch Component

The Text Block Component

The Picture Component

Embellishment

Embellishment is the "layering" process by which components can be added to one another to create complex effects. If a component embellishes another, it generally alters the way it behaves. One example is the Link component, which can embellish another Link or a Text Block. When a Link embellishes a Link, it follows its route and has no defining points of its own. This enables one to produce multicoloured links, such as a white line down the middle of a thicker black branch to signify a road. When a Link embellishes a Text Block. , on the other hand, it follows the text 's outline, giving the text a border.

Conversly, when a Text Block embellishes a branch , it is normally curved to fit the route of the branch . This is a unique feature of HeadCase and a major advance in Mind Mapping ® software.

Some components have no independent existence and can only exist as embellishments. Examples of these are the Fills, such as Faded Fill. Fills require an area into which to draw. If a Fill embellishes a Text Block , for instance, it paints the area within the text with its characteristic Fill pattern.

Aggregation

Aggregation is simply the adding of one component to another to create a parent-child relationship. A text block can be added to a Picture , for instance, and then when the picture is moved the Text Block moves with it.

Extensibility

The heart of HeadCase is extensibility through ActiveX. HeadCase creates Mind Maps ® by taking a range of fairly simple components and then layering and combining them through embellishment and aggregation . In this way, shapes and effects of enormous complexity are made possible. Each component must support a range of public interfaces which define certain behaviour, such as drawing and position. HeadCase itself only expects components to support interfaces, and knows nothing about the components' internal behaviour. It retrieves a list of registered components at start-up and makes them available to the user. In this way, it can be extended after delivery through custom plug-ins from third parties.

An example of a planned plug-in is the Scattergram component. This embellishes a component with an area or an outline, and is itself embellished by a component that has a position. It then walks through the area or outline of its subject, and at intervals draws its embellishment . A string of beads along a branch , or text made up of pictures of flowers are two possible applications.

Another example is the Echo component. Rather than give each component its own ability to draw a drop-shadow, the Echo component embellishes all components with an outline with such a capacity. Rather than a single drop-shadow, it provides the capacity to "echo" that outline at intervals and draw and fill the new outline with more embellishments . So you could have a receding series of ever-smaller shapes with fainter colours, for example.

Parent-Child Relationship

HeadCase builds up Mind Maps ® by adding simple components together. The most basic Mind Map ® possible is a bare node with no branches or text. When BOI's are added to this core, they become children of the node. Similarly, if a free-standing text block is added to a node, it becomes a child of the node. A text block or picture can in turn be added as a child of the new text block.

A child of a Mind Map component is positioned relative to its parent, meaning that the children can be moved about with the parent as a unit. Say a picture has a text block as a child, the text block being positioned across the bottom of the picture. If the picture is dragged to a new position using the mouse, the text block will move along with the picture, remaining along its bottom. Conversely, if the text block itself is dragged, the picture remains where it is.