/*******************************************************************************
 * Copyright (c) 2010 Angelo Zerr 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:
 *     Angelo Zerr <angelo.zerr@gmail.com> - Initial API and implementation 
 *******************************************************************************/
package org.eclipse.jst.server.jetty.ui.websocket;

import org.eclipse.jst.server.jetty.ui.websocket.internal.Messages;

public interface IWebSocketWizardConstants
{

    public final static String ADD_WEBSOCKET_WIZARD_WINDOW_TITLE = Messages.ADD_WEBSOCKET_WIZARD_WINDOW_TITLE;
    public final static String ADD_WEBSOCKET_WIZARD_PAGE_TITLE = Messages.ADD_WEBSOCKET_WIZARD_PAGE_TITLE;
    public static final String ADD_WEBSOCKET_WIZARD_PAGE_DESC = Messages.ADD_WEBSOCKET_WIZARD_PAGE_DESC;
}
