this.part = part;
this.property = property;
this.mouseOverEditorControl = false;
this.mouseTrackListener = new EditorControlMouseTrackListener();
final PartDef def = this.part.definition();
final List<Class<?>> contributorClasses = new ArrayList<Class<?>>();
contributorClasses.addAll( SYSTEM_CONTRIBUTORS );
final String additionalContributorsStr = def.getHint( PropertyEditorDef.HINT_ASSIST_CONTRIBUTORS );
if( additionalContributorsStr != null )
{
final ISapphireUiDef rootdef = def.nearest( ISapphireUiDef.class );
for( String segment : additionalContributorsStr.split( "," ) )
{
final Class<?> cl = rootdef.resolveClass( segment.trim() );
if( cl != null )
{
contributorClasses.add( cl );
}
}
}
this.contributors = new ArrayList<PropertyEditorAssistContributor>();
for( Class<?> cl : contributorClasses )
{
try
{
this.contributors.add( (PropertyEditorAssistContributor) cl.newInstance() );
}
catch( Exception e )
{
Sapphire.service( LoggingService.class ).log( e );
}
}
final String contributorsToSuppressStr = def.getHint( PropertyEditorDef.HINT_SUPPRESS_ASSIST_CONTRIBUTORS );
if( contributorsToSuppressStr != null )
{
for( String segment : contributorsToSuppressStr.split( "," ) )
{