# ==============================================================================
#*+------------------------------------------------------------------------+
#*| Copyright (c) 2005, 2009 IBM 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:                                                          |
#*|    IBM Corporation - initial API and implementation                    |
#*+------------------------------------------------------------------------+
# ==============================================================================
# Property Sections related resource strings
# ================================ BEGIN ==================================================
DiagramGeneralDetails_nameLabel_text=Name:
DiagramGeneralDetails_diagramTypeLabel_text=Type:
DiagramGeneralDetails_diagramDescriptionLabel_text=Description:
DiagramGeneralDetails_nameChangeCommand_text=Name
DiagramGeneralDetails_diagramDescriptionChangeCommand_text=Description

AbstractPropertySection_UndoIntervalPropertyString = Change

# ===============================================================================
# Property Sections related resource strings  Appearance Section
# ================================ BEGIN ========================================

FontAndColor_nameLabel=Fonts and Colors:

FontColor_commandText=Font Color
FillColor_commandText=Fill Color
LineColor_commandText=Line Color
Font_commandText=Font


# ConnectionAppearancePropertySection related resource strings
# ================================ BEGIN ==================================================
ConnectionAppearanceDetails_AvoidObstaclesLabel_Text=Avoid obstructions
AppearanceDetails_AvoidObstaclesCommand_Text=Set avoid obstructions
ConnectionAppearanceDetails_ClosestDistanceLabel_Text=Closest distance
AppearanceDetails_ClosestDistanceCommand_Text=Set closest distance
ConnectionAppearanceDetails_RouterOptionsLabel_Text=Routing
ConnectionAppearanceDetails_JumpLinksLabel_Text=Status:
AppearanceDetails_JumpLinksCommand_Text=Set Jump links status
ConnectionAppearanceDetails_JumpLinkTypeLabel_Text=Type:
ConnectionAppearanceDetails_JumpLinkGroupLabel_Text=Jump links
AppearanceDetails_JumpLinkTypeCommand_Text=Set Jump link type
ConnectionAppearanceDetails_LineRouterLabel_Text=Styles:
AppearanceDetails_LineRouterCommand_Text=Set routing
ConnectionAppearanceDetails_ReverseJumpLinksLabel_Text=Reverse jump links
AppearanceDetails_ReverseJumpLinksCommand_Text=Set reverse jump links
ConnectionAppearanceDetails_SmoothnessLabel_Text=Smoothness:
AppearanceDetails_SmoothnessCommand_Text=Set Smoothness
AppearanceDetails_RoundBendpointsCommand_Text=Set Rounded Bendpoints Radius

# ==================================== END ================================================

# GridPropertySection related resource strings
# ================================ BEGIN ==================================================
Grid_On_Label_Text=Show Grid
Grid_Level_Label_Text=Grid In Front
Snap_To_Grid_Label_Text=Snap To Grid
Snap_To_Geometry_Label_Text=Snap To Shapes
Grid_Spacing_Label_Text=Grid Spacing
Ruler_On_Label_Text=Show Ruler
Ruler_Units_Label_Text=Ruler Units
Display_Group_Label_Text=Display
Measurement_Group_Label_Text=Measurement
Gridline_Group_Label_Text=Grid Line
Line_Color_Label_Text=Color
Line_Style_Label_Text=Style
Inches_Label_Text=Inches
Centimeters_Label_Text=Centimeters
Pixel_Label_Text=Pixels
Solid_Label_Text=Solid
Dash_Label_Text=Dash
Dot_Label_Text=Dot
Dash_Dot_Label_Text=Dash Dot
Dash_Dot_Dot_Label_Text= Dash Dot Dot
Spaced_Dot_Label_Text= Spaced Dot
Restore_Defaults_Label_Text=Restore Defaults


# ==================================== END ================================================


# Error message for negative integer when a positive is required
Positive_Number_Error=Input must be a positive number

Number_Interval_Error=Input must be a number between 0 and 100

# Color Paletter Popup strings
# ============================== BEGIN ====================================================
ColorPalettePopup_default=Default
ColorPalettePopup_custom=Custom ...
# ==================================== END ================================================

# ===============================================================================
# Appearance Tab: Text Alignment
# ================================ BEGIN ========================================
TextAlignmentPropertySection_TextAlignment=Text Alignment:
TextAlignmentPropertySection_AlignLeft=Align Left
TextAlignmentPropertySection_AlignCenter=Align Center
TextAlignmentPropertySection_AlignRight=Align Right
# ==================================== END ================================================

# ===============================================================================
# Appearance Tab: Line Styles
# ================================ BEGIN ========================================
LineStylesPropertySection_LineStyles=Lines and Arrows:
LineStylesPropertySection_LineWidth=Line Width
LineStylesPropertySection_LineType=Lines Type
LineStylesPropertySection_ArrowType=Arrow Type
LineStylesPropertySection_SourceArrow_Type=Source Arrow Type
LineStylesPropertySection_TargetArrow_Type=Target Arrow Type
# ==================================== END ================================================

