/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.ide.eclipse.main.plugin.tableeditor.keywords;
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.model.RobotDefinitionSetting;
import org.robotframework.ide.eclipse.main.plugin.model.RobotKeywordDefinition;
import org.robotframework.ide.eclipse.main.plugin.tableeditor.TableConfigurationLabels;
public class KeywordsElementsLabelAccumulator implements IConfigLabelAccumulator {
public static final String KEYWORD_DEFINITION_CONFIG_LABEL = "KEYWORD_DEFINITION";
public static final String KEYWORD_DEFINITION_ARGUMENT_CONFIG_LABEL = "KEYWORD_DEFINITION_ARGUMENT";
public static final String KEYWORD_DEFINITION_SETTING_CONFIG_LABEL = "KEYWORD_DEFINITION_SETTING";
private final IRowDataProvider<Object> dataProvider;
public KeywordsElementsLabelAccumulator(final IRowDataProvider<Object> dataProvider) {
this.dataProvider = dataProvider;
}
@Override
public void accumulateConfigLabels(final LabelStack configLabels, final int columnPosition, final int rowPosition) {
final Object rowObject = dataProvider.getRowObject(rowPosition);
if (columnPosition == 0) {
if (rowObject instanceof RobotDefinitionSetting) {
configLabels.addLabel(KEYWORD_DEFINITION_SETTING_CONFIG_LABEL);
} else if (rowObject instanceof RobotKeywordDefinition) {
configLabels.addLabel(KEYWORD_DEFINITION_CONFIG_LABEL);
} else {
}
} else if (columnPosition > 0) {
if (columnPosition > 1 && rowObject instanceof RobotDefinitionSetting
&& ((RobotDefinitionSetting) rowObject).isDocumentation()) {
configLabels.addLabel(TableConfigurationLabels.CELL_NOT_EDITABLE_LABEL);
} else if (rowObject instanceof RobotKeywordDefinition) {
configLabels.addLabel(KEYWORD_DEFINITION_ARGUMENT_CONFIG_LABEL);
}
}
}
}