[565998] Use a product preference key for the editor ID when the new JS wizard
         can not otherwise find one.
diff --git a/bundles/org.eclipse.wst.jsdt.ui/plugin.properties b/bundles/org.eclipse.wst.jsdt.ui/plugin.properties
index 170d60b..ea4d430 100644
--- a/bundles/org.eclipse.wst.jsdt.ui/plugin.properties
+++ b/bundles/org.eclipse.wst.jsdt.ui/plugin.properties
@@ -1023,8 +1023,8 @@
 BaseWebBrowserLibrary = Web Browser Library
 
 documentationProvider=Documentation Provider
-wizard.name.0 = JavaScript Source File
-wizard.description.0 = Create a new JavaScript file
+wizard.name.0 = JavaScript File
+wizard.description.0 = Create a new JavaScript source file
 extension-point.name.0 = JsGlobalScopeUIInitializer
 extension-point.name.1 = JsGlobalScopeUIInitializer
 extension-point.name.validationHelper=javascriptValidationHelper
diff --git a/bundles/org.eclipse.wst.jsdt.ui/plugin.xml b/bundles/org.eclipse.wst.jsdt.ui/plugin.xml
index 7d4d42c..c21e933 100755
--- a/bundles/org.eclipse.wst.jsdt.ui/plugin.xml
+++ b/bundles/org.eclipse.wst.jsdt.ui/plugin.xml
@@ -367,6 +367,41 @@
 			<selection class="org.eclipse.core.resources.IResource" />
 		</wizard>
    </extension>
+	<extension point="org.eclipse.ui.perspectiveExtensions">
+        <perspectiveExtension targetID="org.eclipse.wst.web.ui.webDevPerspective">
+            <newWizardShortcut id="org.eclipse.wst.jsdt.ui.NewJSWizard"/>
+        </perspectiveExtension>
+        <perspectiveExtension targetID="org.eclipse.jst.j2ee.J2EEPerspective">
+            <newWizardShortcut id="org.eclipse.wst.jsdt.ui.NewJSWizard"/>
+        </perspectiveExtension>
+	</extension>
+	<extension
+		id="org.eclipse.wst.jsdt.ui.newJS"
+		point="org.eclipse.ui.navigator.navigatorContent">
+		<commonWizard
+        menuGroupId="org.eclipse.wst.web.ui"
+        type="new"
+        wizardId="org.eclipse.wst.jsdt.ui.NewJSWizard">
+			<enablement>
+				<or>
+					<adapt type="org.eclipse.core.resources.IResource">
+						<or>
+							<test
+								property="org.eclipse.wst.common.project.facet.core.projectFacet"
+								value="wst.web"/>
+							<test
+								property="org.eclipse.wst.common.project.facet.core.projectFacet"
+								value="jst.web"/>
+							<test
+								property="org.eclipse.wst.common.project.facet.core.projectFacet"
+								value="wst.jsdt.web"/>
+						</or>
+					</adapt>
+				</or>
+			</enablement>
+		</commonWizard>
+	</extension>
+
    <extension
          point="org.eclipse.ui.propertyPages">
       <page
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/IProductConstants.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/IProductConstants.java
index 8a19caa..0798bf0 100644
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/IProductConstants.java
+++ b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/IProductConstants.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2010 IBM Corporation and others.
+ * Copyright (c) 2005, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -26,5 +26,9 @@
 	 * The "explorer" view to use when creating the JavaScript perspective
 	 */
 	public static final String PERSPECTIVE_EXPLORER_VIEW = "idPerspectiveHierarchyView"; //$NON-NLS-1$
+	/**
+	 * The ID of the editor to open when the new JavaScript File wizard finishes
+	 */
+	public static final String NEW_FILE_EDITOR = "idNewJSFileEditor"; //$NON-NLS-1$
 
 }
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/ProductProperties.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/ProductProperties.java
index 8e67bf0..b824f81 100644
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/ProductProperties.java
+++ b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/ProductProperties.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2011 IBM Corporation and others.
+ * Copyright (c) 2005, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -19,6 +19,10 @@
 	 * Default values for WTP level product
 	 */
 	public static final String ID_PERSPECTIVE_EXPLORER_VIEW = IPageLayout.ID_PROJECT_EXPLORER;
+	/**
+	 * Default values for WTP level product
+	 */
+	public static final String ID_DEFAULT_JS_EDITOR = "org.eclipse.ui.genericeditor.GenericEditor"; //$NON-NLS-1$
 
 	/**
 	 * Return the value for the associated key from the Platform Product registry or return the
@@ -36,6 +40,8 @@
 		if (value == null) {
 			if (key.equals(IProductConstants.PERSPECTIVE_EXPLORER_VIEW))
 				return ID_PERSPECTIVE_EXPLORER_VIEW;
+			if (key.equals(IProductConstants.NEW_FILE_EDITOR))
+				return ID_DEFAULT_JS_EDITOR;
 		}
 		return value;
 	}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/NewJSWizard.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/NewJSWizard.java
index 3da76d3..613a2b5 100644
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/NewJSWizard.java
+++ b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/NewJSWizard.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2012 IBM Corporation and others.
+ * Copyright (c) 2005, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -15,14 +15,17 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IEditorDescriptor;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.ide.IDE;
+import org.eclipse.wst.jsdt.internal.ui.IProductConstants;
 import org.eclipse.wst.jsdt.internal.ui.JavaPluginImages;
 import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
+import org.eclipse.wst.jsdt.internal.ui.ProductProperties;
 
 public class NewJSWizard extends Wizard implements INewWizard {
 	
@@ -53,7 +56,19 @@
 						if (activeWorkbenchWindow != null) {
 							IWorkbenchPage page = activeWorkbenchWindow.getActivePage();
 							if (page != null) {
-								IDE.openEditor(page, file, true, false);
+								IEditorDescriptor defaultEditor = IDE.getDefaultEditor(file);
+								/*
+								 * If this was going to open in the default
+								 * Text Editor, redirect to the preset
+								 * preferred one.
+								 */
+								if ("org.eclipse.ui.DefaultTextEditor".equals(defaultEditor.getId())) { //$NON-NLS-1$
+									String editorId = ProductProperties.getProperty(IProductConstants.NEW_FILE_EDITOR);
+									IDE.openEditor(page, file, editorId);
+								}
+								else {
+									IDE.openEditor(page, file, true, false);
+								}
 							}
 						}
 					}