/*******************************************************************************
 * Copyright (c) 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
/*
 * Created on Jan 17, 2005
 */
package org.eclipse.jst.j2ee.internal;

import org.eclipse.jst.j2ee.internal.common.CommonEditResourceHandler;

/**
 * @author jialin
 */
public interface ICommonManifestUIConstants {
	String UP_BUTTON = ManifestUIResourceHandler.Up_1; 
	String DOWN_BUTTON = ManifestUIResourceHandler.Down_2; 
	String SELECT_ALL_BUTTON = ManifestUIResourceHandler.Select_All_3; 
	String DE_SELECT_ALL_BUTTON = ManifestUIResourceHandler.Deselect_All_4; 
	String ERROR_READING_MANIFEST_DIALOG_TITLE = ManifestUIResourceHandler.ERROR_READING_MANIFEST_DIALOG_TITLE; 
	String SAVE_MANIFEST_WITH_ERROR =ManifestUIResourceHandler.SAVE_MANIFEST_WITH_ERROR; 
	String ERROR_READING_MANIFEST_DIALOG_MESSAGE_EDITOR = ManifestUIResourceHandler.ERROR_READING_MANIFEST_DIALOG_MESSAGE_EDITOR; 
	String ERROR_READING_MANIFEST_DIALOG_MESSAGE_PROP_PAGE = ManifestUIResourceHandler.ERROR_READING_MANIFEST_DIALOG_MESSAGE_PROP_PAGE; 
	String MANIFEST_PROBLEM_1 = ManifestUIResourceHandler.MANIFEST_PROBLEM_1; 
	String MANIFEST_PROBLEM_2 = ManifestUIResourceHandler.MANIFEST_PROBLEM_2; 
	String MANIFEST_PROBLEM_3 = ManifestUIResourceHandler.MANIFEST_PROBLEM_3; 
	String MANIFEST_PROBLEM_4 = ManifestUIResourceHandler.MANIFEST_PROBLEM_4; 
	String REDIRECT_TEXT_EDITOR_UI_ = ManifestUIResourceHandler.REDIRECT_TEXT_EDITOR_UI_; 
	
	String EJB_CLIENT_RADIO_UI_		= CommonEditResourceHandler.getString("EJB_CLIENT_RADIO_UI_"); //$NON-NLS-1$
	String USE_EJB_SERVER_JARs_UI_ 	= CommonEditResourceHandler.getString("USE_EJB_SERVER_JARs_UI_"); //$NON-NLS-1$
	String USE_EJB_CLIENT_JARs_UI_ 	= CommonEditResourceHandler.getString("USE_EJB_CLIENT_JARs_UI_"); //$NON-NLS-1$
	String USE_BOTH_UI_				= CommonEditResourceHandler.getString("USE_BOTH_UI_"); //$NON-NLS-1$
}
