Procedure — Registering the BreadCrumbDelegate
To register your BreadCrumbDelegate you must add it to the list of delegates contained in the wt.property “com.ptc.windchill.enterprise.navigation.breadcrumb.BreadCrumbDelegate.” This property is defined as follows:
<Property name="com.ptc.windchill.enterprise.navigation.breadcrumb.BreadCrumbDelegate" multivalued="," default= "com.ptc.windchill.enterprise.navigation.breadcrumb. FolderedBreadCrumbDelegate" />
The default delegate, FolderedBreadCrumbDelegate, is the delegate that will be called if no other delegate claims a page. The value of the default delegate is hard-coded and cannot be changed. Changing the value in the property will have no effect.
Additional delegates may be added to the delegate list in a custom or module-specific *.xconf file using the AddToProperty tag. For example:
<AddToProperty name="com.ptc.windchill.enterprise.navigation.breadcrumb.BreadCrumbDelegate value="com.ptc.windchill.enterprise.navigation.breadcrumb.
WorkspaceBreadCrumbDelegate~10"/>
You can optionally assign a priority to a delegate, as shown above, by appending a ‘~’ followed by a priority value to the delegate class name. A priority value may be any number less than Integer.MAX_VALUE; the lower the number, the higher priority. To see the priorities of existing delegates you can look at the composite property value in <Windchill>/codebase/wt.properties.
The BreadCrumbDelegateFactory will call the canHandle() methods of delegates in priority order until it finds one that responds affirmatively. Therefore, if there are multiple delegates that could generate the crumbs for a given page, the one with the highest priority will be used. If multiple delegates have the same priority, they will be called in random order. The canHandle() method of delegates which do not have a “~<priority>” suffix will be called last, in random order.