| Bread crumbs provide a means to track certain history of client actions.
Bread crumbs are typically rendered as a list of links, and are useful when
users 'dig deeper' into the site structure so that they can find their way
back again and have a notion of where they currently are.
Bread crumbs in the original sense just represent where people are in a site
hierarchy. For example, when browsing a product site, bread crumbs could look
like this:
Home > Products & Solutions > Hardware > Desktop Systems
or
World > Europe > The Netherlands > Utrecht
These items would be rendered as links to the corresponding site location.
Classes that implement this interface are responsible for managing such a
bread crumb structure. A
BreadCrumbBar typical implementation regards
bread crumbs as a stack. When
IBreadCrumbModel.setActive(IBreadCrumbParticipant) a bread crumb is activated that
was not in the stack yet, it would add it to the stack, or when a bread crumb
is activated that is already on the stack, it would roll back to the
corresponding depth.
This model does not make any presumptions on how it should interact with
components. Just that there is a list of
IBreadCrumbParticipant bread crumb participants , and the notion of a
currently active bread crumb participant.
A
IBreadCrumbParticipant bread crumb participant is not an actual
bread crump, but rather a proxy to components that represent a certain
location relative to other bread crumbs in this model, and a means to get the
bread crumb title, which is typically rendered as a link label of the actual
bread crumb. The actual bread crumbs are supposed to be rendered by a
component that works together with this model. I choose this model as this
would suit what I think is one of the nicest patterns:
BreadCrumbPanel bread crumb aware panels .
author: Eelco Hillenius |