/** * Uses the delegate item provider to test whether the delegate value has children. */ @Override public boolean hasChildren(Object object) { return delegateItemProvider instanceof ITreeItemContentProvider ? ((ITreeItemContentProvider)delegateItemProvider).hasChildren(getDelegateValue()) : false; }
/** * Uses the delegate item provider to return the delegate value's font. */ @Override public Object getFont(Object object) { return delegateItemProvider instanceof IItemFontProvider ? ((IItemFontProvider)delegateItemProvider).getFont(getDelegateValue()) : null; }
/** * Uses the delegate item provider to return an editable value. */ @Override public Object getEditableValue(Object object) { return delegateItemProvider instanceof IItemPropertySource ? ((IItemPropertySource)delegateItemProvider).getEditableValue(getDelegateValue()) : null; }
/** * Uses the delegate item provider to return the delegate value's foreground color. */ @Override public Object getForeground(Object object) { return delegateItemProvider instanceof IItemColorProvider ? ((IItemColorProvider)delegateItemProvider).getForeground(getDelegateValue()) : null; }
/** * Uses the delegate item provider to return the delegate value's new child descriptors. */ @Override public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain, Object sibling) { return delegateItemProvider instanceof IEditingDomainItemProvider ? ((IEditingDomainItemProvider)delegateItemProvider).getNewChildDescriptors(getDelegateValue(), editingDomain, sibling) : Collections.emptyList(); }
/** * Uses the delegate item provider to return the delegate value's text. */ @Override public String getText(Object object) { return delegateItemProvider instanceof IItemLabelProvider ? ((IItemLabelProvider)delegateItemProvider).getText(getDelegateValue()) : null; }
/** * Uses the delegate item provider to return the delegate value's image. */ @Override public Object getImage(Object object) { return delegateItemProvider instanceof IItemLabelProvider ? ((IItemLabelProvider)delegateItemProvider).getImage(getDelegateValue()) : null; }
/** * Uses the delegate item provider to return the delegate value's background color. */ @Override public Object getBackground(Object object) { return delegateItemProvider instanceof IItemColorProvider ? ((IItemColorProvider)delegateItemProvider).getBackground(getDelegateValue()) : null; }
/** * Uses the delegate item provider to return the delegate value's elements. */ @Override public Collection<?> getElements(Object object) { return delegateItemProvider instanceof IStructuredItemContentProvider ? ((IStructuredItemContentProvider)delegateItemProvider).getElements(getDelegateValue()) : Collections.emptyList(); }
/** * Wraps the property descriptors returned by the delegate item provider, caching and returning them. */ @Override public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { if (propertyDescriptors == null) { if (delegateItemProvider instanceof IItemPropertySource) { List<IItemPropertyDescriptor> l = ((IItemPropertySource)delegateItemProvider).getPropertyDescriptors(getDelegateValue()); propertyDescriptors = new ArrayList<IItemPropertyDescriptor>(l.size()); for (IItemPropertyDescriptor desc : l) { propertyDescriptors.add(new DelegatingWrapperItemPropertyDescriptor(getDelegateValue(), desc)); } } else { propertyDescriptors = Collections.emptyList(); } } return propertyDescriptors; }
/** * Uses the delegate item provider to return the delegate value's column image. */ public Object getColumnImage(Object object, int columnIndex) { return delegateItemProvider instanceof ITableItemLabelProvider ? ((ITableItemLabelProvider)delegateItemProvider).getColumnImage(getDelegateValue(), columnIndex) : getImage(object); }
@Override public Collection<?> getAffectedObjects() { List<Object> result = new ArrayList<Object>(super.getAffectedObjects()); updateChildren(); for (ListIterator<Object> i = result.listIterator(); i.hasNext(); ) { Object object = i.next(); if (object == getDelegateValue()) { i.set(DelegatingWrapperItemProvider.this); } else if (childrenMap != null) { Object wrapper = childrenMap.get(object); if (wrapper != null) { i.set(wrapper); } } } return result; } }
/** * Uses the delegate item provider to return the delegate value's column text. */ public String getColumnText(Object object, int columnIndex) { return delegateItemProvider instanceof ITableItemLabelProvider ? ((ITableItemLabelProvider)delegateItemProvider).getColumnText(getDelegateValue(), columnIndex) : getText(object); }
/** * Uses the delegate item provider to return the delegate value's font. */ public Object getFont(Object object, int columnIndex) { return delegateItemProvider instanceof ITableItemFontProvider ? ((ITableItemFontProvider)delegateItemProvider).getFont(getDelegateValue(), columnIndex) : getFont(object); }
/** * Uses the delegate item provider to return the delegate value's foreground color. */ public Object getForeground(Object object, int columnIndex) { return delegateItemProvider instanceof ITableItemColorProvider ? ((ITableItemColorProvider)delegateItemProvider).getForeground(getDelegateValue(), columnIndex) : getFont(object); }
/** * Uses the delegate item provider to return the delegate value's background color. */ public Object getBackground(Object object, int columnIndex) { return delegateItemProvider instanceof ITableItemColorProvider ? ((ITableItemColorProvider)delegateItemProvider).getBackground(getDelegateValue(), columnIndex) : getFont(object); }
/** * Called by {@link #delegateItemProvider} when it normally fires a notification to it's adapter factory; if the * notification originated from the delegate value, this repeats the notification, using {@link #wrapNotification * wrapNotification} to substitute this wrapper as the operative object. */ public void notifyChanged(Notification notification) { if (getRefreshElement(notification) == getDelegateValue()) { fireNotifyChanged(wrapNotification(notification)); } }
delegateChildren = ((ITreeItemContentProvider)delegateItemProvider).getChildren(getDelegateValue());
/** * Creates an instance for the given value. A decorator for the object's item provider is created, and * set up to repeat notifications, decorating them, so that they will update this wrapper, rather than the model * object they originate from. * If the adapter factory is an {@link IChangeNotifier}, * a listener is added to it, * so it's important to call {@link #dispose()}. * * @exception IllegalArgumentException If the specified value is null. */ public DelegatingWrapperItemProvider(Object value, Object owner, EStructuralFeature feature, int index, AdapterFactory adapterFactory) { super(value, owner, feature, index, adapterFactory); if (value == null) { throw new IllegalArgumentException("value=null"); } Object delegateValue = getDelegateValue(); if (delegateValue != null) { delegateItemProvider = getRootAdapterFactory().adapt(delegateValue, IStructuredItemContentProvider.class); if (delegateItemProvider instanceof IChangeNotifier) { ((IChangeNotifier)delegateItemProvider).addListener(this); } } }
Object commandOwner = getDelegateValue(); Command result = null;