package org.csstudio.sds.components.model.eventing;
import org.csstudio.sds.components.model.ActionButtonModel;
import org.csstudio.sds.eventhandling.AbstractEnsureInvariantsCommand;
import org.csstudio.sds.eventhandling.AbstractWidgetPropertyPostProcessor;
import org.csstudio.sds.model.ActionData;
import org.eclipse.gef.commands.Command;
/**
*
* @author Kai Meyer (C1 WPS)
*
*/
public class ActionButtonDataPostProcessor extends
AbstractWidgetPropertyPostProcessor<ActionButtonModel> {
@Override
protected Command doCreateCommand(ActionButtonModel widget) {
assert widget != null : "widget != null";
return new AbstractEnsureInvariantsCommand<ActionButtonModel>(widget, ActionButtonModel.PROP_ACTIONDATA) {
@Override
protected boolean shouldHideProperties(ActionButtonModel widget,
String propertyId) {
ActionData data = widget.getActionDataProperty(propertyId);
return data.getWidgetActions().isEmpty();
}
@Override
protected String[] getPropertyIds() {
return new String[] {
ActionButtonModel.PROP_ACTION_PRESSED_INDEX,
ActionButtonModel.PROP_ACTION_RELEASED_INDEX };
}
};
}
}