/******************************************************************************* 
* Copyright (c) 2010, 2011 EclipseSource 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:
*   Holger Staudacher - initial API and implementation
*******************************************************************************/ 
package org.eclipse.libra.warproducts.ui;


public class WARProductConstants {
  
  public static final String EDITOR_ID 
    = "org.eclipse.libra.warproducts.WARProductEditor"; //$NON-NLS-1$
  public static final String RAP_LAUNCH_CONFIG_TYPE 
    = "org.eclipse.rap.ui.launch.RAPLauncher"; //$NON-NLS-1$
  public static final String PLUGIN_ID = "org.eclipse.libra.warproducts.ui"; //$NON-NLS-1$
  public static final String FILE_EXTENSION = "warproduct"; //$NON-NLS-1$
  public static final String ARCHIVE_EXTENSION = ".war"; //$NON-NLS-1$
  public static final String DOC_PLUGIN_ID = "org.eclipse.libra.warproducts.help"; //$NON-NLS-1$
  // HelpContext Ids
  public static final String HELP_CONTEXT_CONFIGURATION_PAGE 
    = DOC_PLUGIN_ID + ".warproduct_editor_configuration"; //$NON-NLS-1$
  public static final String HELP_CONTEXT_OVERVIEW_PAGE 
    = DOC_PLUGIN_ID + ".warproduct_editor_overview"; //$NON-NLS-1$
  public static final String HELP_CONTEXT_EXPORT_PAGE 
    = DOC_PLUGIN_ID + ".warproduct_export_wizard_export"; //$NON-NLS-1$
  public static final String HELP_CONTEXT_VALIDATION_PAGE 
    = DOC_PLUGIN_ID + ".warproduct_export_wizard_validation"; //$NON-NLS-1$
  public static final String HELP_CONTEXT_SELECTION_PAGE 
    = DOC_PLUGIN_ID + ".warproduct_export_wizard_selection"; //$NON-NLS-1$
  public static final String HELP_CONTEXT_NEWFILE_PAGE 
    = DOC_PLUGIN_ID + ".warproduct_new_wizard_filepage"; //$NON-NLS-1$
}
