diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java
index 0f8ee3b..7aaa2b6 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowResourceByPathHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
+ * Copyright (c) 2006, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -53,7 +53,7 @@
 		}
 
 		try {
-			IViewPart view = activePage.showView(IPageLayout.ID_RES_NAV);
+			IViewPart view = activePage.showView(IPageLayout.ID_PROJECT_EXPLORER);
 			if (view instanceof ISetSelectionTarget) {
 				ISelection selection = new StructuredSelection(resource);
 				((ISetSelectionTarget) view).selectReveal(selection);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java
index 7fd3381..8eeff75 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -40,7 +40,7 @@
 		folder.addView(IPageLayout.ID_PROBLEM_VIEW);
 		folder.addView(IPageLayout.ID_PROP_SHEET);
 
-		layout.addView(IPageLayout.ID_RES_NAV, IPageLayout.LEFT, 0.5f,
+		layout.addView(IPageLayout.ID_PROBLEM_VIEW, IPageLayout.LEFT, 0.5f,
 				IPageLayout.ID_EDITOR_AREA);
 
 		// Extra stacks and views that will be shown and detached during the 'Detached Window' tests
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
index e0919ac..3c9ea81 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * Copyright (c) 2004, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -60,7 +60,7 @@
 	public DragTestSuite() {
 		super(Platform.find(TestPlugin.getDefault().getBundle(), new Path("data/dragtests.xml")));
 
-		String resNav = IPageLayout.ID_RES_NAV;
+		String resNav = IPageLayout.ID_PROJECT_EXPLORER;
 		String probView = IPageLayout.ID_PROBLEM_VIEW;
 
 		// Drag sources for views
@@ -140,7 +140,7 @@
 	 */
 	private TestDropLocation[] getViewDropTargets(IWorkbenchWindowProvider dragSource) {
 
-		String resNav = IPageLayout.ID_RES_NAV;
+		String resNav = IPageLayout.ID_PROJECT_EXPLORER;
 		String probView = IPageLayout.ID_PROBLEM_VIEW;
 
 		return new TestDropLocation[] {
@@ -194,7 +194,7 @@
 	}
 
 	private TestDropLocation[] getEditorDropTargets(IWorkbenchWindowProvider originatingWindow) {
-		String resNav = IPageLayout.ID_RES_NAV;
+		String resNav = IPageLayout.ID_PROJECT_EXPLORER;
 		// Drop targets that will only be tested for editors
 		return new TestDropLocation[] {
 		// A view
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
index faf84d4..c68ae5a 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2017 IBM Corporation and others.
+ * Copyright (c) 2004, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -230,7 +230,7 @@
 		proj = FileUtil.createProject("projectToSelect");
 
 		// show the 'Navigator'
-		IViewPart navigator = fActivePage.showView(IPageLayout.ID_RES_NAV);
+		IViewPart navigator = fActivePage.showView(IPageLayout.ID_PROJECT_EXPLORER);
 		// show the 'Properties' view
 		IViewPart propertiesView = fActivePage.showView(IPageLayout.ID_PROP_SHEET);
 
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java
index 0427e70..9163422 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2017 Versant Corp. and others.
+ * Copyright (c) 2008, 2021 Versant Corp. and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -520,7 +520,7 @@
 	 */
 	@Test
 	public void testBug278514NormalProperties() throws Exception {
-		testBug278514(IPageLayout.ID_RES_NAV, true);
+		testBug278514(IPageLayout.ID_PROGRESS_VIEW, true);
 	}
 
 	/**
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java
index f186e42..48c00f6 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2017 Andrei Loskutov.
+ * Copyright (c) 2009, 2021 Andrei Loskutov.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -46,7 +46,6 @@
 		bottomRight.addPlaceholder(NonRestorableView.ID);
 		bottomRight.addPlaceholder(SaveableMockViewPart.ID);
 		bottomRight.addPlaceholder(IPageLayout.ID_PROJECT_EXPLORER);
-		bottomRight.addPlaceholder(IPageLayout.ID_RES_NAV);
 	}
 
 	public static void applyPerspective(IWorkbenchPage activePage){
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java
index 33fa53a..3844164 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2017 Andrei Loskutov.
+ * Copyright (c) 2009, 2021 Andrei Loskutov.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -46,7 +46,6 @@
 		bottomRight.addPlaceholder(NonRestorableView.ID);
 		bottomRight.addPlaceholder(SaveableMockViewPart.ID);
 		bottomRight.addPlaceholder(IPageLayout.ID_PROJECT_EXPLORER);
-		bottomRight.addPlaceholder(IPageLayout.ID_RES_NAV);
 
 		// Top left.
 		IFolderLayout topLeft = layout.createFolder(
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java
index 0d2bd9a..4c0f53d 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * Copyright (c) 2004, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -27,7 +27,6 @@
 	public static final String STACK1_VIEW2 = IPageLayout.ID_PROBLEM_VIEW;
 	public static final String STACK1_PLACEHOLDER1 = IPageLayout.ID_PROP_SHEET;
 	public static final String STACK1_VIEW3 = IPageLayout.ID_TASK_LIST;
-	public static final String UNSTACKED_VIEW1 = IPageLayout.ID_RES_NAV;
 	public static final String FASTVIEW1 = IPageLayout.ID_BOOKMARKS;
 
 	@Override
@@ -41,8 +40,5 @@
 		folder.addPlaceholder(STACK1_PLACEHOLDER1);
 		folder.addView(STACK1_VIEW3);
 
-		layout.addView(UNSTACKED_VIEW1,  IPageLayout.TOP, 0.5f, IPageLayout.ID_EDITOR_AREA);
-
-//        layout.addFastView(FASTVIEW1);
 	}
 }
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
index c2b388a..f4ccd52 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2021 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -38,8 +38,6 @@
 import org.junit.Assert;
 
 public class ZoomTestCase extends UITestCase {
-//    protected static final String view1Id = IPageLayout.ID_RES_NAV;
-//
 //    protected static final String view2Id = IPageLayout.ID_OUTLINE;
 
 	protected WorkbenchWindow window;
@@ -98,7 +96,6 @@
 
 		stackedView1 = findView(ZoomPerspectiveFactory.STACK1_VIEW1);
 		stackedView2 = findView(ZoomPerspectiveFactory.STACK1_VIEW2);
-		unstackedView = findView(ZoomPerspectiveFactory.UNSTACKED_VIEW1);
 //        fastView = findView(ZoomPerspectiveFactory.FASTVIEW1);
 	}
 
