package org.ovirt.engine.ui.common.widget; import java.util.List; import com.google.gwt.dom.client.Style; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; /** * Convenience base class for widgets implementing the {@link HasValidation} interface. */ public abstract class AbstractValidatedWidget extends Composite implements HasValidation, PatternFlyCompatible { // Bootstrap error indicator class. Works in combination with form-control private static final String HAS_ERROR = "has-error"; // $NON-NLS-1$ private boolean valid = true; //Store if we are using patternfly styles. protected boolean usePatternfly = false; @Override protected void initWidget(Widget widget) { super.initWidget(widget); markAsValid(); } @Override public void markAsValid() { valid = true; if (usePatternfly) { removeStyleName(HAS_ERROR); } else { getValidatedWidgetStyle().setBorderColor("none"); //$NON-NLS-1$ } } @Override public void markAsInvalid(List<String> validationHints) { valid = false; if (usePatternfly) { addStyleName(HAS_ERROR); } else { getValidatedWidgetStyle().setBorderColor("red"); //$NON-NLS-1$ } } protected String getValidationTooltipText(List<String> validationHints) { return validationHints != null && validationHints.size() > 0 ? validationHints.get(0) : null; } protected Style getValidatedWidgetStyle() { return getValidatedWidget().getElement().getStyle(); } protected abstract Widget getValidatedWidget(); @Override public boolean isValid() { return valid; } public void setUsePatternFly(final boolean usePatternfly) { this.usePatternfly = usePatternfly; } }