/*******************************************************************************
 * Copyright (c) 2010 BestSolution.at 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:
 *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
 ******************************************************************************/
package org.eclipse.e4.tools.emf.ui.internal;

public class Messages {

	public String ModelTooling_Common_Up;
	public String ModelTooling_Common_Down;
	public String ModelTooling_Common_AddEllipsis;
	public String ModelTooling_Common_Add;
	public String ModelTooling_Common_Remove;
	public String ModelTooling_Common_Id;
	public String ModelTooling_Common_RefId;
	public String ModelTooling_Common_FindEllipsis;

	public String ModelTooling_UIElement_ToBeRendered;
	public String ModelTooling_UIElement_Visible;
	public String ModelTooling_UIElement_VisibleWhen;
	public String ModelTooling_UIElement_AccessibilityPhrase;

	public String ModelTooling_Context_Variables;
	public String ModelTooling_Context_Properties;

	public String ModelTooling_ApplicationElement_Tags;
	public String ModelTooling_Contribution_PersistedState;

	public String AbstractCommandSelectionDialog_Label_CommandId;

	public String ApplicationEditor_Label;
	public String ApplicationEditor_Description;
	public String ApplicationEditor_Handlers;
	public String ApplicationEditor_PartDescriptors;
	public String ApplicationEditor_BindingTables;
	public String ApplicationEditor_Commands;
	public String ApplicationEditor_Windows;
	public String ApplicationEditor_Addons;
	public String ApplicationEditor_MenuContributions;
	public String ApplicationEditor_ToolBarContributions;
	public String ApplicationEditor_TrimContributions;
	public String ApplicationEditor_RootContexts;
	public String ApplicationEditor_BindingContexts;
	public String ApplicationEditor_Categories;

	public String BindingTableEditor_Label;
	public String BindingTableEditor_Description;
	public String BindingTableEditor_ContextId;
	public String BindingTableEditor_Keybindings;
	public String BindingTableEditor_KeySequence;
	public String BindingTableEditor_Command;
	public String BindingTableEditor_AddKeyBinding;

	public String CommandEditor_Label;
	public String CommandEditor_Description;
	public String CommandEditor_Name;
	public String CommandEditor_LabelDescription;
	public String CommandEditor_Parameters;
	public String CommandEditor_ParameterName;
	public String CommandEditor_ParameterTypeId;
	public String CommandEditor_ParameterOptional;
	public String CommandEditor_ParameterOptional_No;
	public String CommandEditor_ParameterOptional_Yes;
	public String CommandEditor_ParameterId;
	public String CommandEditor_Category;
	public String CommandEditor_AddCommandParameter;

	public String DirectMenuItemEditor_Label;
	public String DirectMenuItemEditor_Description;
	public String DirectMenuItemEditor_ClassURI;

	public String ControlFactory_Key;
	public String ControlFactory_Value;
	public String ControlFactory_KeyValueShellTitle;

	public String DirectToolItemEditor_ClassURI;
	public String DirectToolItemEditor_Label;
	public String DirectToolItemEditor_Description;

	public String HandledMenuItemEditor_Label;
	public String HandledMenuItemEditor_Description;
	public String HandledMenuItemEditor_Command;
	public String HandledMenuItemEditor_Parameters;
	public String HandledMenuItemEditor_Tag;
	public String HandledMenuItemEditor_Value;

	public String HandledToolItemEditor_Command;
	public String HandledToolItemEditor_Parameters;
	public String HandledToolItemEditor_ParametersName;
	public String HandledToolItemEditor_ParametersValue;
	public String HandledToolItemEditor_Label;
	public String HandledToolItemEditor_Description;

	public String HandlerEditor_Label;
	public String HandlerEditor_Description;
	public String HandlerEditor_Command;
	public String HandlerEditor_ClassURI;

	public String InputPartEditor_Label;
	public String InputPartEditor_InputURI;

	public String KeyBindingEditor_Label;
	public String KeyBindingEditor_Description;
	public String KeyBindingEditor_Sequence;
	public String KeyBindingEditor_Command;
	public String KeyBindingEditor_Parameters;
	public String KeyBindingEditor_SequenceNotComplete;
	public String KeyBindingEditor_SequenceEmpty;
	public String KeyBindingEditor_AddParameter;

	public String MenuEditor_Label;
	public String MenuEditor_Description;
	public String MenuEditor_MenuItems;
	public String MenuEditor_MenuItemType;
	public String MenuEditor_MenuItemItemType;
	public String MenuEditor_HandledMenuItem;
	public String MenuEditor_Separator;
	public String MenuEditor_Menu;
	public String MenuEditor_DirectMenuItem;
	public String MenuEditor_LabelLabel;
	public String MenuEditor_Tooltip;
	public String MenuEditor_IconURI;
	public String MenuEditor_Children;
	public String MenuEditor_Mnemonics;
	public String MenuEditor_AddHandledMenuItem;
	public String MenuEditor_AddMenu;
	public String MenuEditor_AddDirectMenuItem;
	public String MenuEditor_AddSeparator;

	public String MenuItemEditor_Type;
	public String MenuItemEditor_Label;
	public String MenuItemEditor_Tooltip;
	public String MenuItemEditor_IconURI;
	public String MenuEditor_MainMenu;
	public String MenuItemEditor_Enabled;
	public String MenuItemEditor_Selected;
	public String MenuItemEditor_Mnemonics;
	public String MenuItemEditor_NoExpression;

	public String MenuSeparatorEditor_Label;

	public String PartDescriptorEditor_Label;
	public String PartDescriptorEditor_Descriptor;
	public String PartDescriptorEditor_LabelLabel;
	public String PartDescriptorEditor_Tooltip;
	public String PartDescriptorEditor_IconURI;
	public String PartDescriptorEditor_ClassURI;
	public String PartDescriptorEditor_Dirtyable;
	public String PartDescriptorEditor_Closeable;
	public String PartDescriptorEditor_Multiple;
	public String PartDescriptorEditor_Category;
	public String PartDescriptorEditor_Variables;
	public String PartDescriptorEditor_Properties;
	public String PartDescriptorEditor_PropertiesKey;
	public String PartDescriptorEditor_PropertiesValue;
	public String PartDescriptorEditor_Menus;
	public String PartDescriptorEditor_Handlers;
	public String PartDescriptorEditor_ContainerData;

	public String PartEditor_Label;
	public String PartEditor_Description;
	public String PartEditor_LabelLabel;
	public String PartEditor_Tooltip;
	public String PartEditor_IconURI;
	public String PartEditor_ClassURI;
	public String PartEditor_Closeable;
	public String PartEditor_Menus;
	public String PartEditor_Handlers;
	public String PartEditor_ContainerData;
	public String PartEditor_ToolBar;
	public String PartEditor_BindingContexts;

	public String PartSashContainerEditor_Label;
	public String PartSashContainerEditor_Description;
	public String PartSashContainerEditor_Orientation;
	public String PartSashContainerEditor_Vertical;
	public String PartSashContainerEditor_Horizontal;
	public String PartSashContainerEditor_SelectedElement;
	public String PartSashContainerEditor_Controls;
	public String PartSashContainerEditor_ContainerData;
	public String PartSashContainerEditor_AddPartSashContainer;
	public String PartSashContainerEditor_AddPartStack;
	public String PartSashContainerEditor_AddPart;
	public String PartSashContainerEditor_AddInputPart;
	public String PartSashContainerEditor_AddArea;
	public String PartSashContainerEditor_AddPlaceholder;

	public String PartStackEditor_Label;
	public String PartStackEditor_Description;
	public String PartStackEditor_SelectedElement;
	public String PartStackEditor_Parts;
	public String PartStackEditor_ContainerData;
	public String PartStackEditor_AddPart;
	public String PartStackEditor_AddInputPart;
	public String PartStackEditor_AddPlaceholder;

	public String PerspectiveEditor_Label;
	public String PerspectiveEditor_Description;
	public String PerspectiveEditor_LabelLabel;
	public String PerspectiveEditor_SelectedElement;
	public String PerspectiveEditor_Tooltip;
	public String PerspectiveEditor_IconURI;
	public String PerspectiveEditor_Controls;
	public String PerspectiveEditor_AddPartSashContainer;
	public String PerspectiveEditor_AddPartStack;
	public String PerspectiveEditor_AddPart;
	public String PerspectiveEditor_AddInputPart;
	public String PerspectiveEditor_AddArea;
	public String PerspectiveEditor_AddPlaceholder;

	public String PerspectiveStackEditor_Perspectives;
	public String PerspectiveStackEditor_Label;
	public String PerspectiveStackEditor_Description;
	public String PerspectiveStackEditor_SelectedElement;
	public String PerspectiveStackEditor_AddPerspective;

	public String PlaceholderEditor_Label;
	public String PlaceholderEditor_Descriptor;
	public String PlaceholderEditor_Reference;

	public String ToolBarEditor_Label;
	public String ToolBarEditor_Description;
	public String ToolBarEditor_ToolbarItems;
	public String ToolBarEditor_ToolbarItemsType;
	public String ToolBarEditor_ToolbarItemsItemType;
	public String ToolBarEditor_HandledToolItem;
	public String ToolBarEditor_DirectToolItem;
	public String ToolBarEditor_ToolControl;
	public String ToolBarEditor_Separator;
	public String ToolBarEditor_AddHandledToolItem;
	public String ToolBarEditor_AddDirectToolItem;
	public String ToolBarEditor_AddToolControl;
	public String ToolBarEditor_AddToolBarSeparator;

	public String ToolBarSeparatorEditor_Label;

	public String ToolControlEditor_Label;
	public String ToolControlEditor_Description;
	public String ToolControlEditor_ClassURI;

	public String VBindingTableEditor_Label;
	public String VBindingTableEditor_Description;
	public String VBindingTableEditor_Contexts;
	public String VBindingTableEditor_Name;
	public String VBindingTableEditor_LabelDescription;
	public String VBindingTableEditor_BindingTables;
	public String VBindingTableEditor_AddBindingTable;

	public String AddonsEditor_ClassURI;
	public String AddonsEditor_TreeLabel;
	public String AddonsEditor_TreeLabelDescription;
	public String AddonsEditor_Tags;

	public String ContributionClassDialog_DialogMessage;
	public String ContributionClassDialog_DialogTitle;
	public String ContributionClassDialog_Label_Classname;
	public String ContributionClassDialog_ShellTitle;

	public String MenuContributionEditor_MenuItems;
	public String MenuContributionEditor_MenuItemType;
	public String MenuContributionEditor_MenuItemItemType;
	public String MenuContributionEditor_HandledMenuItem;
	public String MenuContributionEditor_Separator;
	public String MenuContributionEditor_Menu;
	public String MenuContributionEditor_DirectMenuItem;
	public String MenuContributionEditor_ParentId;
	public String MenuContributionEditor_Position;
	public String MenuContributionEditor_TreeLabel;
	public String MenuContributionEditor_TreeLabelDescription;

	public String ModelFragmentsEditor_ModelFragments;
	public String ModelFragmentsEditor_Label;
	public String ModelFragmentsEditor_Description;
	public String ModelFragmentsEditor_Imports;

	public String StringModelFragment_Label;
	public String StringModelFragment_Description;
	public String StringModelFragment_Featurename;
	public String StringModelFragment_ParentId;
	public String StringModelFragment_PositionInList;
	public String StringModelFragment_Elements;

	public String FeatureSelectionDialog_Filter;
	public String FeatureSelectionDialog_ShellTitle;
	public String FeatureSelectionDialog_DialogTitle;
	public String FeatureSelectionDialog_DialogMessage;

	public String CategoryEditor_TreeLabel;
	public String CategoryEditor_TreeLabelDescriptor;
	public String CategoryEditor_Name;
	public String CategoryEditor_Description;
	public String CategoryEditor_Tags;

	public String CommandCategorySelectionDialog_LabelCategoryId;

	public String BindingContextSelectionDialog_LabelContextId;

	public String ComponentLabelProvider_invisible;
	public String ComponentLabelProvider_notrendered;

	public String BindingContextEditor_TreeLabel;
	public String BindingContextEditor_TreeLabelDescription;
	public String BindingContextEditor_Name;
	public String BindingContextEditor_Description;
	public String BindingContextEditor_Subcontexts;
	public String BindingContextEditor_AddContext;

	public String CommandParameterEditor_TreeLabel;
	public String CommandParameterEditor_TreeLabelDescritpion;
	public String CommandParameterEditor_Name;
	public String CommandParameterEditor_TypeId;
	public String CommandParameterEditor_Optional;

	public String ParameterEditor_TreeLabel;
	public String ParameterEditor_TreeLabelDescription;
	public String ParameterEditor_Name;
	public String ParameterEditor_Value;

	public String PopupMenuEditor_TreeLabel;
	public String PopupMenuEditor_TreeLabelDescription;

	public String RenderedMenuEditor_TreeLabel;

	public String RenderedMenuItem_TreeLabel;
	public String RenderedMenuItem_TreeLabelDescription;

	public String RenderedToolBarEditor_TreeLabel;

	public String ToolBarContributionEditor_TreeLabel;
	public String ToolBarContributionEditor_TreeLabelDescription;

	public String ToolItemEditor_Type;
	public String ToolItemEditor_Label;
	public String ToolItemEditor_ToolTip;
	public String ToolItemEditor_IconURI;
	public String ToolItemEditor_Enabled;
	public String ToolItemEditor_Selected;
	public String ToolItemEditor_NoExpression;

	public String TrimBarEditor_TreeLabel;
	public String TrimBarEditor_TreeLabelDescription;
	public String TrimBarEditor_Side;
	public String TrimBarEditor_Controls;
	public String TrimBarEditor_AddToolBar;
	public String TrimBarEditor_AddToolControl;

	public String TrimContributionEditor_TreeLabel;
	public String TrimContributionEditor_TreeLabelDescription;
	public String TrimContributionEditor_ParentId;
	public String TrimContributionEditor_Position;
	public String TrimContributionEditor_Controls;

	public String TrimmedWindowEditor_TrimBars;
	public String TrimmedWindowEditor_TreeLabel;

	public String WindowEditor_AddMainMenu;
	public String WindowEditor_TreeLabel;
	public String WindowEditor_TreeLabelDescription;

	public String WindowEditor_Bounds;
	public String WindowEditor_Label;
	public String WindowEditor_Tooltip;
	public String WindowEditor_IconURI;
	public String WindowEditor_MainMenu;
	public String WindowEditor_SelectedElement;
	public String WindowEditor_BindingContexts;
	public String WindowEditor_Handlers;
	public String WindowEditor_Windows;
	public String WindowEditor_Controls;
	public String WindowEditor_SharedElements;

	public String VApplicationAddons_AddAddon;
	public String VApplicationAddons_TreeLabel;
	public String VApplicationAddons_TreeLabelDescription;
	public String VApplicationAddons_Commands;

	public String VApplicationCategoriesEditor_TreeLabel;
	public String VApplicationCategoriesEditor_TreeLabelDescription;
	public String VApplicationCategoriesEditor_Categories;
	public String VApplicationCategoriesEditor_AddCategory;

	public String VCommandEditor_TreeLabel;
	public String VCommandEditor_TreeLabelDescription;
	public String VCommandEditor_Commands;
	public String VCommandEditor_AddCommand;

	public String VHandlerEditor_TreeLabel;
	public String VHandlerEditor_TreeLabelDescription;
	public String VHandlerEditor_Handlers;
	public String VHandlerEditor_AddHandler;

	public String VMenuContributionsEditor_TreeLabel;
	public String VMenuContributionsEditor_TreeLabelDescription;
	public String VMenuContributionsEditor_MenuContributions;
	public String VMenuContributionsEditor_AddMenuContribution;

	public String VMenuEditor_TreeLabel;
	public String VMenuEditor_TreeLabelDescription;
	public String VMenuEditor_Menus;
	public String VMenuEditor_AddMenuContribution;

	public String VModelFragmentsEditor_TreeLabel;
	public String VModelFragmentsEditor_TreeLabelDescription;
	public String VModelFragmentsEditor_Fragments;

	public String VModelImportsEditor_TreeLabel;
	public String VModelImportsEditor_TreeLabelDescription;
	public String VModelImportsEditor_Imports;

	public String VPartDescriptor_TreeLabel;
	public String VPartDescriptor_TreeLabelDescription;
	public String VPartDescriptor_Descriptors;
	public String VPartDescriptor_AddPartDescriptor;

	public String VToolBarContributionsEditor_Contributions;
	public String VToolBarContributionsEditor_TreeLabelDescription;
	public String VToolBarContributionsEditor_TreeLabel;
	public String VToolBarContributionsEditor_AddToolBarContribution;

	public String VTrimContributionsEditor_TreeLabel;
	public String VTrimContributionsEditor_TreeLabelDescription;
	public String VTrimContributionsEditor_Contributions;
	public String VTrimContributionsEditor_AddTrimContribution;

	public String VWindowControlEditor_TreeLabel;
	public String VWindowControlEditor_TreeLabelDescription;
	public String VWindowControlEditor_Controls;
	public String VWindowControlEditor_AddPerspectiveStack;
	public String VWindowControlEditor_AddPartSashContainer;
	public String VWindowControlEditor_AddPartStack;
	public String VWindowControlEditor_AddPart;
	public String VWindowControlEditor_AddInputPart;
	public String VWindowControlEditor_AddArea;

	public String VWindowEditor_TreeLabel;
	public String VWindowEditor_TreeLabelDescription;
	public String VWindowEditor_Windows;
	public String VWindowEditor_AddTrimmedWindow;
	public String VWindowEditor_AddWindow;

	public String VWindowSharedElementsEditor_TreeLabel;
	public String VWindowSharedElementsEditor_TreeLabelDescription;
	public String VWindowSharedElementsEditor_Controls;
	public String VWindowSharedElementsEditor_AddPartSashContainer;
	public String VWindowSharedElementsEditor_AddPart;
	public String VWindowSharedElementsEditor_AddInputPart;

	public String VWindowTrimEditor_TreeLabel;
	public String VWindowTrimEditor_TreeLabelDescription;
	public String VWindowTrimEditor_Controls;
	public String VWindowTrimEditor_AddWindowTrim;

	public String AbstractIconDialog_IconName;

	public String BindingContextSelectionDialog_ShellTitle;
	public String BindingContextSelectionDialog_Title;
	public String BindingContextSelectionDialog_Message;
	public String BindingContextSelectionDialog_NoIdReference;

	public String CommandCategorySelectionDialog_ShellTitle;
	public String CommandCategorySelectionDialog_Title;
	public String CommandCategorySelectionDialog_Message;

	public String FindImportElementDialog_ShellTitle;
	public String FindImportElementDialog_Title;
	public String FindImportElementDialog_Message;
	public String FindImportElementDialog_Search;
	public String FindImportElementDialog_ClearCache;
	public String FindImportElementDialog_NoIdReference;
	public String FindImportElementDialog_noId;

	public String FindParentReferenceElementDialog_ShellTitle;
	public String FindParentReferenceElementDialog_Title;
	public String FindParentReferenceElementDialog_Message;
	public String FindParentReferenceElementDialog_ContainerType;
	public String FindParentReferenceElementDialog_Search;
	public String FindParentReferenceElementDialog_NoId;
	public String FindParentReferenceElementDialog_ClearCache;
	public String FindParentReferenceElementDialog_NoReferenceId;

	public String HandledMenuItemCommandSelectionDialog_ShellTitle;
	public String HandledMenuItemCommandSelectionDialog_DialogTitle;
	public String HandledMenuItemCommandSelectionDialog_DialogMessage;

	public String HandledToolItemCommandSelectionDialog_ShellTitle;
	public String HandledToolItemCommandSelectionDialog_DialogTitle;
	public String HandledToolItemCommandSelectionDialog_DialogMessage;

	public String HandlerCommandSelectionDialog_ShellTitle;
	public String HandlerCommandSelectionDialog_DialogTitle;
	public String HandlerCommandSelectionDialog_DialogMessage;

	public String KeyBindingCommandSelectionDialog_ShellTitle;
	public String KeyBindingCommandSelectionDialog_DialogTitle;
	public String KeyBindingCommandSelectionDialog_DialogMessage;

	public String MenuIconDialogEditor_ShellTitle;
	public String MenuIconDialogEditor_DialogTitle;
	public String MenuIconDialogEditor_DialogMessage;

	public String MenuItemIconDialogEditor_ShellTitle;
	public String MenuItemIconDialogEditor_DialogTitle;
	public String MenuItemIconDialogEditor_DialogMessage;

	public String PartDescriptorIconDialogEditor_ShellTitle;
	public String PartDescriptorIconDialogEditor_DialogTitle;
	public String PartDescriptorIconDialogEditor_DialogMessage;

	public String PartIconDialogEditor_ShellTitle;
	public String PartIconDialogEditor_DialogTitle;
	public String PartIconDialogEditor_DialogMessage;

	public String PerspectiveIconDialogEditor_ShellTitle;
	public String PerspectiveIconDialogEditor_DialogTitle;
	public String PerspectiveIconDialogEditor_DialogMessage;

	public String SharedElementsDialog_ShellTitle;
	public String SharedElementsDialog_Title;
	public String SharedElementsDialog_Message;
	public String SharedElementsDialog_Name;

	public String ToolItemIconDialogEditor_ShellTitle;
	public String ToolItemIconDialogEditor_DialogTitle;
	public String ToolItemIconDialogEditor_DialogMessage;

	public String WindowIconDialogEditor_ShellTitle;
	public String WindowIconDialogEditor_DialogTitle;
	public String WindowIconDialogEditor_DialogMessage;

	public String ImageTooltip_UnknownError;
	public String ImageTooltip_FileNotFound;
	public String ImageTooltip_Icon;
	public String ImageTooltip_Name;
	public String ImageTooltip_Dimension;
	public String ImageTooltip_FileSize;

	public String VItemParametersEditor_TreeLabel;
	public String VItemParametersEditor_TreeLabelDescription;
	public String VItemParametersEditor_Parameters;
	public String VItemParametersEditor_AddParameter;

	public String CoreExpressionEditor_TreeLabel;
	public String CoreExpressionEditor_TreeLabelDescription;
	public String CoreExpressionEditor_ExpressionId;

	public String ExpressionIdDialog_ShellTitle;
	public String ExpressionIdDialog_DialogTitle;
	public String ExpressionIdDialog_DialogMessage;
	public String ExpressionIdDialog_Id;

	public String CommandToStringConverter_None;

	public String VRootBindingContexts_AddContext;
	public String VRootBindingContexts_TreeLabel;
	public String VRootBindingContexts_TreeLabelDescription;
	public String VRootBindingContexts_Contexts;

	public String AreaEditor_Label;
	public String AreaEditor_Description;
	public String AreaEditor_Orientation;
	public String AreaEditor_Horizontal;
	public String AreaEditor_SelectedElement;
	public String AreaEditor_ContainerData;
	public String AreaEditor_Controls;
	public String AreaEditor_Vertical;
	public String AreaEditor_LabelLabel;
	public String AreaEditor_Tooltip;
	public String AreaEditor_IconURI;

	public String AreaIconDialogEditor_ShellTitle;
	public String AreaIconDialogEditor_DialogTitle;
	public String AreaIconDialogEditor_DialogMessage;

	public String ModelEditor_Delete;
	public String ModelEditor_Form;
	public String ModelEditor_XMI;
}