/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.v7.client.ui; import com.google.gwt.user.client.ui.Focusable; import com.vaadin.client.StyleConstants; import com.vaadin.client.annotations.OnStateChange; import com.vaadin.client.ui.HasErrorIndicator; import com.vaadin.client.ui.HasRequiredIndicator; import com.vaadin.v7.shared.AbstractFieldState; @Deprecated public abstract class AbstractFieldConnector extends AbstractLegacyComponentConnector implements HasRequiredIndicator, HasErrorIndicator { @Override public AbstractFieldState getState() { return (AbstractFieldState) super.getState(); } @Override public boolean isReadOnly() { return super.isReadOnly() || getState().propertyReadOnly; } public boolean isModified() { return getState().modified; } /** * Checks whether the required indicator should be shown for the field. * Required indicators are hidden if the field or its data source is * read-only. * <p> * NOTE: since 8.0 this only delegates to * {@link #isRequiredIndicatorVisible()}, and is left for legacy reasons. * * @deprecated Use {@link #isRequiredIndicatorVisible()} instead. * * @return true if required indicator should be shown */ public boolean isRequired() { return isRequiredIndicatorVisible(); } /** * Checks whether the required indicator should be shown for the field. * * Required indicators are hidden if the field or its data source is * read-only. * * @return true if required indicator should be shown */ @Override public boolean isRequiredIndicatorVisible() { return getState().required && !isReadOnly(); } @Override public boolean isErrorIndicatorVisible() { return super.isErrorIndicatorVisible() && !getState().hideErrors; } @Override protected void updateWidgetStyleNames() { super.updateWidgetStyleNames(); // add / remove modified style name to Fields setWidgetStyleName(StyleConstants.MODIFIED, isModified()); // add / remove error style name to Fields setWidgetStyleNameWithPrefix(getWidget().getStylePrimaryName(), StyleConstants.REQUIRED_EXT, isRequiredIndicatorVisible()); getWidget().setStyleName(StyleConstants.REQUIRED, isRequiredIndicatorVisible()); } @OnStateChange("tabIndex") void updateTabIndex() { // AbstractFieldState is not inheriting TabIndexState because of // AbstractLegacyComponentState, thus need to set tab index here // (instead of AbstractComponentConnector) if (getWidget() instanceof Focusable) { ((Focusable) getWidget()).setTabIndex(getState().tabIndex); } } }