DatatypesItemProviderAdapterFactory.java
Go to the documentation of this file.
00001 
00007 package org.best_of_robotics.model.datatypes.provider;
00008 
00009 import java.util.ArrayList;
00010 import java.util.Collection;
00011 
00012 import org.best_of_robotics.model.datatypes.util.DatatypesAdapterFactory;
00013 
00014 import org.eclipse.emf.common.notify.Adapter;
00015 import org.eclipse.emf.common.notify.Notification;
00016 import org.eclipse.emf.common.notify.Notifier;
00017 
00018 import org.eclipse.emf.edit.provider.ChangeNotifier;
00019 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
00020 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
00021 import org.eclipse.emf.edit.provider.IChangeNotifier;
00022 import org.eclipse.emf.edit.provider.IDisposable;
00023 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
00024 import org.eclipse.emf.edit.provider.IItemLabelProvider;
00025 import org.eclipse.emf.edit.provider.IItemPropertySource;
00026 import org.eclipse.emf.edit.provider.INotifyChangedListener;
00027 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
00028 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
00029 
00039 public class DatatypesItemProviderAdapterFactory extends DatatypesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
00046         protected ComposedAdapterFactory parentAdapterFactory;
00047 
00054         protected IChangeNotifier changeNotifier = new ChangeNotifier();
00055 
00062         protected Collection<Object> supportedTypes = new ArrayList<Object>();
00063 
00070         public DatatypesItemProviderAdapterFactory() {
00071                 supportedTypes.add(IEditingDomainItemProvider.class);
00072                 supportedTypes.add(IStructuredItemContentProvider.class);
00073                 supportedTypes.add(ITreeItemContentProvider.class);
00074                 supportedTypes.add(IItemLabelProvider.class);
00075                 supportedTypes.add(IItemPropertySource.class);
00076         }
00077 
00084         protected TypesLibraryItemProvider typesLibraryItemProvider;
00085 
00092         @Override
00093         public Adapter createTypesLibraryAdapter() {
00094                 if (typesLibraryItemProvider == null) {
00095                         typesLibraryItemProvider = new TypesLibraryItemProvider(this);
00096                 }
00097 
00098                 return typesLibraryItemProvider;
00099         }
00100 
00107         protected SimpleTypeItemProvider simpleTypeItemProvider;
00108 
00115         @Override
00116         public Adapter createSimpleTypeAdapter() {
00117                 if (simpleTypeItemProvider == null) {
00118                         simpleTypeItemProvider = new SimpleTypeItemProvider(this);
00119                 }
00120 
00121                 return simpleTypeItemProvider;
00122         }
00123 
00130         protected RosIDLReferenceItemProvider rosIDLReferenceItemProvider;
00131 
00138         @Override
00139         public Adapter createRosIDLReferenceAdapter() {
00140                 if (rosIDLReferenceItemProvider == null) {
00141                         rosIDLReferenceItemProvider = new RosIDLReferenceItemProvider(this);
00142                 }
00143 
00144                 return rosIDLReferenceItemProvider;
00145         }
00146 
00153         protected VectorTypeItemProvider vectorTypeItemProvider;
00154 
00161         @Override
00162         public Adapter createVectorTypeAdapter() {
00163                 if (vectorTypeItemProvider == null) {
00164                         vectorTypeItemProvider = new VectorTypeItemProvider(this);
00165                 }
00166 
00167                 return vectorTypeItemProvider;
00168         }
00169 
00176         protected CustomTypeItemProvider customTypeItemProvider;
00177 
00184         @Override
00185         public Adapter createCustomTypeAdapter() {
00186                 if (customTypeItemProvider == null) {
00187                         customTypeItemProvider = new CustomTypeItemProvider(this);
00188                 }
00189 
00190                 return customTypeItemProvider;
00191         }
00192 
00199         protected FieldItemProvider fieldItemProvider;
00200 
00207         @Override
00208         public Adapter createFieldAdapter() {
00209                 if (fieldItemProvider == null) {
00210                         fieldItemProvider = new FieldItemProvider(this);
00211                 }
00212 
00213                 return fieldItemProvider;
00214         }
00215 
00222         public ComposeableAdapterFactory getRootAdapterFactory() {
00223                 return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
00224         }
00225 
00232         public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
00233                 this.parentAdapterFactory = parentAdapterFactory;
00234         }
00235 
00241         @Override
00242         public boolean isFactoryForType(Object type) {
00243                 return supportedTypes.contains(type) || super.isFactoryForType(type);
00244         }
00245 
00252         @Override
00253         public Adapter adapt(Notifier notifier, Object type) {
00254                 return super.adapt(notifier, this);
00255         }
00256 
00262         @Override
00263         public Object adapt(Object object, Object type) {
00264                 if (isFactoryForType(type)) {
00265                         Object adapter = super.adapt(object, type);
00266                         if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
00267                                 return adapter;
00268                         }
00269                 }
00270 
00271                 return null;
00272         }
00273 
00280         public void addListener(INotifyChangedListener notifyChangedListener) {
00281                 changeNotifier.addListener(notifyChangedListener);
00282         }
00283 
00290         public void removeListener(INotifyChangedListener notifyChangedListener) {
00291                 changeNotifier.removeListener(notifyChangedListener);
00292         }
00293 
00300         public void fireNotifyChanged(Notification notification) {
00301                 changeNotifier.fireNotifyChanged(notification);
00302 
00303                 if (parentAdapterFactory != null) {
00304                         parentAdapterFactory.fireNotifyChanged(notification);
00305                 }
00306         }
00307 
00314         public void dispose() {
00315                 if (typesLibraryItemProvider != null) typesLibraryItemProvider.dispose();
00316                 if (simpleTypeItemProvider != null) simpleTypeItemProvider.dispose();
00317                 if (rosIDLReferenceItemProvider != null) rosIDLReferenceItemProvider.dispose();
00318                 if (vectorTypeItemProvider != null) vectorTypeItemProvider.dispose();
00319                 if (customTypeItemProvider != null) customTypeItemProvider.dispose();
00320                 if (fieldItemProvider != null) fieldItemProvider.dispose();
00321         }
00322 
00323 }


bride_plugin_source
Author(s): Alexander Bubeck
autogenerated on Sun Oct 5 2014 22:38:34