/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.red.nattable; import org.eclipse.nebula.widgets.nattable.data.IRowDataProvider; import org.eclipse.nebula.widgets.nattable.layer.LabelStack; import org.eclipse.nebula.widgets.nattable.layer.cell.IConfigLabelAccumulator; import org.robotframework.ide.eclipse.main.plugin.tableeditor.TableConfigurationLabels; import org.robotframework.ide.eclipse.main.plugin.tableeditor.dnd.PositionCoordinateTransfer.PositionCoordinateSerializer; import com.google.common.base.Predicate; public class AssistanceLabelAccumulator implements IConfigLabelAccumulator { private final IRowDataProvider<?> provider; private final Predicate<PositionCoordinateSerializer> positionPredicate; private final Predicate<Object> rowObjectPredicate; public AssistanceLabelAccumulator(final IRowDataProvider<?> provider, final Predicate<PositionCoordinateSerializer> positionPredicate, final Predicate<Object> rowObjectPredicate) { this.provider = provider; this.positionPredicate = positionPredicate; this.rowObjectPredicate = rowObjectPredicate; } @Override public void accumulateConfigLabels(final LabelStack configLabels, final int columnPosition, final int rowPosition) { if (positionPredicate.apply(new PositionCoordinateSerializer(columnPosition, rowPosition)) && rowObjectPredicate.apply(provider.getRowObject(rowPosition))) { configLabels.addLabel(TableConfigurationLabels.ASSIST_REQUIRED); } } }