/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.editor.extend; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.swt.widgets.Composite; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.model.ExtensibleModel; import com.hundsun.ares.studio.core.model.extend.IBasicExtendPropertyDescriptor; import com.hundsun.ares.studio.core.model.extend.IRefExtendPropertyProvider; import com.hundsun.ares.studio.core.model.extend.RefExtendedPropertyProviderManager; /** * �������͵���չ��/��չ���ԡ� �������������Ǹ��ݵ�ǰ�ֶΣ��������ط���ȡ�������ݵ�ij���ֶ���������ʾ�� * @author sundl */ public class RefExtendedPropertyDescriptor extends AbstractEMPropertyDescriptor implements IExtensibleModelPropertyDescriptor, IBasicExtendPropertyDescriptor{ private IARESProject project; private Map<String, String> config; /** * @param structuralFeature */ public RefExtendedPropertyDescriptor(Map<String, String> config, IARESProject project) { super(null); this.config = config; this.project = project; } /* (non-Javadoc) * @see com.hundsun.ares.studio.ui.editor.extend.IExtensibleModelPropertyDescriptor#getLabelProvider() */ @Override public ILabelProvider getLabelProvider() { return new ExtendedPropertyLabelProvider(this); } /* (non-Javadoc) * @see com.hundsun.ares.studio.ui.editor.extend.IExtensibleModelPropertyDescriptor#createPropertyEditor(org.eclipse.swt.widgets.Composite) */ @Override public CellEditor createPropertyEditor(Composite parent) { return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IBasicExtendPropertyDescriptor#getValue(com.hundsun.ares.studio.core.model.ExtensibleModel) */ @Override public String getValue(ExtensibleModel model) { String providerId = config.get("provider"); if (StringUtils.isEmpty(providerId)) return StringUtils.EMPTY; IRefExtendPropertyProvider provider = RefExtendedPropertyProviderManager.getInstance().getProvider(providerId); if (provider != null) { provider.config(config, project); return provider.getValue(model); } return StringUtils.EMPTY; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IBasicExtendPropertyDescriptor#setValue(com.hundsun.ares.studio.core.model.ExtensibleModel, java.lang.String) */ @Override public void setValue(ExtensibleModel model, String value) { } }