Registering custom symbol renderer provider
The following example shows the custom symbol renderer provider, which provides the SlotRenderer for slot symbols, the PackageRenderer for package symbols, and the DependencyRenderer for a dependency link symbols. The created renderer provider must be registered into the com.nomagic.magicdraw.uml.symbols.PresentationElementRendererManager.
Step 1. Creating the RendererProvider class
/**
* A custom renderers provider.
*/
class
RendererProvider
implements
PresentationElementRendererProvider
{
private
SlotRenderer slotRenderer;
private
DependencyRenderer dependencyRenderer;
private
PackageRenderer packageRenderer;
RendererProvider()
{
slotRenderer =
new
SlotRenderer();
dependencyRenderer=
new
DependencyRenderer();
packageRenderer =
new
PackageRenderer();
}
public
PresentationElementRenderer getRenderer(PresentationElement presentationElement)
{
if
(presentationElement
instanceof
SlotView || presentationElement
instanceof
SlotListElementView)
{
// A slot renderer
return
slotRenderer;
}
if
(presentationElement
instanceof
DependencyView)
{
// dependency renderer
return
dependencyRenderer;
}
if
(presentationElement
instanceof
PackageView)
{
// package renderer
return
packageRenderer;
}
return
null
;
}
};
Step 2. Registering RendererProvider
PresentationElementRendererManager.getInstance().addProvider(
new
RendererProvider());