Skip to main content
summaryrefslogblamecommitdiffstats
blob: 03b67ebec6a2b42853210168494e8a7c8256efdb (plain) (tree)
1
2
3
4
5
6
7
8
9
   
                                                                       



                                                                        
  

                                                   
   

                                 





                                                       
                                                           
                                        


                                                 


                                                    



                                                             














































                                                                                               



               















                                                                            
                               





















































































                                                                            







                                                     















                                                                                                               
                                                                                                           































































































                                                                          
                                                                
   
                                                                                                          
 
                                                                                                            
 
                                                                                                           






                                                 
                                                           




























                                                                    
                                                                     
   
                                                                                                          
 
                                                                                                            
 
                                                                                                           








                                                 
                                                                   

















































                                                                                   
                                                                   
   
                                                                                                          
 
                                                                                                            
 
                                                                                                           








                                                 
                                                                































                                                                                           
                                                                  
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            






                                                 
                                    
       
                                                               































                                                                                                    
                                                                       
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            









                                                             
                                                                









































                                                                                                                   
                             
















                                                                                                                      
                                                                            
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            



























































                                                                                      
                                                                        
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            






                                                 
                                    
       
                                                                   

















































                                                                                       
                                                                         
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            






                                                 
                                    
       
                                                                    

















































                                                                                                       
                                                                      
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            






                                                 
                                    
       
                                                                 































                                                                                              
                                                                                        
   
                                                                                                           
 
                                                                                                             
 
                                                                                                            






                                                 
                                    
       
                                                                          



                                                                   







































                                                                     
                                                 









                                      






                                                                
                                                                 












                                                                                                             
                                    
       
                                                                    






                                                                                                 










































                                                             
 
/**
 * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) 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:
 *    Eike Stepper - initial API and implementation
 */
package org.eclipse.emf.cdo.edit;

import org.eclipse.emf.cdo.CDOLock;
import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.CDOState;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.internal.edit.messages.Messages;
import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
import org.eclipse.emf.cdo.view.CDOView;

import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemProviderAdapter;

import java.util.Collection;
import java.util.List;

/**
 * @author Eike Stepper
 */
public class CDOItemProviderAdapter extends ItemProviderAdapter
{
  public CDOItemProviderAdapter(AdapterFactory adapterFactory)
  {
    super(adapterFactory);
  }

  @Override
  @SuppressWarnings("deprecation")
  public boolean hasChildren(Object object)
  {
    Collection<? extends EStructuralFeature> anyChildrenFeatures = getChildrenFeatures(object);
    if (anyChildrenFeatures.isEmpty())
    {
      anyChildrenFeatures = getChildrenReferences(object);
    }

    EObject eObject = (EObject)object;
    for (EStructuralFeature feature : anyChildrenFeatures)
    {
      if (feature.isMany())
      {
        List<?> children = (List<?>)eObject.eGet(feature);
        if (!children.isEmpty())
        {
          return true;
        }
      }
      else
      {
        if (eObject.eIsSet(feature))
        {
          return true;
        }
      }
    }

    return false;
  }

  /**
   * @since 2.0
   */
  @Override
  public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
  {
    if (itemPropertyDescriptors == null)
    {
      super.getPropertyDescriptors(object);
      addIDDescriptor(object);
      addVersionDescriptor(object);
      addStateDescriptor(object);
      addViewDescriptor(object);
      addContainerDescriptor(object);
      addDirectResourceDescriptor(object);
      addReadLockedDescriptor(object);
      addWriteLockedDescriptor(object);
      addAdaptersDescriptor(object);
      addChangeSubscriptionPoliciesDescriptor(object);
      addURIDescriptor(object);
    }

    return itemPropertyDescriptors;
  }

  /**
   * @since 2.0
   */
  protected void addIDDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new IDDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addVersionDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new VersionDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addStateDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new StateDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addViewDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new ViewDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addContainerDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new ContainerDescriptor(adapterFactory));
  }

  /**
   * @since 2.0
   */
  protected void addDirectResourceDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new DirectResourceDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addReadLockedDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new ReadLockedDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addWriteLockedDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new WriteLockedDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addAdaptersDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new AdaptersDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addChangeSubscriptionPoliciesDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new ChangeSubscriptionPoliciesDescriptor());
  }

  /**
   * @since 2.0
   */
  protected void addURIDescriptor(Object object)
  {
    itemPropertyDescriptors.add(new URIDescriptor());
  }

  /**
   * Base abstract to add CDO debug information to PropertiesView. Users wanting to add new information to the
   * Properties View can subclass this class instead of directly implementing {@link IItemPropertyDescriptor}.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static abstract class CDOPropertyDescriptor implements IItemPropertyDescriptor
  {
    /**
     * The filter id for expert properties
     */
    public static final String[] FILTER_ID_EXPERT = { "org.eclipse.ui.views.properties.expert" }; //$NON-NLS-1$

    /**
     * PropertiesView category for CDO
     */
    public static final String CDO_CATEGORY = Messages.getString("CDOItemProviderAdapter.0"); //$NON-NLS-1$

    public CDOPropertyDescriptor()
    {
    }

    public boolean canSetProperty(Object object)
    {
      return false;
    }

    public void setPropertyValue(Object object, Object value)
    {
    }

    public void resetPropertyValue(Object object)
    {
    }

    public boolean isPropertySet(Object object)
    {
      return false;
    }

    public String getCategory(Object object)
    {
      return CDO_CATEGORY;
    }

    public Collection<?> getChoiceOfValues(Object object)
    {
      return null;
    }

    public Object getHelpContextIds(Object object)
    {
      return null;
    }

    public boolean isCompatibleWith(Object object, Object anotherObject,
        IItemPropertyDescriptor anotherPropertyDescriptor)
    {
      return false;
    }

    public boolean isMany(Object object)
    {
      return false;
    }

    public boolean isMultiLine(Object object)
    {
      return false;
    }

    public boolean isSortChoices(Object object)
    {
      return false;
    }

    public String[] getFilterFlags(Object object)
    {
      return FILTER_ID_EXPERT;
    }

    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider();
    }

    /**
     * @author Eike Stepper
     */
    public static class DefaultLabelProvider implements IItemLabelProvider
    {
      public DefaultLabelProvider()
      {
      }

      public Object getImage(Object object)
      {
        return null;
      }

      public String getText(Object object)
      {
        return object.toString();
      }
    }
  }

  /**
   * Adds the {@link CDOID} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class IDDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.1"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.2"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.3"); //$NON-NLS-1$

    public IDDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      return CDOUtil.getCDOObject((EObject)object).cdoID();
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }
  }

  /**
   * Adds the version of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class VersionDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.4"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.5"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.6"); //$NON-NLS-1$

    public VersionDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof CDOObject)
      {
        return CDOUtil.getCDOObject((EObject)object).cdoRevision();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider()
      {
        @Override
        public String getText(Object object)
        {
          if (object instanceof CDORevision)
          {
            return String.valueOf(((CDORevision)object).getVersion());
          }

          return null;
        }
      };
    }
  }

  /**
   * Adds the {@link CDOState state} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class StateDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.7"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.8"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.9"); //$NON-NLS-1$

    public StateDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof CDOObject)
      {
        return CDOUtil.getCDOObject((EObject)object).cdoState();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }
  }

  /**
   * Adds the associate {@link CDOView view} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class ViewDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.10"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.11"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.12"); //$NON-NLS-1$

    public ViewDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof EObject)
      {
        return CDOUtil.getCDOObject((EObject)object).cdoView();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }
  }

  /**
   * Adds the {@link EObject#eContainer() eContainer} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class ContainerDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.13"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.14"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.15"); //$NON-NLS-1$

    private static AdapterFactory adapterFactory;

    public ContainerDescriptor(AdapterFactory adapterFactory)
    {
      ContainerDescriptor.adapterFactory = adapterFactory;
    }

    public Object getPropertyValue(Object object)
    {
      return CDOUtil.getCDOObject((EObject)object).eContainer();
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      // Needs a wrapped delegator to IItemLabelProvider since eContainer might be null for top level CDOObjects
      // and we can't return a null IItemLabelProvider
      return new IItemLabelProvider()
      {
        public Object getImage(Object object)
        {
          if (object != null)
          {
            return ((IItemLabelProvider)ContainerDescriptor.adapterFactory.adapt(object, IItemLabelProvider.class))
                .getImage(object);
          }

          return null;
        }

        public String getText(Object object)
        {
          if (object != null)
          {
            return ((IItemLabelProvider)ContainerDescriptor.adapterFactory.adapt(object, IItemLabelProvider.class))
                .getText(object);
          }

          return null;
        }
      };
    }
  }

  /**
   * Adds the {@link InternalEObject#eDirectResource() direct resource} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class DirectResourceDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.16"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.17"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.18"); //$NON-NLS-1$

    public DirectResourceDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof InternalEObject)
      {
        return ((InternalEObject)object).eDirectResource();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider()
      {
        @Override
        public String getText(Object object)
        {
          if (object instanceof CDOResource)
          {
            return ((Resource)object).getURI().toString();
          }

          return null;
        }
      };
    }
  }

  /**
   * Adds the {@link CDOLock read lock} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class ReadLockedDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.19"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.20"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.21"); //$NON-NLS-1$

    public ReadLockedDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof EObject)
      {
        return CDOUtil.getCDOObject((EObject)object).cdoReadLock();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider()
      {
        @Override
        public String getText(Object object)
        {
          if (object instanceof CDOLock)
          {
            return String.valueOf(((CDOLock)object).isLocked());
          }

          return null;
        }
      };
    }
  }

  /**
   * Adds the {@link CDOLock write lock} of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class WriteLockedDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.22"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.23"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.24"); //$NON-NLS-1$

    public WriteLockedDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof EObject)
      {
        return CDOUtil.getCDOObject((EObject)object).cdoWriteLock();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider()
      {
        @Override
        public String getText(Object object)
        {
          if (object instanceof CDOLock)
          {
            return String.valueOf(((CDOLock)object).isLocked());
          }

          return null;
        }
      };
    }
  }

  /**
   * Adds the {@link EObject#eAdapters() eAdapters} list of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class AdaptersDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.25"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.26"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.27"); //$NON-NLS-1$

    public AdaptersDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof EObject)
      {
        return CDOUtil.getCDOObject((EObject)object).eAdapters();
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }
  }

  /**
   * Adds the change subscription policies list of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class ChangeSubscriptionPoliciesDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.28"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.29"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.30"); //$NON-NLS-1$

    public ChangeSubscriptionPoliciesDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof EObject)
      {
        CDOView cdoView = CDOUtil.getCDOObject((EObject)object).cdoView();
        if (cdoView != null)
        {
          return cdoView.options().getChangeSubscriptionPolicies();
        }
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider()
      {
        @Override
        public String getText(Object object)
        {
          if (object instanceof CDOAdapterPolicy[])
          {
            StringBuilder builder = new StringBuilder();
            CDOAdapterPolicy[] policies = (CDOAdapterPolicy[])object;
            for (CDOAdapterPolicy policy : policies)
            {
              builder.append(policy.toString());
              builder.append(", "); //$NON-NLS-1$
            }

            return builder.toString();
          }

          return null;
        }
      };
    }
  }

  /**
   * Adds the URI of a {@link CDOObject} to the Properties View.
   * 
   * @since 2.0
   * @author Victor Roldan Betancort
   */
  public static class URIDescriptor extends CDOPropertyDescriptor
  {
    private static final String FEATURE_ID = Messages.getString("CDOItemProviderAdapter.31"); //$NON-NLS-1$

    private static final String DISPLAY_NAME = Messages.getString("CDOItemProviderAdapter.32"); //$NON-NLS-1$

    private static final String DESCRIPTION = Messages.getString("CDOItemProviderAdapter.33"); //$NON-NLS-1$

    public URIDescriptor()
    {
    }

    public Object getPropertyValue(Object object)
    {
      if (object instanceof EObject)
      {
        CDOObject cdoObject = CDOUtil.getCDOObject((EObject)object);
        Resource resource = cdoObject.eResource();
        if (resource != null)
        {
          CDOID id = cdoObject.cdoID();
          String fragment = id != null ? id.toURIFragment() : resource.getURIFragment(cdoObject);
          return resource.getURI().appendFragment(fragment).toString();
        }
      }

      return null;
    }

    public String getDescription(Object object)
    {
      return DESCRIPTION;
    }

    public String getDisplayName(Object object)
    {
      return DISPLAY_NAME;
    }

    public Object getFeature(Object object)
    {
      return FEATURE_ID;
    }

    public String getId(Object object)
    {
      return FEATURE_ID;
    }

    @Override
    public IItemLabelProvider getLabelProvider(Object object)
    {
      return new DefaultLabelProvider()
      {
        @Override
        public String getText(Object object)
        {
          if (object instanceof String)
          {
            return (String)object;
          }

          return null;
        }
      };
    }
  }
}

Back to the top