###############################################################################
# Copyright (c) 2001, 2008 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
#
###############################################################################
BreadCrumbsOperation_EmptyBreadCrumbsTag=Empty breadCrumbs tag - add child commandNavigationItem tags or set nodeStamp facet
NavigationPaneOperation_EmptyNavigationPaneTag=Empty navigationPane tag - add child commandNavigationItem tags or set nodeStamp facet
PanelTabbedOperation_EmptyPanelTabbedTag=Empty panelTabbed tag - add child showDetailItem tags
ShowDetailItemOperation_EmptyShowDetailItemTag=Empty showDetailItem tag - add children
SelectItemModel_SampleItem1Label=Sample Label 1
SelectItemModel_SampleItem1Value=Sample Value 1
SelectItemModel_SampleItem2Label=Sample Label 2 
SelectItemModel_SampleItem2Value=Sample Value 2
SelectItemModel_SampleItem3Label=Sample Label 3
SelectItemModel_SampleItem3Value=Sample Value 3
SelectShuttleOperation_Description=Description
SelectShuttleOperation_LinkMove=Move
SelectShuttleOperation_LinkMoveAll=Move All
SelectShuttleOperation_LinkRemove=Remove
SelectShuttleOperation_LinkRemoveAll=Remove All
SelectShuttleOperation_LinkTop=Top
SelectShuttleOperation_LinkUp=Up
SelectShuttleOperation_LinkDown=Down
SelectShuttleOperation_LinkBottom=Bottom
TrinidadDTResourceProvider_StyleSheetNotLocated=StyleSheet could not be located