###############################################################################
# Copyright (c) 2001, 2007 Oracle Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     Oracle Corporation - initial API and implementation
###############################################################################
PasteNodeCommand.Label.DeleteNode=Delete Node
CutNodeCommand.Label.CutNode=Cut Node
DeleteNodeCommand.Label.DeleteNode=Delete Node
DeleteAction.CommandLabel.Delete=Delete
TableDeleteColumnCommand.Label.DeleteColumn=Delete Column
TableInsertColumnCommand.Label.InsertColumn=Insert Column
TableResizeColumnCommand.Label.ResizeColumn=Resize Column
TableInsertColumnCommand.Text.Default=Cell
TableResizeRowCommand.Label.ResizeColumn=Resize Column
TableDeleteRowCommand.Label.DeleteRow=Delete Row
TableInsertRowCommand.Label.InsertRow=Insert Row
TableDeleteHeaderFooterCommand.Label.DeleteHeader=Delete Header
TableDeleteHeaderFooterCommand.Label.DeleteFooter=Delete Footer
TableInsertHeaderFooterCommand.Label.InsertHeader=Insert Header
TableInsertHeaderFooterCommand.Label.InsertFooter=Insert Footer
PasteCommand.Label.Paste=Paste
DeleteCommand.Label.Delete=Delete
CutCommand.Label.Cut=Cut
CopyCommand.Label.Copy=Copy
ApplyStyleCommand.Label.ApplyStyle=Apply Style
ChangeStyleCommand.Label.ChangeStyle=Change Style
MoveNodeCommand.Label.MoveNode=Move Node
CloneNodeCommand.Label.CloneNode=Copy Node
