Bug 304393 [CommonNavigator] Custom tabbed property sheets non functional when using CN w/ view id different from project explorer
Build Identifier: 3.5.X and 3.6 all builds. Created a custom common navigator with a unique id. Enable and use the tabbed property sheets extensions for this view id. Use the TabDescriptorProvider portion of the tabbed.PropertyContributor. This worked in 3.4.x, but starting in 3.5 the tabbed property sheet fails to load. I've traced back the code to where I believe the defect was introduced. package org.eclipse.ui.internal.navigator.resources.workbench; public class TabbedPropertySheetAdapterFactory implements IAdapterFactory { /* * (non-Javadoc) * * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, * java.lang.Class) */ public Object getAdapter(Object adaptableObject, Class adapterType) { if (adaptableObject instanceof CommonNavigator) { if (!((CommonNavigator)adaptableObject).getViewSite().getId().equals(ProjectExplorer.VIEW_ID)) return null; if (IPropertySheetPage.class == adapterType) return new TabbedPropertySheetPage( new TabbedPropertySheetProjectExplorerContributor( (CommonNavigator) adaptableObject)); } return null; } Notice the if statement above that checks for the ProjectExplorer.VIEW_ID. This line was not in 3.4.2 and a TabbedPropertySheetPage was returned and functioned well. Starting in 3.5.X only a null is returned due to my common navigator view having a different view id. Reproducible: Always Steps to Reproduce: 1. Create a custom CommonNavigator view with unique id 2. Create a TabDescriptorProvider and custom tabbed property sheet 3. Run eclipse and try and activate the tabbed property sheet. Property sheet will not show up/be activated.
bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetAdapterFactory.java
/*******************************************************************************
 * Copyright (c) 2006, 2009 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
 ******************************************************************************/
package org.eclipse.ui.internal.navigator.resources.workbench;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.ui.navigator.CommonNavigator;
import org.eclipse.ui.navigator.resources.ProjectExplorer;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
/**
 * An property sheet page adapter factory for the Project Explorer.
 *  
 * @since 3.2
 */
public class TabbedPropertySheetAdapterFactory