/*******************************************************************************
* Copyright (c) 2006-2013 The RCP Company 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:
* The RCP Company - initial API and implementation
*******************************************************************************/
package com.rcpcompany.uibindings.shop.bindings;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;
import com.rcpcompany.uibindings.DecorationPosition;
import com.rcpcompany.uibindings.IUIBindingDecoratorExtender;
import com.rcpcompany.uibindings.IUIBindingDecoratorExtenderContext;
import com.rcpcompany.uibindings.IValueBinding;
import com.rcpcompany.uibindings.UIBindingsUtils;
import com.rcpcompany.uibindings.decorators.extenders.AbstractUIBindingDecoratorExtender;
import com.rcpcompany.uibindings.moao.IMOAOPackage;
import com.rcpcompany.uibindings.tests.shop.Contact;
/**
* Extender for {@link Contact#getName()}.
*
* @author Tonny Madsen, The RCP Company
*
*/
public class ContactExtender extends AbstractUIBindingDecoratorExtender implements IUIBindingDecoratorExtender {
@Override
public boolean isEnabled(IValueBinding binding) {
return binding.isEClassFeature(null, IMOAOPackage.Literals.NAMED_OBJECT__NAME);
}
private final Image cornerImage = UIBindingsUtils.getCornerImage(DecorationPosition.BOTTOM_RIGHT, new RGB(0, 255,
255));
@Override
public void extend(IUIBindingDecoratorExtenderContext context) {
final EObject value = context.getBinding().getModelObject();
if (!(value instanceof Contact)) return;
final Contact c = (Contact) value;
if (c.getCustomer() != null) {
context.setDecoratingImage(DecorationPosition.BOTTOM_RIGHT, false, cornerImage, "Contact is a customer");
}
}
}