/** * <copyright> Copyright (c) 2008-2009 Jonas Helming, Maximilian Koegel. 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 </copyright> * * * */ package org.eclipse.emf.emfstore.server.model.accesscontrol.provider; import java.util.Collection; import java.util.List; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ViewerNotification; import org.eclipse.emf.emfstore.common.model.provider.IdentifiableElementItemProvider; import org.eclipse.emf.emfstore.server.model.accesscontrol.AccesscontrolPackage; import org.eclipse.emf.emfstore.server.model.accesscontrol.PermissionType; import org.eclipse.emf.emfstore.server.model.provider.ServerEditPlugin; /** * This is the item provider adapter for a {@link org.eclipse.emf.emfstore.server.model.accesscontrol.PermissionType} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public class PermissionTypeItemProvider extends IdentifiableElementItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** * This constructs an instance from a factory and a notifier. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public PermissionTypeItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } /** * This returns the property descriptors for the adapted class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { if (itemPropertyDescriptors == null) { super.getPropertyDescriptors(object); addIdPropertyDescriptor(object); addReferingRolesPropertyDescriptor(object); addProjectPermissionPropertyDescriptor(object); } return itemPropertyDescriptors; } /** * This adds a property descriptor for the Id feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected void addIdPropertyDescriptor(Object object) { itemPropertyDescriptors.add (createItemPropertyDescriptor (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PermissionType_id_feature"), getString("_UI_PropertyDescriptor_description", "_UI_PermissionType_id_feature", "_UI_PermissionType_type"), AccesscontrolPackage.Literals.PERMISSION_TYPE__ID, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** * This adds a property descriptor for the Refering Roles feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected void addReferingRolesPropertyDescriptor(Object object) { itemPropertyDescriptors.add (createItemPropertyDescriptor (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PermissionType_referingRoles_feature"), getString("_UI_PropertyDescriptor_description", "_UI_PermissionType_referingRoles_feature", "_UI_PermissionType_type"), AccesscontrolPackage.Literals.PERMISSION_TYPE__REFERING_ROLES, true, false, true, null, null, null)); } /** * This adds a property descriptor for the Project Permission feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected void addProjectPermissionPropertyDescriptor(Object object) { itemPropertyDescriptors.add (createItemPropertyDescriptor (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PermissionType_projectPermission_feature"), getString("_UI_PropertyDescriptor_description", "_UI_PermissionType_projectPermission_feature", "_UI_PermissionType_type"), AccesscontrolPackage.Literals.PERMISSION_TYPE__PROJECT_PERMISSION, true, false, false, ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, null, null)); } /** * This returns PermissionType.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object getImage(Object object) { return overlayImage(object, getResourceLocator().getImage("full/obj16/PermissionType")); } /** * This returns the label text for the adapted class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public String getText(Object object) { String label = ((PermissionType)object).getId(); return label == null || label.length() == 0 ? getString("_UI_PermissionType_type") : getString("_UI_PermissionType_type") + " " + label; } /** * This handles model notifications by calling {@link #updateChildren} to update any cached * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void notifyChanged(Notification notification) { updateChildren(notification); switch (notification.getFeatureID(PermissionType.class)) { case AccesscontrolPackage.PERMISSION_TYPE__ID: case AccesscontrolPackage.PERMISSION_TYPE__PROJECT_PERMISSION: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; } super.notifyChanged(notification); } /** * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children * that can be created under this object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { super.collectNewChildDescriptors(newChildDescriptors, object); } /** * Return the resource locator for this item provider's resources. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public ResourceLocator getResourceLocator() { return ServerEditPlugin.INSTANCE; } }