package org.openscada.ae.ui.views.views.table;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.ViewerCell;
import org.openscada.ae.ui.views.model.DecoratedEvent;
import org.openscada.ae.ui.views.views.LabelProviderSupport;
public class VariantLabelProvider extends StyledCellLabelProvider
{
public static enum Decoration
{
ACTOR,
MONITOR;
}
private final String key;
private final LabelProviderSupport labelProviderSupport;
private final Decoration decoration;
public VariantLabelProvider ( final String key, final LabelProviderSupport labelProviderSupport, final Decoration decoration )
{
this.key = key;
this.labelProviderSupport = labelProviderSupport;
this.decoration = decoration;
}
@Override
public void update ( final ViewerCell cell )
{
final DecoratedEvent event = (DecoratedEvent)cell.getElement ();
if ( this.decoration != null )
{
switch ( this.decoration )
{
case ACTOR:
this.labelProviderSupport.decorateWithActorType ( event, cell );
break;
case MONITOR:
this.labelProviderSupport.decorateWithMonitorState ( event, cell );
break;
}
}
if ( this.key != null && !this.key.isEmpty () )
{
cell.setText ( this.labelProviderSupport.toLabel ( event, this.key ) );
}
}
}