//------------------------------------------------------------------------------
// Copyright (c) 2005, 2007 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 implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui;

import org.eclipse.osgi.util.NLS;

/**
 * Authoing UI resources
 * 
 * @author Lokanath Jagga
 * @author Shilpa Toraskar
 * @since 1.0
 */
public final class AuthoringUIResources extends NLS {

	private static String BUNDLE_NAME = AuthoringUIResources.class.getPackage()
			.getName()
			+ ".Resources"; //$NON-NLS-1$

	private AuthoringUIResources() {
		// Do not instantiate.
	}
	
	public static String ActivityDiagramPrefPage_allowCreateConnectionToReadOnlyElements;

	public static String assignAction_text;

	public static String CustomCategoryAssignPage_includeElementsOfType;
	
	public static String unassignAction_text;
	
	public static String reassignAction_text;
		
	public static String deepCopyAction_text;

	public static String ConfigurationOrderDialog_description;

	public static String ConfigurationOrderDialog_NavigationViews;

	public static String editor_error_activated_outofsync_title;

	public static String editor_error_activated_outofsync_message;

	public static String assignPage_title;

	public static String categoriesPage_title;

	public static String deliverablePartsPage_title;

	public static String descriptionPage_title;

	public static String disciplinesPage_title;

	public static String discardunresolvedref;

	public static String guidancePage_title;

	public static String ItemsFilterDialog_UpdateTreeJob_name;

	public static String Configuration_Problem_Refresh;
	
	public static String ProblemExplanationText;

	public static String NewDiagramFile_title;

	public static String previewPage_title;

	public static String promptCreateNewDiagramFile_msg;

	public static String promptDeleteCustomCategoryBeforeRemoveLastRefToIt;

	public static String referencesPage_title;

	public static String reference_text;

	public static String referenceWorkflowPage_title;

	public static String rolesPage_title;

	public static String roleSetsPage_title;

	public static String stepsPage_title;

	public static String tasksPage_title;

	public static String toolMentorsPage_title;

	public static String workProductsPage_title;
	
	public static String workProductStatesPage_title;

	public static String checkItemsSection_name;

	public static String checkItemsSection_desc;

	public static String dependenciesSection_name;

	public static String dependenciesSection_desc;

	public static String detailSection_name;

	public static String detailSection_desc;

	public static String generalInfoSection_name;

	public static String generalInfoSection_desc;

	public static String iconSection_name;

	public static String iconSection_desc;

	public static String notationSection_name;

	public static String notationSection_desc;

	public static String referencedPluginsSection_name;

	public static String referencedPluginsSection_desc;

	public static String staffingSection_name;

	public static String staffingSection_desc;

	public static String stepsSection_name;

	public static String stepsSection_desc;

	public static String tailoringSection_name;

	public static String tailoringSection_desc;

	public static String variabilitySection_name;

	public static String variabilitySection_desc;

	public static String versionInfoSection_name;

	public static String versionInfoSection_desc;

	public static String additionalInfo_text;

	public static String application_text;
	public static String practice_application_text;

	public static String actionLabel_edit;

	public static String actionLabel_findElementInLibNav;

	public static String alternatives_text;

	public static String assignmentApproaches_text;

	public static String authors_text;

	public static String background_text;

	public static String baseElement_text;

	public static String baseGuidance_text;

	public static String briefDescription_text;

	public static String description_text;

	public static String backupbeforesave_text;

	public static String briefOutline_text;

	public static String changeDate_text;

	public static String changeDescription_text;

	public static String checkItems_text;

	public static String contributes_text;

	public static String localContributes_text;

	public static String contributes_to_text;

	public static String copyright_text;

	public static String editor_text;

	public static String extends_text;

	public static String extend_text;

	public static String externalDescription_text;

	public static String externalId_text;

	public static String goals_text;

	public static String impactOfNotHaving_text;

	public static String keyConsiderations_text;

	public static String levelsOfAdoption_text;

	public static String mainDescription_text;

	public static String newElement_text;

	public static String name_text;

	public static String notApplicable_text;

	public static String notation_text;

	public static String packagingGuidance_text;

	public static String presentationName_text;
	
	public static String long_presentationName_text;

	public static String promptforlibary_text;

	public static String enableHealthCheck_text;

	public static String problem_text;

	public static String purpose_text;

	public static String reasonForNotNeeding_text;

	public static String replaces_text;

	public static String localReplaces_text;

	public static String extendsReplaces_text;

	public static String representationOptions_text;

	public static String representation_text;

	public static String attachedFile_text;

	public static String skills_text;

	public static String steps_text;

	public static String steps_name_text;

	public static String stop_text;

	public static String print_text;

	public static String synonyms_text;

	public static String type_text;

	public static String copy_text;

	public static String deepCopy_text;

	public static String back_text;

	public static String new_plugin;

	public static String move;

	public static String variabilityType_text;

	public static String version_text;

	public static String addButton_text;

	public static String attachButton_text;
	
	public static String attachUrlButton_text;
	
	public static String browseButton_text;

	public static String changeTypeButton_text;

	public static String clearButton_text;

	public static String deleteButton_text;

	public static String detachButton_text;

	public static String diagram_saveError;

	public static String downButton_text;

	public static String directory_text;

	public static String orderButton_text;

	public static String editButton_text;

	public static String removeButton_text;

	public static String renameAction_text;

	public static String remove_text;

	public static String rename_text;

	public static String SaveAs_text;

	public static String selectButton_text;

	public static String deselectButton_text;

	public static String upButton_text;

	public static String makeDefaultButton_text;

	public static String viewHistoryButton_text;

	public static String roleTasksPage_sectionName;

	public static String roleTasksPage_sectionDescription;

	public static String roleTasksPage_availableLabel;

	public static String roleTasksPage_selectedLabel;

	public static String roleTasksPage_selectedLabel2;

	public static String roleTasksPage_multipleSelectDescription;

	public static String roleWorkProductsPage_sectionName;

	public static String roleWorkProductsPage_sectionDescription;

	public static String roleWorkProductsPage_availableLabel;

	public static String roleWorkProductsPage_selectedLabel;

	public static String roleWorkProductsPage_selectedLabel2;

	public static String roleWorkProductsPage_multipleSelectDescription;

	public static String roleGuidancePage_sectionName;

	public static String roleGuidancePage_sectionDescription;

	public static String roleGuidancePage_availableLabel;

	public static String roleGuidancePage_selectedLabel;

	public static String roleGuidancePage_multipleSelectDescription;

	public static String roleCategoriesPage_sectionName;

	public static String roleCategoriesPage_sectionDescription;

	public static String roleCategoriesPage_availableLabel;

	public static String roleCategoriesPage_availableLabel2;

	public static String roleCategoriesPage_selectedLabel;

	public static String roleCategoriesPage_selectedLabel2;

	public static String taskRolesPage_sectionName;

	public static String taskRolesPage_sectionDescription;

	public static String taskRolesPage_availableLabel;

	public static String taskRolesPage_selectedLabel;

	public static String taskRolesPage_selectedLabel2;

	public static String taskRolesPage_multipleSelectDescription;

	public static String taskRolesPage_primaryPerformer_modify_message;

	public static String taskRolesPage_confirm_title;

	public static String taskWorkProductsPage_sectionName;

	public static String taskWorkProductsPage_sectionDescription;

	public static String taskWorkProductsPage_availableLabel;

	public static String taskWorkProductsPage_selectedLabel;

	public static String taskWorkProductsPage_selectedLabel2;

	public static String taskWorkProductsPage_selectedLabel3;

	public static String taskWorkProductsPage_multipleSelectDescription;

	public static String taskGuidancePage_sectionName;

	public static String taskGuidancePage_sectionDescription;

	public static String taskGuidancePage_availableLabel;

	public static String taskGuidancePage_selectedLabel;

	public static String taskGuidancePage_multipleSelectDescription;

	public static String taskCategoriesPage_sectionName;

	public static String taskCategoriesPage_sectionDescription;

	public static String taskCategoriesPage_availableLabel;

	public static String taskCategoriesPage_availableLabel2;

	public static String taskCategoriesPage_selectedLabel;

	public static String taskCategoriesPage_selectedLabel2;

	public static String MarkerResolutionGenerator_removeUnresolvedReference;
	
	public static String LpmResolutionGenerator_removeUnresolvedBasePlugins;
	
	public static String LpmResolutionGenerator_removeMultipleRepacers;

	public static String MarkerResolutionGenerator_showOwnerInLibraryView;

	public static String ConfigurationMarkerResolutionGenerator_resolveMissingReference;

	public static String WorkProduct_Tasks_SectionName;

	public static String WorkProduct_Tasks_SectionDescription;

	public static String WorkProduct_Tasks_AvailableLabel;

	public static String WorkProduct_Tasks_SelectedLabel;

	public static String WorkProduct_Tasks_SelectedLabel2;

	public static String WorkProduct_Tasks_SelectedLabel3;

	public static String WorkProduct_Tasks_MultipleSelectDescription;

	public static String workProductRolesPage_sectionName;

	public static String workProductRolesPage_sectionDescription;

	public static String workProductRolesPage_availableLabel;

	public static String workProductRolesPage_selectedLabel;

	public static String workProductRolesPage_selectedLabel2;

	public static String workProductRolesPage_multipleSelectDescription;

	public static String workProductDeliverablePartsPage_sectionName;

	public static String workProductDeliverablePartsPage_sectionDescription;

	public static String workProductDeliverablePartsPage_availableLabel;

	public static String workProductDeliverablePartsPage_selectedLabel;

	public static String workProductDeliverablePartsPage_multipleSelectDescription;

	public static String workProductGuidancePage_sectionName;

	public static String workProductGuidancePage_sectionDescription;

	public static String workProductGuidancePage_availableLabel;

	public static String workProductGuidancePage_selectedLabel;

	public static String workProductGuidancePage_multipleSelectDescription;

	public static String workProductCategoriesPage_sectionName;

	public static String workProductCategoriesPage_sectionDescription;

	public static String workProductCategoriesPage_availableLabel;

	public static String workProductCategoriesPage_availableLabel2;

	public static String workProductCategoriesPage_availableLabel3;

	public static String workProductCategoriesPage_selectedLabel;

	public static String workProductCategoriesPage_selectedLabel2;

	public static String workProductCategoriesPage_selectedLabel3;

	public static String practiceReferencesPage_sectionName;

	public static String practiceReferencesPage_sectionDescription;
	
	public static String practiceReferencesPage_sectionDescription_udt;

	public static String practiceReferencesPage_availableLabel;

	public static String practiceReferencesPage_selectedLabel;

	public static String practiceReferencesPage_multipleSelectDescription;
	
	public static String practiceReferencesPage_sortOrderButton_text;
	
	public static String practiceReferencesPage_sortTypeButton_text;
	
	public static String practiceReferencesPage_assignQualifierButton_text;
	
	public static String practiceReferencesPage_unassignQualifierButton_text;
	
	public static String practiceReferencesPage_selectQualifierDialog_title;
	
	public static String practiceReferencesPage_selectQualifierDialog_msg;

	public static String categoryGuidancesPage_sectionName;

	public static String categoryGuidancesPage_sectionDescription;

	public static String categoryGuidancesPage_availableLabel;

	public static String categoryGuidancesPage_selectedLabel;

	public static String categoryGuidancesPage_multipleSelectDescription;

	public static String disciplineGroupingDisciplinesPage_sectionName;

	public static String disciplineGroupingDisciplinesPage_sectionDescription;

	public static String disciplineGroupingDisciplinesPage_availableLabel;

	public static String disciplineGroupingDisciplinesPage_selectedLabel;

	public static String disciplineGroupingDisciplinesPage_multipleSelectDescription;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_UseDefaultDirectoryButtonLabel;

	public static String disciplineTasksPage_sectionName;

	public static String disciplineTasksPage_sectionDescription;

	public static String disciplineTasksPage_availableLabel;

	public static String disciplineTasksPage_selectedLabel;

	public static String disciplineTasksPage_multipleSelectDescription;

	public static String disciplineReferenceWorkflowPage_sectionName;

	public static String disciplineReferenceWorkflowPage_sectionDescription;

	public static String disciplineReferenceWorkflowPage_availableLabel;

	public static String disciplineReferenceWorkflowPage_selectedLabel;

	public static String disciplineReferenceWorkflowPage_multipleSelectDescription;

	public static String domainWorkProductsPage_sectionName;

	public static String domainWorkProductsPage_sectionDescription;

	public static String domainWorkProductsPage_availableLabel;

	public static String domainWorkProductsPage_selectedLabel;

	public static String domainWorkProductsPage_multipleSelectDescription;

	public static String workProductTypeWorkProductsPage_sectionName;

	public static String workProductTypeWorkProductsPage_sectionDescription;

	public static String workProductTypeWorkProductsPage_availableLabel;

	public static String workProductTypeWorkProductsPage_selectedLabel;

	public static String workProductTypeWorkProductsPage_multipleSelectDescription;

	public static String roleSetGroupingRoleSetsPage_sectionName;

	public static String roleSetGroupingRoleSetsPage_sectionDescription;

	public static String roleSetGroupingRoleSetsPage_availableLabel;

	public static String roleSetGroupingRoleSetsPage_selectedLabel;

	public static String roleSetGroupingRoleSetsPage_multipleSelectDescription;

	public static String roleSetRolesPage_sectionName;

	public static String roleSetRolesPage_sectionDescription;

	public static String roleSetRolesPage_availableLabel;

	public static String roleSetRolesPage_selectedLabel;

	public static String roleSetRolesPage_multipleSelectDescription;

	public static String toolToolMentorsPage_sectionName;

	public static String toolToolMentorsPage_sectionDescription;

	public static String toolToolMentorsPage_availableLabel;

	public static String toolToolMentorsPage_selectedLabel;

	public static String toolToolMentorsPage_multipleSelectDescription;

	public static String customCategoryAssignPage_sectionName;

	public static String customCategoryAssignPage_sectionDescription;

	public static String customCategoryAssignPage_availableLabel;

	public static String customCategoryAssignPage_selectedLabel;

	public static String customCategoryAssignPage_multipleSelectDescription;

	public static String newPluginWizard_title;

	public static String newPluginWizardPage_title;

	public static String newPluginWizardPage_text;

	public static String newPluginError_msg;

	public static String newPluginError_reason;

	public static String methodLibraryGroup_text;

	public static String defaultPathLabel_text;
	
	public static String modelingGroup_text;
	
	public static String userInterfaceGroup_text;
	
	public static String debugGroup_text;
	
	public static String enableLibraryValidationCheckbox_text;
	
	public static String editorGroup_text;
	
	public static String rteGroup_text;
	
	public static String rteGroupAddDialog_title;
	
	public static String rteGroupAddDialog_msg;
	
	public static String rteAddOneButtonGroup_title;
	
	public static String rteAddOneButton_text;
	
	public static String rteAddButton_text;
	
	
	public static String hex_24;
	public static String hex_26;
	public static String hex_2B;
	public static String hex_2C;
	public static String hex_2F;
	public static String hex_3A;
	public static String hex_3B;
	public static String hex_3D;
	public static String hex_3F;	
	public static String hex_40;
	public static String hex_20;
	public static String hex_22;
	public static String hex_3C;
	public static String hex_3E;
	public static String hex_23;
	public static String hex_25;
	public static String hex_7B;
	public static String hex_7D;
	public static String hex_7C;
	public static String hex_5C;	
	public static String hex_5E;
	public static String hex_7E;
	public static String hex_5B;
	public static String hex_5D;
	public static String hex_60;
	
	public static String enableUIFieldsCheckbox_text;
		
	public static String enableAutoNameGenCheckbox_text;
	
	public static String skipAllCheckbox_text;
	
	public static String skipSelectedChebox_text;
	
	public static String enableUIFieldsChange_message;
	
	public static String invalidPreferenceHistorySizeError_msg;

	public static String createDialog_title;

	public static String deleteDialog_title;

	public static String editDialog_title;

	public static String errorDialog_title;

	public static String moveDialog_title;

	public static String renameDialog_title;

	public static String warningDialog_title;

	public static String addConfigErrorDialog_title;

	public static String setDefaultConfigErrorDialog_title;

	public static String editProcessElementErrorDialog_title;

	public static String openLibraryDialog_title;

	public static String openLibraryDialog_text;

	public static String saveLibraryDialog_title;

	public static String saveLibraryDialog_text;

	public static String upgradeLibraryDialog_title;

	public static String deleteAssociationDialog_text;

	public static String noOpenLibraryError_msg;

	public static String emptyElementNameError_msg;

	public static String duplicateElementNameError_msg;

	public static String createConfigError_msg;

	public static String deleteConfigError_msg;

	public static String internalError_msg;

	public static String invalidPresentationNameError_msg;

	public static String invalidConfigError_msg;

	public static String setDefaultConfigError_msg;

	public static String openLibraryError_msg;

	public static String saveLibraryError_msg;

	public static String saveLibraryToError_msg;

	public static String elementAlreadyDeletedError_msg;

	public static String upgradeLibraryError_msg;

	public static String openConfigWizardError_msg;

	public static String error_reason;

	public static String internalError_reason;

	public static String upgradeLibraryError_reason;

	public static String saveUpgradedLibraryError_reason;

	public static String openingLibraryTask_name;

	public static String savingLibraryTask_name;

	public static String upgradingLibraryTask_name;

	public static String loadingLibraryElementsTask_name;

	public static String savingUpgradedElementsTask_name;

	public static String savingTask_name;

	public static String savingFilesTask_name;

	public static String fixingContentDescriptionGUIDsTask_name;

	public static String deletingInvalidReferencesTask_name;

	public static String addEditorToPerspectiveWarning_msg;

	public static String ChangeHistoryDialog_title;

	public static String ChangeHistoryDialog_label;

	public static String confirmDeleteDialog_title;

	public static String confirmDeleteDialog_msg;

	public static String confirmDeleteDialog_msgWithReference;

	public static String errorDialog_message;

	public static String errorDialog_error;

	public static String err_noopenlibrary;

	public static String err_loadinglibrary;

	public static String msg_reloadLibrary;

	public static String reloadDialog_message;

	public static String reloadDialog_title;

	public static String dialogs_MoveDialog_errorTitle;

	public static String dialogs_MoveDialog_errorMessage;
	
	public static String dialogs_AssignDialog_errorMessage;

	public static String processFormEditorSaveDialog_title;

	public static String processFormEditorSaveDialog_message1;

	public static String processFormEditorSaveDialog_message2;

	public static String configViewPageRemoveViewDialog_title;

	public static String configViewPageRemoveViewDialog_message;

	public static String configViewPageViewExistsDialog_title;

	public static String configViewPage_configuration;

	public static String configViewPage_configurationViews;

	public static String configViewPage_views;

	public static String columnselection_text;

	public static String configViewPage_addViewButtonText;

	public static String configViewPage_removeViewButtonText;

	public static String configViewPage_makeDefaultButtonText;

	public static String configViewPageViewExistsDialog_message;

	public static String configViewPage_configurationViewSectionTitle;

	public static String configViewPage_configurationViewSectionMessage;

	public static String descriptionTabGuidanceWarningDialog_title;

	public static String descriptionTabGuidanceWarningDialog_message1;

	public static String descriptionTabGuidanceWarningDialog_message2;

	public static String changeActivityTypeWarningDialog_title;

	public static String AssociationFormPage_BriefDescriptionLabel;

	public static String methodElementDescriptionEmptyNameDialog_title;

	public static String methodElementDescriptionEmptyNameDialog_message;

	public static String methodPluginDescriptionRemoveRefConfirm_message;

	public static String methodPluginDescriptionPage_confirmRename;

	public static String methodPluginDescriptionPage_confirmRename_title;

	public static String methodPluginDescriptionPage_cannotRenamePluginFolder;

	public static String methodPluginDescriptionPage_lockPluginLabel;
	public static String methodPluginDescriptionPage_supportingPluginLabel;
	public static String contentPackageDescriptionPage_supportingPackageLabel;

	public static String methodPluginDescriptionPage_lockPlugin_message;

	public static String processDescriptionNameChangeConfirm_title;

	public static String processDescriptionNameChangeConfirm_message;

	public static String processDescription_configurationDescription;

	public static String processDescription_configurationSectionTitle;

	public static String processDescription_configurationSectionMessage;

	public static String processDescription_configurations;

	public static String processDescription_default;

	public static String ProcessDescription_selectConfiguration;

	public static String ProcessDeleteAction_deletecofirm_text0;

	public static String ProcessDeleteAction_selectDescriptorsToDelete;

	public static String viewHelperHealthCheckDialog_title;

	public static String viewHelper_performHealthCheck;

	public static String viewHelperHealthCheckDialog_message;

	public static String attachGuidanceFileDialog_title;

	public static String createElementDialog_title;

	public static String createNewElementError_msg;

	public static String dlgTitle_reloadLibrary;

	public static String createElementError_reason;

	public static String deleteConfigError_reason;

	public static String gef_changeBoundsCommand_label;

	public static String gef_changeNameCommand_label;

	public static String gef_changeNameCommand_undoMessage;

	public static String gef_changePropertyValueCommand_label;

	public static String gef_createBendpointCommand_label;

	public static String gef_createLinkCommand_label;

	public static String gef_createNodeCommand_label;

	public static String gef_deleteBendpointCommand_label;

	public static String gef_deleteCommand_label;

	public static String gef_deleteLinkCommand_label;

	public static String gef_moveBendpointCommand_label;

	public static String gef_reconnectLinkCommand_label;

	public static String gef_validatingDirectEditManager_bringDownPrompt;

	public static String gef_validatingFreeTextEditManager_bringDownPrompt;

	public static String gef_workProductNodeEditPart_validateMessage;

	public static String actions_ElementsViewDeleteAction_message;

	public static String actions_LibraryActionBarContributor_deleteErrorTitle;

	public static String actions_LibraryActionBarContributor_deleteErrorMessage;

	public static String actions_LibraryActionBarContributor_deleteErrorReason;

	public static String editors_MethodElementEditor_saveErrorTitle;

	public static String editors_MethodElementEditor_saveErrorMessage1;

	public static String editors_MethodElementEditor_saveErrorMessage2;

	public static String editors_MethodElementEditor_saveErrorReason1;

	public static String editors_MethodElementEditor_saveErrorReason2;

	public static String editors_MethodElementEditor_renameErrorTitle;

	public static String editors_MethodElementEditor_invalidEditorMsg;

	public static String editors_MethodElementEditor_invalidEditorTitle;

	public static String editors_MethodElementEditor_renameErrorMessage1;

	public static String renameError_title;

	public static String renameError_msg;

	public static String SelectElementDialog_selectelement_text;

	public static String editors_EditorChooser_systemErrorDialog_title;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_DescriptionLabel;

	public static String AuthoringUIPlugin_SaveAllEditorsPage_SelectAllButtonLabel;

	public static String OpenElementWorkbenchActionDelegate_edit_text0;

	public static String editors_EditorChooser_systemErrorDialog_message;

	public static String DescriptionFormPage_IconFileChooserDialog_title;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_DefaultLibraryName;

	public static String AuthoringUIPlugin_NewConfigurationMainPage_DescriptionLabel;

	public static String AuthoringUIPlugin_OpenConfigurationMainPage_pageDescription;

	public static String AuthoringUIPlugin_SaveAllEditorsPage_DeselectAllButtonLabel;

	public static String ElementHTMLViewer_0;

	public static String ElementsView_migration_dir_dlg_description_text;

	public static String editors_EditorChooser_systemErrorDialog_reason;

	public static String forms_DescriptionFormPage_imageTooBigDialog_title;

	public static String forms_DescriptionFormPage_imageTooBigDialog_template;

	public static String forms_DescriptionFormPage_imageNotFoundDialog_title;

	public static String forms_DescriptionFormPage_imageNotFoundDialog_template;

	public static String DescriptionFormPage_ShapeIconPreview_SelectButtonLabel;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_DefaultLibraryDescription;

	public static String AuthoringUIPlugin_NewConfigurationMainPage_DefaultBriefDescription;

	public static String AuthoringUIPlugin_SaveAllEditorsPage_saveAndClosePageDescription;

	public static String forms_GuidanceWithAttachmentsDescriptionPage_alreadyAttached_msg;

	public static String newLibraryError_msg;

	public static String newLibraryInternlError_reason;

	public static String newLibraryError_reason1;

	public static String newLibraryError_reason2;

	public static String newLibraryError_reason3;

	public static String newLibraryError_advice;

	public static String Process_ExternalID;

	public static String Process_Purpose;

	public static String Process_Scope;

	public static String Process_UsageNotes;

	public static String Process_Alternatives;

	public static String Process_HowToStaff;

	public static String Process_KeyConsideration;

	public static String Process_Scale;

	public static String Process_ProjectCharacteristics;

	public static String Process_RiskLevel;

	public static String Process_EstimatingTechnique;

	public static String Process_ProjectMemberExpertise;

	public static String Process_TypeOfContract;

	public static String backButton_text;

	public static String forwardButton_text;

	public static String forward_text;

	public static String stopButton_text;

	public static String refreshButton_text;

	public static String refresh_text;

	public static String newname_text;

	public static String printButton_text;

	public static String _UI_RefreshViewer_menu_item;

	public static String _UI_ShowPropertiesView_menu_item;

	public static String _UI_MethodEditor_menu;

	public static String _UI_CreateChild_menu_item;

	public static String _UI_CreateSibling_menu_item;

	public static String _UI_SelectionPage_label;

	public static String _UI_ParentPage_label;

	public static String _UI_ListPage_label;

	public static String _UI_TreePage_label;

	public static String _UI_TablePage_label;

	public static String _UI_TableTreePage_label;

	public static String _UI_ObjectColumn_label;

	public static String _UI_SelfColumn_label;

	public static String _UI_NoObjectSelected;

	public static String _UI_SingleObjectSelected;

	public static String _UI_MultiObjectSelected;

	public static String _UI_OpenEditorError_label;

	public static String _UI_Wizard_category;

	public static String _UI_MethodModelWizard_label;

	public static String _UI_MethodModelWizard_description;

	public static String _UI_MethodEditor_label;

	public static String _UI_MethodEditorFilenameDefaultBase;

	public static String _UI_MethodEditorFilenameExtension;

	public static String _UI_Wizard_label;

	public static String _WARN_FilenameExtension;

	public static String _UI_ModelObject;

	public static String _UI_XMLEncoding;

	public static String _UI_XMLEncodingChoices;

	public static String _UI_Wizard_initial_object_description;

	public static String _UI_FileConflict_label;

	public static String _WARN_FileConflict;

	public static String addLinkDialog_linkType;

	public static String openLinkCheckbox_text;
	
	public static String keepRawURLCheckbox_text;

	public static String heightLabel_text;

	public static String widthLabel_text;

	public static String ElementsView_20;

	public static String ElementsView_21;

	public static String ElementsView_22;

	public static String ElementsView_35;

	public static String ElementsView_36;

	public static String altTagLabel_text;

	public static String imageSizeLabel_text;

	public static String ProcessEditor;

	public static String ProcessEditor_Name;

	public static String ProcessEditor_PresentationName;

	public static String ProcessEditor_Index;

	public static String ProcessEditor_Predecessors;

	// public static String ConfigurationPage_Selected;
	public static String ChecklistOrder_description;

	public static String ElementsView_renaming_text;

	public static String ProcessEditor_ModelInfo;

	public static String ProcessEditor_Prefix;

	public static String MoveDialog_move_text;
	
	public static String AssignDialog_assign_text;
	
	public static String AssignDialog_reassign_text;
	
//	public static String AssignDialog_deepcoppy_text;

	public static String ChecklistOrder_title;

	public static String ProcessEditor_Repetable;

	public static String ProcessEditor_Ongoing;

	public static String ProcessEditor_Action_Synchronization;

	public static String ProcessEditor_EventDriven;

	public static String ProcessEditor_Deliverable;

	public static String ProcessEditor_Optional;

	public static String FilterDialog_Type_text;

	public static String FilterDialog_ExpandAll;

	public static String MoveDialog_moving_text;

	public static String DescriptionFormPage_LoadShapeIconWarning;

	public static String DescriptionFormPage_LoadShapeIconError;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_NameLabel;

	public static String AuthoringUIPlugin_NewConfigurationMainPage_pageTitle;

	public static String AuthoringUIPlugin_NewConfigurationMainPage_NameLabel;

	public static String AuthoringUIPlugin_newConfigurationWizard_title;

	public static String newConfigurationWizard_title;

	public static String newLibraryWizard_title;

	public static String newLibraryWizardMainPage_title;

	public static String newLibraryWizardMainPage_description;

	public static String libraryPathLabel_text;

	public static String libraryTypeLabel_text;

	public static String AuthoringUIPlugin_SaveAllEditorsPage_saveTitle;

	public static String AuthoringUIPlugin_SaveAllEditorsPage_saveDescription;

	public static String AuthoringUIPlugin_OpenConfigurationMainPage_pageTitle;

	public static String AuthoringUIPlugin_OpenConfigurationWizard_windowTitle;

	public static String ElementsView_replaceingwithformat_text;

	public static String DescriptionFormPage_LoadNodeIconWarning;

	// public static String MessageLabelProvider_unselectedpackages;

	public static String DescriptionFormPage_LoadNodeIconError;

	public static String StepsOrderDialog_steps;

	public static String StepsOrderDialog_title;

	public static String ProcessEditor_Planned;

	public static String specifydirectory_text;

	public static String ProcessEditor_MultipleOccurrences;

	public static String ProcessEditor_EntryState;

	public static String ProcessEditor_ExitState;

	public static String selectColumnstoAdd_text;

	public static String ProcessEditor_Type;

	public static String ProcessEditor_Team;

	public static String FilterDialog_title;

	public static String ProcessEditor_Action_Add;

	public static String FilterDialog_CollapseAll;

	public static String OpenCheatsheetView_title;

	public static String ProcessEditor_Action_RollUp;

	public static String ProcessEditor_Action_RollDown;

	public static String ProcessEditor_Action_MoveUp;

	public static String ProcessEditor_Action_MoveDown;

	public static String ProcessEditor_Action_Indent;
	
	public static String ProcessEditor_Action_Outdent;
	
	public static String ProcessEditor_Action_Reveal;

	public static String ProcessEditor_Reveal_Title;

	public static String ProcessEditor_Action_Copy;

	public static String FilterDialog_Pattern_text;

	public static String MethodLibraryEditor_title;

	// public static String MessageView_selected_text;
	public static String MessageView_errmsg_text;

	public static String ElementsView_err_saving;

	public static String err_copying_file_title;

	public static String err_copying_file_error;

	public static String err_copying_file_reason;

	public static String err_processing_file_title;

	public static String editConfiguration_tooltip;

	public static String editDialog_msgCannotEdit;

	public static String SaveThisAction_saveobject;

	public static String ElementsView_replace_text;

	public static String ProcessEditor_Action_Extend;

	public static String MoveDialog_destination_text;

	public static String chooseDefaultDirectory_text;

	public static String ProcessEditor_Action_Suppress;

	public static String ProcessEditor_Action_Suppress2;

	public static String ProcessEditor_Action_AssignUserDiagram;

	public static String UserDefinedDiagramDialog_title;

	public static String UserDefinedDiagramDialog_adImage;

	public static String UserDefinedDiagramDialog_addImage;

	public static String UserDefinedDiagramDialog_wpdImage;

	public static String UserDefinedDiagramDialog_notaFile;

	public static String UserDefinedDiagramDialog_assignButton;

	public static String UserDefinedDiagramDialog_enteredImageNotFound;

	public static String UserDefinedDiagramDialog_selectedImageNotFound;

	public static String UserDefinedDiagramDialog_useADImage;

	public static String UserDefinedDiagramDialog_useADDImage;

	public static String UserDefinedDiagramDialog_useWPDImage;

	public static String ProcessEditor_Action_Contribute;
	
	public static String ProcessEditor_Action_Customize;

	public static String ProcessEditor_Action_Replace;

	public static String ProcessEditor_Action_Diagrams;

	public static String ProcessEditor_action_deepCopy;

	public static String FilterDialog_BriefDescription;

	public static String ConfigurationPage_hideToolTip;

	public static String ConfigurationPage_Description;

	public static String ProcessEditor_Action_SuppressAll;

	public static String FilterDialog_Pattern_description;
	
	public static String FilterDialog_Process_Scope_Grp;
	
	public static String FilterDialog_Process_Scope_Grp_referencedPluginsBtn;
	
	public static String FilterDialog_Process_Scope_Grp_selectedPluginsBtn;
	
	public static String FilterDialog_Process_Scope_Grp_libBtn;
	
	public static String FilterDialog_Process_Scope_Grp_configBtn;
	
	public static String FilterDialog_Process_Scope_Grp_viewBtn;
	
	public static String PluginListDialog_title;
	
	public static String PluginListDialog_button_add;
	
	public static String PluginListDialog_button_remove;
	
	public static String PluginListDialog_addDialogMsg;
	
	public static String PluginListDialog_addDialogTitle;

	public static String ConfigurationPage_TreeTitleLabel;

	public static String ConfigurationPage_AddCategoriesTitleLabel;

	public static String ConfigurationPage_SubCategoriesTitleLabel;

	public static String ConfigurationPage_LoadingMessage;

	public static String ConfigurationPage_updateOnClick;
	public static String ConfigurationPage_updateOnClickToolTip;
	public static String ConfigurationPage_noUpdateOnClick;
	public static String ConfigurationPage_noUpdateOnClickToolTip;
	
	public static String MoveDialog_validdestination_text;

	public static String MoveDialog_cannotModifyDestination;

	public static String ProcessEditor_Action_RevealAll;

	public static String ProcessEditor_Action_OpenBaseActivity;

	public static String ProcessFormEditor_expanAllActionLabel;

	public static String ProcessFormEditor_collapseAllActionLabel;

	public static String ProcessEditor_Action_OpenActivityDiagram;

	public static String ProcessEditor_promptToDeleteBeforeReveal;

	public static String ProcessEditorPreferencePage_SelectColumns;

	public static String ProcessEditor_Action_OpenActivityDetailDiagram;

	public static String ProcessEditorPreferencePage_ColumnSelection;

	public static String ProcessEditorPreferencePage_switchConfiguration;

	public static String ProcessEditorPreferencePage_suppressionGroupTitle;

	public static String ProcessEditorPreferencePage_inheritSuppressionState;
	
	public static String ProcessEditorPreferencePage_synchronizationGroupTitle;

	public static String ProcessEditorPreferencePage_synchronizationFree;
	
	public static String ProcessEditorPreferencePage_conversionDialogTitle;
	
	public static String ProcessEditorPreferencePage_conversionDialogText;
	
	public static String ProcessEditorPreferencePage_conversionProgressText;
	
	public static String ProcessEditorPreferencePage_conversionProgressFailText;

	public static String ProcessEditor_Action_OpenWorkProductDependencyDiagram;

	public static String DescriptionFormPage_ShapeIconPreview_ClearButtonLabel;

	public static String DescriptionFormPage_NodeIconPreview_SelectButtonLabel;

	public static String ProcessEditor_Action_InsertNewPhase;

	public static String ViewHelper_reloadLibOnRollbackError;

	public static String ViewHelper_alreadydeleted_text;

	public static String ViewHelper_alreadydeletedconfirm_text;

	public static String ConfigurationPage_AddMissingToolTip;

	public static String ConfigurationDescriptionDescription;

	public static String ConfigurationDescriptionGeneralInfo;

	public static String ProcessEditor_Action_ApplyPattern;

	public static String MoveDialog_selectdestination_text;

	public static String MoveDialog_nomove_destination_problem_msg;

	public static String MethodLibraryEditor_troubleobject;

	public static String MessageLabelProvider_errchildpkgs;

	public static String ProcessEditor_SuppressDialog_Title;

	public static String ProcessEditor_SuppressDialog_Message;

	public static String ProcessEditor_Title;

	public static String SaveAswithdots_text;

	public static String ProcessEditor_WorkBreakdownStructure;

	public static String ProcessEditor_TeamAllocation;

	public static String ProcessEditor_WorkProductUsage;

	public static String ProcessEditor_ConsolidatedView;

	public static String ProcessEditor_confirmAutoSynch;

	public static String ProcessEditor_defaultSynchronization;

	public static String ConfigurationPage_Description1;

	public static String ConfigurationPage_Description2;

	public static String NewLibraryDialog_newlibrary_as;

	public static String NewPluginDialog_newplugin_text;

	public static String SelectElementDialog_title_text;

	public static String OpenConfigDialognewconfig_text;

	public static String processBreakdownStructureFormPage_BSEditor;

	public static String AbstractDiagramEditor_alignMenu_text;

	public static String AbstractDiagramEditor_refreshFromBaseActivity_text;

	public static String AbstractDiagramEditor_formatTextBoxActivity_text;

	public static String AbstractDiagramEditor_hAlignAverageAction_text;

	public static String AbstractDiagramEditor_hAlignFirstSelectedAction_text;

	public static String AbstractDiagramEditor_vAlignAverageAction_text;

	public static String MethodLibraryDescriptionFormPage_section_title;

	public static String MoveDialog_invalid_move_destination_problem_msg;

	public static String MethodLibraryEditor_savemodellibrary;

	public static String MethodLibraryEditor_error_dialog_title;

	public static String MethodLibraryEditor_save_library_problem_msg;

	public static String MethodElementDeleteAction_deleteconfirm_text;

	public static String ContentElementsOrderDialog_ContentElement_text;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_BrowseButtonLabel;

	public static String AuthoringUIPlugin_NewConfigurationMainPage_pageDescription;

	public static String AuthoringUIPlugin_SaveAllEditorsPage_saveAndClosePageTitle;

	public static String AbstractDiagramEditor_vAlignFirstSelectedAction_text;

	public static String AbstractDiagramEditor_Save_text;

	public static String AttachmentDialogattachFile_text;

	public static String ConfigurationPage_ConfigContent;

	public static String OpenConfigDialogopenconfig_text;

	public static String ElementsView_replaceAction_text;

	public static String AbstractDiagramEditor_Save_message;

	public static String ConfigurationPage_ShowErrorToolTip;

	public static String ConfigurationDescriptionFormPrefix;

	public static String ChecklistOrder_checklistitems_text;

	public static String AbstractDiagramEditor_MoveNode_label;

	public static String ConfigurationPage_MakeClosureToolTip;

	public static String NewPluginDialog_referenceplugin_text;

	public static String AbstractDiagramEditor_createFreeText_text;

	public static String DescriptionFormPage_NodeIconPreview_Label;

	public static String DiagramValidation_err_cannot_connect_text;

	public static String DiagramValidation_err_samepredandsuc_text;

	public static String EditorChooser_loaddErrorDlgTitle;

	public static String EditorChooser_ResourcesError;

	public static String ConfigurationPage_FormPrefix;

	public static String ConfigurationDescriptionName;

	public static String AttachmentDialogFileURL_text;

	public static String StepsOrderDialog_description;

	public static String MethodLibraryEditor_err_save;

	public static String MessageView_errelement_text;

	public static String MessageView_refelement_text;

	public static String ActivityDiagramEditor_createStartNode_text;

	public static String ConfigurationPage_ConfigContentDescription;

	public static String ContentElementsOrderDialog_description_text;

	public static String AuthoringUIPlugin_AbstractNewLibraryPage_DirectoryLabel;

	public static String AuthoringValidationPrefPage_0;

	public static String AuthoringValidationPrefPage_1;

	public static String AuthoringValidationPrefPage_2;

	public static String AuthoringValidationPrefPage_3;

	public static String RootPrefPage_enableprocesscontribution_text;

	public static String ConfigurationDescriptionDescription_text;

	public static String ConfigurationDescriptionDescriptionLabel;

	public static String ContributionSelection_filterdialog_title;

	public static String ElementsView_openVariabilityDialogAction_text;

	public static String VariabilitySelection_filterdialog_title;

	public static String VariabilitySelection_filterdialog_viewerLabel;

	public static String DescriptionFormPage_ShapeIconPreview_Label;

	public static String DiagramValidation_err_cannot_delete_text;

	public static String ActivityDiagramEditor_openActivityDetailDiagram_text;

	public static String MethodLibraryDescriptionFormPage_section_description;

	public static String DescriptionFormPage_NodeIconPreview_ClearButtonLabel;

	public static String WPCompartmentFigure_0;

	public static String promptfor_publish_unopen_activitydd_text;
	
	public static String use_state_on_workproduct_text;

	public static String prompt_for_publish_extend_activity_diagram;

	public static String ConfigProcessViewDialog_NamePattern;

	public static String showInResourceNavigatorAction_label;

	public static String ConfigProcessViewDialog_Pattern;

	public static String err_processing_file_description;

	public static String ConfigProcessViewDialog_CategoryType;

	public static String ConfigProcessViewDialog_BriefDescription;

	public static String ConfigProcessViewDialog_SelectCategories;

	public static String cheatsheet_load_failure_log_msg;

	public static String newConfigurationWirazd_createError;

	public static String newPluginWizard_createError;

	public static String errorDialog_moveError;

	public static String renameDialog_renameError;

	public static String errorDialog_createError;

	public static String duplicatePluginNameError_msg;

	public static String ProcessEditor_Action_AddADImage;

	public static String ProcessEditor_refreshErrorTitle;

	public static String ProcessEditor_refreshErrorMsg;

	public static String ProcessEditor_Action_AddADDImage;

	public static String ProcessEditor_Action_AddWPDImage;

	public static String ProcessEditor_Action_UseADImageInPublishing;

	public static String ProcessEditor_promptToDeleteBeforeSuppress;

	public static String ProcessEditor_Action_UseADDImageInPublishing;

	public static String ProcessEditor_Action_UseWPDImageInPublishing;

	public static String ProcessEditor_DiagramImage_InputDialog_initialValue;

	public static String ProcessEditor_Action_ShowLinkedElementinLibraryView;

	public static String ProcessEditor_updateSuppressionFromBaseAction_label;

	public static String ProcessEditor_ContextMenu_DiagramImages;

	public static String synchronizationWizard_descriptionPage_title;

	public static String synchronizationWizard_descriptionPage_text;

	public static String synchronizationWizard_selectConfigPage_title;

	public static String synchronizationWizard_selectConfigPage_text;

	public static String synchronizationWizard_selectConfigPage_configLabel;

	public static String synchronizationWizard_selectDetailsPage_title;

	public static String synchronizationWizard_selectDetailsPage_properties_lable;

	public static String synchronizationWizard_selectDetailsPage_name_lable;

	public static String synchronizationWizard_selectDetailsPage_presentationName_lable;

	public static String synchronizationWizard_selectDetailsPage_briefDesc_lable;

	public static String synchronizationWizard_selectDetailsPage_optionalInouts_label;

	public static String synchronizationWizard_selectDetailsPage_mandatoryInputs_lable;

	public static String synchronizationWizard_selectDetailsPage_outputs_label;

	public static String synchronizationWizard_selectDetailsPage_primaryPerformer_label;

	public static String synchronizationWizard_selectDetailsPage_addnPerformers_lable;

	public static String synchronizationWizard_selectDetailsPage_responsibleRoles_lable;

	public static String synchronizationWizard_selectDetailsPage_contnArtifacts_label;

	public static String synchronizationWizard_selectDetailsPage_dilvedParts_label;

	public static String synchronizationWizard_selectDetailsPage_selSteps_label;
	
	public static String synchronizationWizard_selectDetailsPage_selGuidance_label;

	public static String synchronizationWizard_selectDetailsPage_text;

	public static String synchronizationWizard_previewPage_title;

	public static String synchronizationWizard_previewPage_text;

	public static String selectEditorsToDiscardConflictChanges;

	public static String synchronizationWizard_title_text;

	public static String synchronizationWizard_descriptionPage_explainText;

	public static String openRTE;

	public static String closeRTE;

	public static String ChangeHistoryDialog_delimiter;

	public static String rolesets_guidancepage_sectiondescription;

	public static String disciplines_guidancepage_sectiondescription;

	public static String workproducttypes_guidancepage_sectiondescription;

	public static String domains_guidancepage_sectiondescription;

	public static String tools_guidancepage_sectiondescription;

	public static String customcategory_guidancepage_sectiondescription;

	public static String concept_guidancepage_sectiondescription;

	public static String checklist_guidancepage_sectiondescription;

	public static String example_guidancepage_sectiondescription;

	public static String guideline_guidancepage_sectiondescription;

	public static String roadmap_guidancepage_sectiondescription;

	public static String reusableasset_guidancepage_sectiondescription;

	public static String supportingmaterial_guidancepage_sectiondescription;

	public static String report_guidancepage_sectiondescription;

	public static String practice_guidancepage_sectiondescription;

	public static String template_guidancepage_sectiondescription;

	public static String termdefinition_guidancepage_sectiondescription;

	public static String toolmentor_guidancepage_sectiondescription;

	public static String whitepaper_guidancepage_sectiondescription;

	public static String estimationconsideration_guidancepage_sectiondescription;

	// New String Section Description
	public static String role_detailSection_desc;

	public static String role_generalInfoSection_desc;

	public static String role_variabilitySection_desc;

	public static String role_versionInfoSection_desc;

	public static String task_detailSection_desc;

	public static String task_generalInfoSection_desc;

	public static String task_variabilitySection_desc;

	public static String task_versionInfoSection_desc;

	public static String artifact_detailSection_desc;

	public static String artifact_generalInfoSection_desc;

	public static String artifact_iconSection_desc;

	public static String artifact_notationSection_desc;

	public static String artifact_tailoringSection_desc;

	public static String artifact_variabilitySection_desc;

	public static String artifact_versionInfoSection_desc;

	public static String outcome_detailSection_desc;

	public static String outcome_generalInfoSection_desc;

	public static String outcome_iconSection_desc;

	public static String outcome_notationSection_desc;

	public static String outcome_tailoringSection_desc;

	public static String outcome_variabilitySection_desc;

	public static String outcome_versionInfoSection_desc;

	public static String deliverable_detailSection_desc;

	public static String deliverable_generalInfoSection_desc;

	public static String deliverable_iconSection_desc;

	public static String deliverable_notationSection_desc;

	public static String deliverable_tailoringSection_desc;

	public static String deliverable_variabilitySection_desc;

	public static String deliverable_versionInfoSection_desc;

	public static String discipline_detailSection_desc;

	public static String discipline_generalInfoSection_desc;

	public static String discipline_variabilitySection_desc;

	public static String discipline_versionInfoSection_desc;

	public static String domain_detailSection_desc;

	public static String domain_generalInfoSection_desc;

	public static String domain_variabilitySection_desc;

	public static String domain_versionInfoSection_desc;

	public static String workproducttype_detailSection_desc;

	public static String workproducttype_generalInfoSection_desc;

	public static String workproducttype_variabilitySection_desc;

	public static String workproducttype_versionInfoSection_desc;

	public static String roleset_detailSection_desc;

	public static String roleset_generalInfoSection_desc;

	public static String roleset_variabilitySection_desc;

	public static String roleset_versionInfoSection_desc;

	public static String tool_detailSection_desc;

	public static String tool_generalInfoSection_desc;

	public static String tool_variabilitySection_desc;

	public static String tool_versionInfoSection_desc;

	public static String concept_detailSection_desc;

	public static String concept_generalInfoSection_desc;

	public static String concept_variabilitySection_desc;

	public static String concept_versionInfoSection_desc;

	public static String checklist_detailSection_desc;

	public static String checklist_generalInfoSection_desc;

	public static String checklist_variabilitySection_desc;

	public static String checklist_versionInfoSection_desc;

	public static String example_detailSection_desc;

	public static String example_generalInfoSection_desc;

	public static String example_variabilitySection_desc;

	public static String example_versionInfoSection_desc;

	public static String guideline_detailSection_desc;

	public static String guideline_generalInfoSection_desc;

	public static String guideline_variabilitySection_desc;

	public static String guideline_versionInfoSection_desc;

	public static String estimationconsideration_detailSection_desc;

	public static String estimationconsideration_generalInfoSection_desc;

	public static String estimationconsideration_variabilitySection_desc;

	public static String estimationconsideration_versionInfoSection_desc;

	public static String practice_detailSection_desc;

	public static String practice_generalInfoSection_desc;

	public static String practice_variabilitySection_desc;

	public static String practice_versionInfoSection_desc;

	public static String report_detailSection_desc;

	public static String report_generalInfoSection_desc;

	public static String report_variabilitySection_desc;

	public static String report_versionInfoSection_desc;

	public static String resuableasset_detailSection_desc;

	public static String resuableasset_generalInfoSection_desc;

	public static String resuableasset_variabilitySection_desc;

	public static String resuableasset_versionInfoSection_desc;

	public static String roadmap_detailSection_desc;

	public static String roadmap_generalInfoSection_desc;

	public static String roadmap_variabilitySection_desc;

	public static String roadmap_versionInfoSection_desc;

	public static String supportingmaterial_detailSection_desc;

	public static String supportingmaterial_generalInfoSection_desc;

	public static String supportingmaterial_variabilitySection_desc;

	public static String supportingmaterial_versionInfoSection_desc;

	public static String template_detailSection_desc;

	public static String template_generalInfoSection_desc;

	public static String template_variabilitySection_desc;

	public static String template_versionInfoSection_desc;

	public static String termdefinition_detailSection_desc;

	public static String termdefinition_generalInfoSection_desc;

	public static String termdefinition_variabilitySection_desc;

	public static String termdefinition_versionInfoSection_desc;

	public static String toolmentor_detailSection_desc;

	public static String toolmentor_generalInfoSection_desc;

	public static String toolmentor_variabilitySection_desc;

	public static String toolmentor_versionInfoSection_desc;

	public static String whitepaper_detailSection_desc;

	public static String whitepaper_generalInfoSection_desc;

	public static String whitepaper_variabilitySection_desc;

	public static String whitepaper_versionInfoSection_desc;

	public static String disciplinegrouping_detailSection_desc;

	public static String disciplinegrouping_generalInfoSection_desc;

	public static String disciplinegrouping_variabilitySection_desc;

	public static String disciplinegrouping_versionInfoSection_desc;

	public static String rolesetgrouping_detailSection_desc;

	public static String rolesetgrouping_generalInfoSection_desc;

	public static String rolesetgrouping_variabilitySection_desc;

	public static String rolesetgrouping_versionInfoSection_desc;

	public static String customcategory_detailSection_desc;

	public static String customcategory_generalInfoSection_desc;

	public static String customcategory_variabilitySection_desc;

	public static String customcategory_versionInfoSection_desc;

	public static String customcategory_IconSection_desc;

	public static String concept_iconSection_desc;

	public static String checklist_iconSection_desc;

	public static String toolmentor_iconSection_desc;

	public static String whitepaper_iconSection_desc;

	public static String estimationconsideration_iconSection_desc;

	public static String termdefinition_iconSection_desc;

	public static String template_iconSection_desc;

	public static String reusableasset_iconSection_desc;

	public static String report_iconSection_desc;

	public static String practice_iconSection_desc;

	public static String example_iconSection_desc;

	public static String guideline_iconSection_desc;

	public static String roadmap_iconSection_desc;

	public static String supportingmaterial_iconSection_desc;

	public static String activity_variability_error_title;

	public static String variability_error_title;

	public static String circular_dependency_error_title;

	public static String apply_pattern_error_msg;

	public static String apply_pattern_error_title;

	public static String editor_title_colon_with_spaces;

	public static String publish_categories_text;
	
	public static String publish_practices_text;
	
	public static String publish_practices_for_udt_text;

	public static String default_list_length_label;

	public static String extend_semantics_button_text;

	public static String extend_semantics_text;

	public static String ProcessEditor_Action_Preferences;

	public static String ProcessEditor_Action_Suppress_Task;

	public static String ProcessEditor_Action_Reveal_Task;

	public static String LayoutActionGroup_label;

	public static String LayoutActionGroup_flatLayoutAction_label;

	public static String LayoutActionGroup_hierarchicalLayoutAction_label;

	public static String preference_WorkBreakdownElements;

	public static String preference_DescriptorElements;

	public static String preference_breakDownElement_Description;

	public static String preference_Activity_Diagram;

	public static String preference_Activity_Detail_Diagram;
	
	public static String preference_Descriptors;
	
	public static String preference_includeDescriptorButton_text;

	public static String configurationPage_QuickfixError_reason1;

	public static String configurationPage_quickfixError_title;
	
	public static String defaultLinkTypePrefLabel;
	
	public static String forms_GuidanceWithUrlAttachmentsDescriptionPage_alreadyAttached_msg;
	
	public static String AttachmentDialogattachUrl_text;
	
	public static String Validate_method_library;

	public static String ValidationMarkerResolutionGenerator_0;

	public static String ValidationMarkerResolutionGenerator_1;
	
	public static String roleCategoriesPage_multipleSelectDescription;

	public static String taskCategoriesPage_multipleSelectDescription;
	
	public static String workProductCategoriesPage_multipleSelectDescription;
	
	public static String plugin_generalInfoSection_desc;

	public static String plugin_versionInfoSection_desc;
	
	public static String workproductDescriptionPage_slot_text;
	
	public static String slotSection_name;
	
	public static String slotSection_desc;
	
	public static String slotsLabel_text;
	
	public static String artifact_slotSection_desc;

	public static String deliverable_slotSection_desc;
	
	public static String outcome_slotSection_desc;
	
	public static String slotConfirmDialog_title;
	
	public static String wpFulFillsConfirmDialog_message;
	
	public static String wpSlotFulFillsConfirmDialog_message;
	
	public static String configProblemViewOptionsText;
	
	public static String hideErrosText;
	
	public static String hideWarningsText;
	
	public static String hideInfosText;
	
	public static String add_TasksperRow;
	
	public static String invalidTaskperRow_msg;
	
	public static String statesSection_name;
	
	public static String statesSection_desc;
	
	public static String states_name_text;
	
	public static String states_add_text;
	
	public static String states_delete_text;
	
	public static String states_manage_text;
	
	public static String ManageStateDialog_title;
	
	public static String ManageStateDialog_label_state;
	
	public static String ManageStateDialog_label_des;
	
	public static String ManageStateDialog_addBtn_label;
	
	public static String ManageStateDialog_deleteBtn_label;
	
	public static String ManageStateDialog_modifyBtn_label;
	
	public static String ManageStateDialog_closeBtn_label;
	
	public static String ManageStateDialog_warn_msg;
	
	public static String ManageStateDialog_warn_title;
	
	public static String StateEditDialog_title;
	
	public static String StateEditDialog_label_name;
	
	public static String StateEditDialog_label_des;
	
	public static String states_assign_text;
	
	public static String states_unassign_text;
	
	public static String states_wp_state_text;
	
	public static String states_global_state_text;
	
	public static String states_global_notes_text;
	
	public static String states_des_text;
	
	public static String ProcessEditor_Action_delete_AD_text;
	
	public static String ProcessEditor_Action_delete_ADD_text;
	
	public static String ProcessEditor_Action_delete_WPDD_text;
	
	public static String LeafElementsNode_text;
	
	public static String ConfigurationPage_RunQuery_label;
	
	public static String ConfigurationPage_RunQuery_ToolTip;
	
	static {
		NLS.initializeMessages(BUNDLE_NAME, AuthoringUIResources.class);
	}

}