public Font getFont( Object element )
{
IAttribute attribute = null;
IValue value = null;
if ( element instanceof IAttribute )
{
attribute = ( IAttribute ) element;
}
else if ( element instanceof IValue )
{
value = ( IValue ) element;
attribute = value.getAttribute();
}
// inconsistent attributes and values
if ( value != null )
{
if ( value.isEmpty() )
{
FontData[] fontData = PreferenceConverter.getFontDataArray( BrowserUIPlugin.getDefault()
.getPreferenceStore(), BrowserUIConstants.PREFERENCE_ERROR_FONT );
return BrowserUIPlugin.getDefault().getFont( fontData );
}
}
if ( attribute != null && value == null )
{
if ( !attribute.isConsistent() )
{
FontData[] fontData = PreferenceConverter.getFontDataArray( BrowserUIPlugin.getDefault()
.getPreferenceStore(), BrowserUIConstants.PREFERENCE_ERROR_FONT );
return BrowserUIPlugin.getDefault().getFont( fontData );
}
}
// attribute type
if ( attribute != null )
{
if ( attribute.isObjectClassAttribute() )
{
FontData[] fontData = PreferenceConverter.getFontDataArray( BrowserUIPlugin.getDefault()
.getPreferenceStore(), BrowserUIConstants.PREFERENCE_OBJECTCLASS_FONT );
return BrowserUIPlugin.getDefault().getFont( fontData );
}
else if ( attribute.isMustAttribute() )
{
FontData[] fontData = PreferenceConverter.getFontDataArray( BrowserUIPlugin.getDefault()
.getPreferenceStore(), BrowserUIConstants.PREFERENCE_MUSTATTRIBUTE_FONT );
return BrowserUIPlugin.getDefault().getFont( fontData );
}
else if ( attribute.isOperationalAttribute() )
{
FontData[] fontData = PreferenceConverter.getFontDataArray( BrowserUIPlugin.getDefault()
.getPreferenceStore(), BrowserUIConstants.PREFERENCE_OPERATIONALATTRIBUTE_FONT );
return BrowserUIPlugin.getDefault().getFont( fontData );
}