/******************************************************************************* * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte, * Generalitat de la Comunitat Valenciana . * 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: Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation * ******************************************************************************/ package org.eclipse.papyrus.uml.diagram.common.sheet; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource; import org.eclipse.ui.views.properties.IPropertyDescriptor; public class PropertySourceExtension extends EMFCompositePropertySource { private final AdapterFactory myItemProvidersAdapterFactory; // @unused protected PropertySourceExtension(Object object, IItemPropertySource itemPropertySource, String category, AdapterFactory itemProvidersAdapterFactory) { super(object, itemPropertySource, category); myItemProvidersAdapterFactory = itemProvidersAdapterFactory; } // @unused public PropertySourceExtension(Object object, IItemPropertySource itemPropertySource, AdapterFactory itemProvidersAdapterFactory) { super(object, itemPropertySource); myItemProvidersAdapterFactory = itemProvidersAdapterFactory; } @Override protected IPropertyDescriptor newPropertyDescriptor(IItemPropertyDescriptor itemPropertyDescriptor) { if(itemPropertyDescriptor.getFeature(object) instanceof EReference && !itemPropertyDescriptor.isMany(object)) { return new ReferencePropertyDescriptor(object, itemPropertyDescriptor, getCategory(), myItemProvidersAdapterFactory); } return super.newPropertyDescriptor(itemPropertyDescriptor); } }