package org.nightlabs.jfire.reporting.admin.parameter.ui.property; import org.eclipse.ui.views.properties.IPropertyDescriptor; import org.nightlabs.jfire.reporting.admin.parameter.ui.notification.ModelNotificationManager; import org.nightlabs.jfire.reporting.admin.parameter.ui.util.ObjectIDProvider; import org.nightlabs.jfire.reporting.parameter.config.AcquisitionParameterConfig; import org.nightlabs.jfire.reporting.parameter.config.IGraphicalInfoProvider; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public class AcquisitionParameterConfigPropertySource extends AbstractPropertySource { public AcquisitionParameterConfigPropertySource(AcquisitionParameterConfig acquisitionParameterConfig) { super(); this.acquisitionParameterConfig = acquisitionParameterConfig; } private AcquisitionParameterConfig acquisitionParameterConfig; public Object getEditableValue() { return acquisitionParameterConfig; } protected IGraphicalInfoProvider getGraphicalInfoProvider() { return acquisitionParameterConfig; } public IPropertyDescriptor[] getPropertyDescriptors() { IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[4]; propertyDescriptors[0] = createXPD(true); propertyDescriptors[1] = createYPD(true); propertyDescriptors[2] = createParameterIDPD(""); //$NON-NLS-1$ propertyDescriptors[3] = createParameterTypePD("", false); //$NON-NLS-1$ // propertyDescriptors[4] = createConsumerKeyPD(true); return propertyDescriptors; } public Object getPropertyValue(Object id) { if (id.equals(IGraphicalInfoProvider.PROP_X)) { return getGraphicalInfoProvider().getX(); } else if (id.equals(IGraphicalInfoProvider.PROP_Y)) { return getGraphicalInfoProvider().getY(); } // else if (id.equals(ModelNotificationManager.PROP_CONSUMER_KEY)) { // return acquisitionParameterConfig.getConsumerKey(); // } else if (id.equals(ModelNotificationManager.PROP_PARAMETER_ID)) { return acquisitionParameterConfig.getParameterID(); } else if (id.equals(ModelNotificationManager.PROP_PARAMETER_TYPE)) { return acquisitionParameterConfig.getParameterType(); } return null; } public void setPropertyValue(Object id, Object value) { if (id.equals(IGraphicalInfoProvider.PROP_X)) { int x = ((Integer)value).intValue(); getGraphicalInfoProvider().setX(x); return; } else if (id.equals(IGraphicalInfoProvider.PROP_Y)) { int y = ((Integer)value).intValue(); getGraphicalInfoProvider().setY(y); return; } else if (id.equals(ModelNotificationManager.PROP_PARAMETER_TYPE)) { String oldVal = acquisitionParameterConfig.getParameterType(); acquisitionParameterConfig.setParameterType((String)value); ModelNotificationManager.sharedInstance().notify( ObjectIDProvider.getObjectID(acquisitionParameterConfig), ModelNotificationManager.PROP_PARAMETER_TYPE, oldVal, value ); return; } } }