blob: 90e36c828486dd476e112568b728d4a5e872da87 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2016 Obeo 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:
* Obeo - initial API and implementation
* Philip Langer - add SizeChangeItemProviderSpec
*******************************************************************************/
package org.eclipse.emf.compare.diagram.internal.extensions.provider.spec;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory;
import org.eclipse.emf.compare.provider.IItemDescriptionProvider;
import org.eclipse.emf.compare.provider.IItemStyledLabelProvider;
import org.eclipse.emf.compare.provider.ISemanticObjectLabelProvider;
import org.eclipse.emf.edit.provider.ItemProviderAdapter;
/**
* Specific item provider adapter factory to use the {@link ForwardingDiagramDiffItemProvider} providers.
*
* @author <a href="mailto:cedric.notot@obeo.fr">Cedric Notot</a>
*/
public class ExtensionsItemProviderAdapterFactorySpec extends ExtensionsItemProviderAdapterFactory {
/** Item provider used for the Show change. */
ShowItemProviderSpec fShowItemProvider;
/** Item provider used for the Hide change. */
HideItemProviderSpec fHideItemProvider;
/** Item provider used for the Node change. */
NodeChangeItemProviderSpec fNodeChangeItemProvider;
/** Item provider used for the Edge change. */
EdgeChangeItemProviderSpec fEdgeChangeItemProvider;
/** Item provider used for the coordinates change. */
CoordinatesChangeItemProviderSpec fCoordinatesChangeItemProvider;
/** Item provider used for the size change. */
SizeChangeItemProviderSpec fSizeChangeItemProvider;
/** Item provider used for the diagram change. */
DiagramChangeItemProviderSpec fDiagramChangeItemProvider;
/**
* Constructor.
*/
public ExtensionsItemProviderAdapterFactorySpec() {
super();
supportedTypes.add(IItemStyledLabelProvider.class);
supportedTypes.add(IItemDescriptionProvider.class);
supportedTypes.add(ISemanticObjectLabelProvider.class);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createEdgeChangeAdapter()
*/
@Override
public Adapter createEdgeChangeAdapter() {
if (fEdgeChangeItemProvider == null) {
fEdgeChangeItemProvider = new EdgeChangeItemProviderSpec(
(ItemProviderAdapter)super.createEdgeChangeAdapter());
}
return fEdgeChangeItemProvider;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createHideAdapter()
*/
@Override
public Adapter createHideAdapter() {
if (fHideItemProvider == null) {
fHideItemProvider = new HideItemProviderSpec((ItemProviderAdapter)super.createHideAdapter());
}
return fHideItemProvider;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createNodeChangeAdapter()
*/
@Override
public Adapter createNodeChangeAdapter() {
if (fNodeChangeItemProvider == null) {
fNodeChangeItemProvider = new NodeChangeItemProviderSpec(
(ItemProviderAdapter)super.createNodeChangeAdapter());
}
return fNodeChangeItemProvider;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createShowAdapter()
*/
@Override
public Adapter createShowAdapter() {
if (fShowItemProvider == null) {
fShowItemProvider = new ShowItemProviderSpec((ItemProviderAdapter)super.createShowAdapter());
}
return fShowItemProvider;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createCoordinatesChangeAdapter()
*/
@Override
public Adapter createCoordinatesChangeAdapter() {
if (fCoordinatesChangeItemProvider == null) {
fCoordinatesChangeItemProvider = new CoordinatesChangeItemProviderSpec(
(ItemProviderAdapter)super.createCoordinatesChangeAdapter());
}
return fCoordinatesChangeItemProvider;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createSizeChangeAdapter()
*/
@Override
public Adapter createSizeChangeAdapter() {
if (fSizeChangeItemProvider == null) {
fSizeChangeItemProvider = new SizeChangeItemProviderSpec(
(ItemProviderAdapter)super.createSizeChangeAdapter());
}
return fSizeChangeItemProvider;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.compare.diagram.internal.extensions.provider.ExtensionsItemProviderAdapterFactory#createDiagramChangeAdapter()
*/
@Override
public Adapter createDiagramChangeAdapter() {
if (fDiagramChangeItemProvider == null) {
fDiagramChangeItemProvider = new DiagramChangeItemProviderSpec(
(ItemProviderAdapter)super.createDiagramChangeAdapter());
}
return fDiagramChangeItemProvider;
}
}