package org.csstudio.sds.ui.internal.editor.newproperties; import org.csstudio.sds.model.AbstractWidgetModel; import org.csstudio.sds.model.WidgetProperty; import org.eclipse.gef.EditPart; import org.eclipse.jface.viewers.IFilter; /** * Filter implementation that selects {@link EditPart} instances which control * an {@link AbstractWidgetModel} that has a certain {@link WidgetProperty} * which is identified by its id. * * Can be * * @author Sven Wende * */ public class PropertyFilter implements IFilter { private String propertyId; public PropertyFilter() { } public PropertyFilter(String propertyId) { this.propertyId = propertyId; } /** * {@inheritDoc} */ @Override public final boolean select(Object o) { boolean result = false; if (o instanceof EditPart) { EditPart ep = (EditPart) o; if (ep.getModel() instanceof AbstractWidgetModel) { AbstractWidgetModel widget = (AbstractWidgetModel) ep.getModel(); result = widget.hasProperty(propertyId); } } return result; } }