/*******************************************************************************
 * Copyright (c) 2016 Ericsson AB.
 * 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:
 *     Ericsson - initial API and implementation
 *******************************************************************************/

package org.eclipse.egerrit.internal.ui.utils;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.egerrit.internal.ui.utils.messages"; //$NON-NLS-1$

	public static String FilterClear;

	public static String FilterClearTooltip;

	public static String TypeFilterText;

	public static String EGerriTip;

	public static String ChangeDetailEditor_EGerriTipValue;

	public static String ActiveWorkspaceRevision_0;

	public static String ActiveWorkspaceRevision_1;

	public static String Branch_perfect_match;

	public static String Branch_change_Id;

	public static String Branch_branch_name;

	public static String BranchSelectionTableModel_title;

	public static String BranchSelectionTableModel_branch;

	public static String BranchSelectionTableModel_match;

	public static String BranchSelectionTableModel_switch;

	public static String BranchSelectionTableModel_new;

	public static String BranchSelectionTableModel_question;

	public static String ChangeDetailEditor_12;

	public static String ChangeDetailEditor_13;

	public static String ChangeDetailEditor_14;

	public static String ChangeDetailEditor_16;

	public static String ChangeDetailEditor_17;

	public static String ChangeDetailEditor_2;

	public static String ChangeDetailEditor_24;

	public static String ChangeDetailEditor_25;

	public static String ChangeDetailEditor_27;

	public static String ChangeDetailEditor_28;

	public static String ChangeDetailEditor_29;

	public static String ChangeDetailEditor_3;

	public static String ChangeDetailEditor_30;

	public static String ChangeDetailEditor_4;

	public static String ChangeDetailEditor_5;

	public static String ChangeDetailEditor_7;

	public static String ChangeDetailEditor_9;

	public static String ChangeDetailEditor_cherryPickBranch;

	public static String ChangeDetailEditor_updatingRelatedChanges;

	public static String CheckoutRevision_0;

	public static String CheckoutRevision_1;

	public static String CheckoutRevision_12;

	public static String CheckoutRevision_13;

	public static String CheckoutRevision_2;

	public static String CheckoutRevision_3;

	public static String CheckoutRevision_4;

	public static String CherryPickDialog_0;

	public static String CherryPickDialog_1;

	public static String CherryPickDialog_2;

	public static String CherryPickDialog_3;

	public static String CompareElementBase;

	public static String CompareElementPatchSet;

	public static String CompareElementPatchSetWithCommitId;

	public static String CompareUpperSection_PatchSet;

	public static String DataConverter_0;

	public static String DataConverter_4;

	public static String DataConverter_5;

	public static String FileDialog_title;

	public static String FileDialog_PatchSet;

	public static String FilesDialogDeleteFilter;

	public static String FilesDialogCommitMessageFilter;

	public static String FilesDialogReviewedFilesFilter;

	public static String FilesDialogCommentedFilesFilter;

	public static String FileInfoCompareCellLabelProvider_0;

	public static String FileInfoCompareCellLabelProvider_1;

	public static String FileInfoCompareCellLabelProvider_2;

	public static String FileTableLabelProvider_0;

	public static String FileTableLabelProvider_1;

	public static String FileTableLabelProvider_2;

	public static String FileTableLabelProvider_3;

	public static String FileTableLabelProvider_4;

	public static String HistoryTabView_0;

	public static String MarkerMenuContribution_0;

	public static String MarkerMenuContribution_1;

	public static String MarkerMenuContribution_2;

	public static String MessageTabView_0;

	public static String MessageTabView_1;

	public static String MessageTabView_2;

	public static String MessageTabView_3;

	public static String MessageTabView_4;

	public static String MessageTabView_5;

	public static String MessageTabView_6;

	public static String MessageTabView_7;

	public static String MessageTabView_8;

	public static String MessageTabView_9;

	public static String MessageTabView_10;

	public static String MessageTabView_11;

	public static String MessageTabView_12;

	public static String OpenFileProblem;

	public static String OpenFileProblemMessage;

	public static String QueryHelpers_executingQuery;

	public static String QuickFixDeleteDraftComment_0;

	public static String QuickFixDeleteDraftComment_1;

	public static String QuickFixModifyDraft_0;

	public static String QuickFixModifyDraft_1;

	public static String QuickFixReplyDoneToComment_0;

	public static String QuickFixReplyDoneToComment_1;

	public static String QuickFixReplyDoneToComment_2;

	public static String ReplyAction_0;

	public static String ReplyAction_1;

	public static String ReplyAction_2;

	public static String ReplyAction_3;

	public static String ReplyAction_4;

	public static String ReplyDialog_0;

	public static String ReplyDialog_1;

	public static String ReplyDialog_2;

	public static String ReplyHandlerTitle;

	public static String ReplyHandlerMessage;

	public static String SummaryTabView_0;

	public static String SummaryTabView_1;

	public static String SummaryTabView_2;

	public static String SummaryTabView_3;

	public static String SummaryTabView_4;

	public static String SummaryTabView_5;

	public static String SummaryTabView_6;

	public static String SummaryTabView_7;

	public static String SummaryTabView_8;

	public static String SummaryTabView_9;

	public static String SummaryTabView_10;

	public static String SummaryTabView_11;

	public static String SummaryTabView_12;

	public static String SummaryTabView_13;

	public static String SummaryTabView_14;

	public static String SummaryTabView_15;

	public static String SummaryTabView_16;

	public static String SummaryTabView_17;

	public static String SummaryTabView_18;

	public static String SummaryTabView_19;

	public static String SummaryTabView_20;

	public static String SummaryTabView_21;

	public static String SummaryTabView_22;

	public static String SummaryTabView_23;

	public static String SummaryTabView_24;

	public static String SummaryTabView_25;

	public static String SummaryTabView_26;

	public static String UIFilesTable_0;

	public static String UIFilesTable_1;

	public static String UIFilesTable_2;

	public static String UIUtils_EGerriTipShowAgain;

	public static String UIUtils_0;

	public static String UIUtils_1;

	public static String UIUtils_2;

	public static String UIUtils_3;

	public static String UIUtils_4;

	public static String UIUtils_5;

	public static String FileTabView_EGerriTipValue;

	public static String DeleteDraft_Text;

	public static String DeleteDraft_Tip;

	public static String DeleteDraft_Dialogue_Title;

	public static String DeleteDraft_Dialogue_Message;

	public static String ConfictWithTableDefinition_id;

	public static String ConfictWithTableDefinition_headline;

	public static String SameTopicTableDefinition_id;

	public static String SameTopicTableDefinition_headline;

	public static String ShowCommentedFileAction_0;

	public static String ShowCommentedFileAction_1;

	public static String ShowFilePathAction_0;

	public static String ShowFilePathAction_1;

	public static String SwitchPatchAction_0;

	public static String RelatedChangesTableDefinition_id;

	public static String RelatedChangesTableDefinition_headline;

	public static String RelatedChangesTableDefinition_flag;

	public static String Revert_message;

	public static String Revert_dialog_title;

	public static String Revert_dialog_message;

	public static String ReviewersTableDefinition_id;

	public static String ReviewersTableDefinition_role;

	public static String ReviewersTableDefinition_cr;

	public static String ReviewersTableDefinition_v;

	public static String FilesTableDefinition_filePath;

	public static String FilesTableDefinition_comments;

	public static String FilesTableDefinition_size;

	public static String MergeIfNecessary;

	public static String FastForwardOnly;

	public static String RebaseIfNecessary;

	public static String MergeAlways;

	public static String CherryPick;

	public static String HistoryTableModel_date;

	public static String HistoryTableModel_author;

	public static String HistoryTableModel_message;

	public static String CherryPickRevision_0;

	public static String CherryPickRevision_1;

	public static String CherryPickRevision_12;

	public static String CherryPickRevision_2;

	public static String CherryPickRevision_3;

	public static String CherryPickRevision_4;

	public static String CherryPickRevision_5;

	public static String CherryPickRevision_6;

	public static String CherryPickRevision_9;

	public static String GerritMultipleInput_1;

	public static String GerritMultipleInput_10;

	public static String GerritMultipleInput_11;

	public static String GerritMultipleInput_7;

	public static String GerritMultipleInput_9;

	public static String QuickFixer_0;

	public static String QuickFixer_1;

	public static String QuickFixer_3;

	public static String QuickFixer_5;

	public static String QuickFixReplyToComment_0;

	public static String QuickFixReplyToComment_1;

	public static String NextCommentAnnotationCommandName;

	public static String NextCommentAnnotationCommandTooltip;

	public static String PreviousCommentAnnotationCommandName;

	public static String PreviousCommentAnnotationCommandTooltip;

	public static String CheckoutHandler_generalMessage;

	public static String CheckoutHandler_specificMessage;

	public static String CherryPickHandler_title;

	public static String CherryPickHandler_notAvailable;

	public static String CherryPickHandler_generalMessage;

	public static String CherryPickHandler_specificMessage;

	public static String OpenCompareHandler_generalMessage;

	public static String OpenCompareHandler_specificMessage;

	public static String RebaseHandler_title;

	public static String RebaseHandler_generalMessage;

	public static String RebaseHandler_specificMessage;

	public static String RebaseProcess_title;

	public static String RebaseProcess_changeParent;

	public static String RebaseProcess_failed;

	public static String RebaseProcess_notPerform;

	public static String ReplyProcess_PlusTwo;

	public static String ReplyHandler_generalMessage;

	public static String ReplyHandler_specificMessage;

	public static String ReplyPlusTwoHandler_generalMessage;

	public static String ReplyPlusTwoHandler_specificMessage;

	public static String SubmitHandler_title;

	public static String SubmitHandler_notAvailable;

	public static String SubmitProcess_failed;

	public static String SubmitHandler_generalMessage;

	public static String SubmitHandler_specificMessage;

	public static String RebaseProcess_changeIsAlreadyUpToDate;

	public static String UIHistoryTable_0;

	public static String UIHistoryTable_1;

	public static String UIHistoryTable_reset;

	public static String UnsupportedInput_Text;

	public static String UnsupportedInput_Title;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
