# ====================================================================
# Copyright (c) 2007, 2021 THALES GLOBAL SERVICES
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#    Obeo - initial API and implementation
# ====================================================================

pluginName = Sirius Table Runtime
providerName = Eclipse Modeling Project

constraint.bothCellEditorEditLabelTool.description = Validate that a FeatureColumn does not have both CellEditor and LabelEdit tools.
Constraint_bothCellEditorEditLabelTool_message = Both CellEditor tool and LabelEdit tool are defined in the FeatureColumn {0}. In this case, only CellEditor tool will be considered. To avoid confusion, it is preferable to define only one tool.
constraint.bothCellEditorEditLabelTool.name = Conflict between CellEditor and EditLabel tools
ContributionTrakingIdentifier_ElementWithoutMatchingData = Internal error: contributed element has no matching contribution data.
DTableSynchronizerImpl_refreshColumnMapping = Refresh column mapping
DTableSynchronizerImpl_refreshCrossTabel = Refresh cross table
DTableSynchronizerImpl_refreshEditionTabel = Refresh edition table
DTableSynchronizerImpl_refreshIntersectionMapping = Refresh intersection mapping
DTableSynchronizerImpl_refreshLineMapping = Refresh line mapping
TableCommandFactory_addValue = Add {0} value
TableCommandFactory_clearValue = Clear {0}
TableCommandFactory_setCellContent = Set cell content
TableCommandFactory_setValue = Set {0} value
TableDialectServices_CreateTable = Create table : {0}
TableDialectServices_InitializeTable = Initialize table of type {0}
TableDialectServices_RefreshImpactedElements = Refresh impacted elements
TableDialectServices_RefreshTable = Refresh table
TableExportHelper_ExceptionOnSave = Error while saving the exported content.
TableToolVariables_CellEditorResult = The result returned by the cell editor. So it is only available during the operations (not to get the CellEditor itself).
TableToolVariables_CurrentSemanticElement = The semantic currently edited element.
TableToolVariables_LineElement=The DLine of the current DCell.
TableToolVariables_SemanticColumnElement = The semantic element corresponding to the column.
TableToolVariables_SemanticElementOfContainerView = The semantic element corresponding to the view container.
TableToolVariables_SemanticLineElement = The semantic element corresponding to the line.
TableToolVariables_SemanticRootElement = The semantic root element of the table.
TableToolVariables_TableElement=The current DTable.
Table_WrongStyleAttribute = The style attribute must be a ForegroundStyleDescription or a BackgroundStyleDescription.
Table_UnexpectedExceptionMessage = Should not happen.
