diff options
Diffstat (limited to 'plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/provider/GroupItemProviderAdapter.java')
-rw-r--r-- | plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/provider/GroupItemProviderAdapter.java | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/provider/GroupItemProviderAdapter.java b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/provider/GroupItemProviderAdapter.java new file mode 100644 index 000000000..13770c70c --- /dev/null +++ b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/provider/GroupItemProviderAdapter.java @@ -0,0 +1,147 @@ +/******************************************************************************* + * Copyright (c) 2013 Obeo. + * 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 + *******************************************************************************/ +package org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.provider; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.compare.ComparePackage; +import org.eclipse.emf.compare.Comparison; +import org.eclipse.emf.compare.provider.IItemDescriptionProvider; +import org.eclipse.emf.compare.provider.IItemStyledLabelProvider; +import org.eclipse.emf.compare.provider.utils.IStyledString.IComposedStyledString; +import org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.IDifferenceGroup; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemColorProvider; +import org.eclipse.emf.edit.provider.IItemFontProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; + +/** + * @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a> + */ +public class GroupItemProviderAdapter extends ItemProviderAdapter implements IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource, IItemColorProvider, IItemFontProvider, IItemStyledLabelProvider, IItemDescriptionProvider { + + /** The comparsion object used by this group. */ + private Comparison comparison; + + /** The group for which we want the item provider. */ + private IDifferenceGroup group; + + /** + * Constructor. + */ + public GroupItemProviderAdapter(AdapterFactory adapterFactory, Comparison comparison, + IDifferenceGroup group) { + super(adapterFactory); + this.comparison = comparison; + this.group = group; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.compare.provider.IItemDescriptionProvider#getDescription(java.lang.Object) + */ + public String getDescription(Object object) { + return group.getName(); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getImage(java.lang.Object) + */ + @Override + public Object getImage(Object object) { + return group.getImage(); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object) + */ + @Override + public String getText(Object object) { + return group.getName(); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.compare.provider.IItemStyledLabelProvider#getStyledText(java.lang.Object) + */ + public IComposedStyledString getStyledText(Object object) { + return group.getStyledName(); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getChildrenFeatures(java.lang.Object) + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(ComparePackage.Literals.COMPARISON__MATCHED_RESOURCES); + childrenFeatures.add(ComparePackage.Literals.COMPARISON__MATCHES); + } + return childrenFeatures; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getValue(org.eclipse.emf.ecore.EObject, + * org.eclipse.emf.ecore.EStructuralFeature) + */ + @Override + protected Object getValue(EObject eObject, EStructuralFeature eStructuralFeature) { + return super.getValue(eObject, eStructuralFeature); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object) + */ + @Override + public Object getParent(Object object) { + return comparison; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#hasChildren(java.lang.Object) + */ + @Override + public boolean hasChildren(Object object) { + return !group.getGroupTree().isEmpty(); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getChildren(java.lang.Object) + */ + @Override + public Collection<?> getChildren(Object object) { + return group.getGroupTree(); + } + +} |