From fb4248119d77a6865a42ffdf0d80f10d683769a5 Mon Sep 17 00:00:00 2001 From: Pekka Hyvönen Date: Fri, 7 Oct 2016 16:06:01 +0300 Subject: Remove AbstractComponent.immediate All components are now in immediate mode by default. V7 compatibility components will use AbstractLegacyComponent that has immediate. V7 ColorPickerPopup will not have setImmediate, since it extends V8 Window, which is not in V7 compatibility packages. Removed OutOfSync and ResynchronizeAfterAsyncRemoval Tests, since those tested UI in not immediate mode, which is invalid now. Removed WindowResizeListener, LazyWindowResize, test UIs, since both used immediate and there were no test run for either. Change-Id: Ie1c8cfa4c48461db944ff9b13efe8473c5a3298f --- .../v7/client/ui/AbstractFieldConnector.java | 16 ++- .../ui/AbstractLegacyComponentConnector.java | 8 ++ .../java/com/vaadin/v7/client/ui/VCheckBox.java | 109 +++++++++++++++++++++ .../v7/client/ui/calendar/CalendarConnector.java | 20 ++-- .../v7/client/ui/checkbox/CheckBoxConnector.java | 2 +- .../colorpicker/AbstractColorPickerConnector.java | 4 +- .../colorpicker/ColorPickerGradientConnector.java | 6 +- .../ui/colorpicker/ColorPickerGridConnector.java | 4 +- .../vaadin/v7/client/ui/label/LabelConnector.java | 4 +- 9 files changed, 151 insertions(+), 22 deletions(-) create mode 100644 compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java (limited to 'compatibility-client') diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractFieldConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractFieldConnector.java index 36d8f17d00..7f96e63d0a 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractFieldConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractFieldConnector.java @@ -15,14 +15,16 @@ */ package com.vaadin.v7.client.ui; +import com.google.gwt.user.client.ui.Focusable; import com.vaadin.client.StyleConstants; -import com.vaadin.client.ui.AbstractComponentConnector; +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 AbstractComponentConnector +public abstract class AbstractFieldConnector + extends AbstractLegacyComponentConnector implements HasRequiredIndicator, HasErrorIndicator { @Override @@ -71,4 +73,14 @@ public abstract class AbstractFieldConnector extends AbstractComponentConnector 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); + } + } } diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractLegacyComponentConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractLegacyComponentConnector.java index a9fe473ad4..5e27f26282 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractLegacyComponentConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/AbstractLegacyComponentConnector.java @@ -18,6 +18,7 @@ package com.vaadin.v7.client.ui; import com.vaadin.client.ui.AbstractComponentConnector; import com.vaadin.client.ui.AbstractConnector; import com.vaadin.shared.communication.ServerRpc; +import com.vaadin.v7.shared.AbstractLegacyComponentState; /** * Legacy connector for Vaadin 7 compatibility connectors. Needed because @@ -26,7 +27,9 @@ import com.vaadin.shared.communication.ServerRpc; * * @author Vaadin Ltd * @since 8.0 + * @deprecated only used for Vaadin 7 compatiblity components */ +@Deprecated public class AbstractLegacyComponentConnector extends AbstractComponentConnector { @@ -36,4 +39,9 @@ public class AbstractLegacyComponentConnector protected T getRpcProxy(Class rpcInterface) { return super.getRpcProxy(rpcInterface); } + + @Override + public AbstractLegacyComponentState getState() { + return (AbstractLegacyComponentState) super.getState(); + } } diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java new file mode 100644 index 0000000000..60a0d06821 --- /dev/null +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java @@ -0,0 +1,109 @@ +/* + * 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.dom.client.Element; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.Event; +import com.vaadin.client.ApplicationConnection; +import com.vaadin.client.BrowserInfo; +import com.vaadin.client.Util; +import com.vaadin.client.VTooltip; +import com.vaadin.client.ui.Field; +import com.vaadin.client.ui.Icon; +import com.vaadin.client.ui.aria.AriaHelper; +import com.vaadin.client.ui.aria.HandlesAriaInvalid; +import com.vaadin.client.ui.aria.HandlesAriaRequired; + +public class VCheckBox extends com.google.gwt.user.client.ui.CheckBox + implements Field, HandlesAriaInvalid, HandlesAriaRequired { + + public static final String CLASSNAME = "v-checkbox"; + + /** For internal use only. May be removed or replaced in the future. */ + public String id; + + /** For internal use only. May be removed or replaced in the future. */ + public boolean immediate; + + /** For internal use only. May be removed or replaced in the future. */ + public ApplicationConnection client; + + /** For internal use only. May be removed or replaced in the future. */ + public Element errorIndicatorElement; + + /** For internal use only. May be removed or replaced in the future. */ + public Icon icon; + + public VCheckBox() { + setStyleName(CLASSNAME); + + Element el = DOM.getFirstChild(getElement()); + while (el != null) { + DOM.sinkEvents(el, DOM.getEventsSunk(el) | VTooltip.TOOLTIP_EVENTS); + el = DOM.getNextSibling(el); + } + + if (BrowserInfo.get().isWebkit()) { + // Webkit does not focus non-text input elements on click + // (#11854) + addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + setFocus(true); + } + }); + } + } + + @Override + public void onBrowserEvent(Event event) { + if (icon != null && event.getTypeInt() == Event.ONCLICK + && DOM.eventGetTarget(event) == icon.getElement()) { + // Click on icon should do nothing if widget is disabled + if (isEnabled()) { + setValue(!getValue()); + } + } + super.onBrowserEvent(event); + if (event.getTypeInt() == Event.ONLOAD) { + Util.notifyParentOfSizeChange(this, true); + } + } + + /** + * Gives access to the input element. + * + * @return Element of the CheckBox itself + */ + private Element getCheckBoxElement() { + // FIXME: Would love to use a better way to access the checkbox element + return getElement().getFirstChildElement(); + } + + @Override + public void setAriaRequired(boolean required) { + AriaHelper.handleInputRequired(getCheckBoxElement(), required); + } + + @Override + public void setAriaInvalid(boolean invalid) { + AriaHelper.handleInputInvalid(getCheckBoxElement(), invalid); + } +} diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/calendar/CalendarConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/calendar/CalendarConnector.java index 62e8e123db..0e50bd639d 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/calendar/CalendarConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/calendar/CalendarConnector.java @@ -39,12 +39,12 @@ import com.vaadin.client.VConsole; import com.vaadin.client.WidgetUtil; import com.vaadin.client.communication.RpcProxy; import com.vaadin.client.communication.StateChangeEvent; -import com.vaadin.client.ui.AbstractComponentConnector; import com.vaadin.client.ui.Action; import com.vaadin.client.ui.ActionOwner; import com.vaadin.client.ui.SimpleManagedLayout; import com.vaadin.shared.ui.Connect; import com.vaadin.shared.ui.Connect.LoadStyle; +import com.vaadin.v7.client.ui.AbstractLegacyComponentConnector; import com.vaadin.v7.client.ui.VCalendar; import com.vaadin.v7.client.ui.VCalendar.BackwardListener; import com.vaadin.v7.client.ui.VCalendar.DateClickListener; @@ -82,14 +82,14 @@ import com.vaadin.v7.ui.Calendar; * @author Vaadin Ltd. */ @Connect(value = Calendar.class, loadStyle = LoadStyle.LAZY) -public class CalendarConnector extends AbstractComponentConnector +public class CalendarConnector extends AbstractLegacyComponentConnector implements ActionOwner, SimpleManagedLayout, Paintable { private CalendarServerRpc rpc = RpcProxy.create(CalendarServerRpc.class, this); - private final HashMap actionMap = new HashMap(); - private HashMap tooltips = new HashMap(); + private final HashMap actionMap = new HashMap<>(); + private HashMap tooltips = new HashMap<>(); private static final String DROPHANDLER_ACCEPT_CRITERIA_PAINT_TAG = "-ac"; @@ -469,8 +469,8 @@ public class CalendarConnector extends AbstractComponentConnector } private Action[] getActionsBetween(Date start, Date end) { - List actions = new ArrayList(); - List ids = new ArrayList(); + List actions = new ArrayList<>(); + List ids = new ArrayList<>(); for (int i = 0; i < actionKeys.size(); i++) { String actionKey = actionKeys.get(i); @@ -525,7 +525,7 @@ public class CalendarConnector extends AbstractComponentConnector return actions.toArray(new Action[actions.size()]); } - private List actionKeys = new ArrayList(); + private List actionKeys = new ArrayList<>(); private void updateActionMap(List actions) { actionMap.clear(); @@ -624,7 +624,7 @@ public class CalendarConnector extends AbstractComponentConnector */ @Override public Action[] getActions() { - List actions = new ArrayList(); + List actions = new ArrayList<>(); for (int i = 0; i < actionKeys.size(); i++) { final String actionKey = actionKeys.get(i); final VCalendarAction a = new VCalendarAction(this, rpc, actionKey); @@ -655,7 +655,7 @@ public class CalendarConnector extends AbstractComponentConnector private List calendarEventListOf( List events, boolean format24h) { - List list = new ArrayList(events.size()); + List list = new ArrayList<>(events.size()); for (CalendarState.Event event : events) { final String dateFrom = event.dateFrom; final String dateTo = event.dateTo; @@ -680,7 +680,7 @@ public class CalendarConnector extends AbstractComponentConnector } private List calendarDayListOf(List days) { - List list = new ArrayList(days.size()); + List list = new ArrayList<>(days.size()); for (CalendarState.Day day : days) { CalendarDay d = new CalendarDay(day.date, day.localizedDateFormat, day.dayOfWeek, day.week, day.yearOfWeek); diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/checkbox/CheckBoxConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/checkbox/CheckBoxConnector.java index 5d103e419f..d2a761ba0a 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/checkbox/CheckBoxConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/checkbox/CheckBoxConnector.java @@ -27,11 +27,11 @@ import com.vaadin.client.annotations.OnStateChange; import com.vaadin.client.communication.StateChangeEvent; import com.vaadin.client.ui.ConnectorFocusAndBlurHandler; import com.vaadin.client.ui.Icon; -import com.vaadin.client.ui.VCheckBox; import com.vaadin.shared.EventId; import com.vaadin.shared.MouseEventDetails; import com.vaadin.shared.ui.Connect; import com.vaadin.v7.client.ui.AbstractFieldConnector; +import com.vaadin.v7.client.ui.VCheckBox; import com.vaadin.v7.shared.ui.checkbox.CheckBoxServerRpc; import com.vaadin.v7.shared.ui.checkbox.CheckBoxState; import com.vaadin.v7.ui.CheckBox; diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/AbstractColorPickerConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/AbstractColorPickerConnector.java index aa5e878312..bd51cecf5a 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/AbstractColorPickerConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/AbstractColorPickerConnector.java @@ -18,7 +18,7 @@ package com.vaadin.v7.client.ui.colorpicker; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.HasClickHandlers; import com.vaadin.client.communication.StateChangeEvent; -import com.vaadin.client.ui.AbstractComponentConnector; +import com.vaadin.v7.client.ui.AbstractLegacyComponentConnector; import com.vaadin.v7.shared.ui.colorpicker.ColorPickerState; /** @@ -29,7 +29,7 @@ import com.vaadin.v7.shared.ui.colorpicker.ColorPickerState; */ @Deprecated public abstract class AbstractColorPickerConnector - extends AbstractComponentConnector implements ClickHandler { + extends AbstractLegacyComponentConnector implements ClickHandler { private static final String DEFAULT_WIDTH_STYLE = "v-default-caption-width"; diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGradientConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGradientConnector.java index 014e4b6f04..f71ac4d05e 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGradientConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGradientConnector.java @@ -21,10 +21,10 @@ import com.google.gwt.event.dom.client.MouseUpHandler; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.communication.RpcProxy; import com.vaadin.client.communication.StateChangeEvent; -import com.vaadin.client.ui.AbstractComponentConnector; import com.vaadin.client.ui.colorpicker.VColorPickerGradient; import com.vaadin.shared.ui.Connect; import com.vaadin.shared.ui.Connect.LoadStyle; +import com.vaadin.v7.client.ui.AbstractLegacyComponentConnector; import com.vaadin.v7.shared.ui.colorpicker.ColorPickerGradientServerRpc; import com.vaadin.v7.shared.ui.colorpicker.ColorPickerGradientState; @@ -37,8 +37,8 @@ import com.vaadin.v7.shared.ui.colorpicker.ColorPickerGradientState; * @since 7.0.0 */ @Connect(value = com.vaadin.v7.ui.components.colorpicker.ColorPickerGradient.class, loadStyle = LoadStyle.LAZY) -public class ColorPickerGradientConnector extends AbstractComponentConnector - implements MouseUpHandler { +public class ColorPickerGradientConnector + extends AbstractLegacyComponentConnector implements MouseUpHandler { private ColorPickerGradientServerRpc rpc = RpcProxy .create(ColorPickerGradientServerRpc.class, this); diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGridConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGridConnector.java index 561f28af3a..8d7c94cb2f 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGridConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/colorpicker/ColorPickerGridConnector.java @@ -21,10 +21,10 @@ import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.communication.RpcProxy; import com.vaadin.client.communication.StateChangeEvent; -import com.vaadin.client.ui.AbstractComponentConnector; import com.vaadin.client.ui.colorpicker.VColorPickerGrid; import com.vaadin.shared.ui.Connect; import com.vaadin.shared.ui.Connect.LoadStyle; +import com.vaadin.v7.client.ui.AbstractLegacyComponentConnector; import com.vaadin.v7.shared.ui.colorpicker.ColorPickerGridServerRpc; import com.vaadin.v7.shared.ui.colorpicker.ColorPickerGridState; @@ -37,7 +37,7 @@ import com.vaadin.v7.shared.ui.colorpicker.ColorPickerGridState; * @since 7.0.0 */ @Connect(value = com.vaadin.v7.ui.components.colorpicker.ColorPickerGrid.class, loadStyle = LoadStyle.LAZY) -public class ColorPickerGridConnector extends AbstractComponentConnector +public class ColorPickerGridConnector extends AbstractLegacyComponentConnector implements ClickHandler { private ColorPickerGridServerRpc rpc = RpcProxy diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/label/LabelConnector.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/label/LabelConnector.java index 7e37aa5f77..9ef43775bf 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/label/LabelConnector.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/label/LabelConnector.java @@ -20,15 +20,15 @@ import com.google.gwt.dom.client.PreElement; import com.vaadin.client.Profiler; import com.vaadin.client.WidgetUtil; import com.vaadin.client.communication.StateChangeEvent; -import com.vaadin.client.ui.AbstractComponentConnector; import com.vaadin.shared.ui.Connect; import com.vaadin.shared.ui.Connect.LoadStyle; +import com.vaadin.v7.client.ui.AbstractLegacyComponentConnector; import com.vaadin.v7.client.ui.VLabel; import com.vaadin.v7.shared.ui.label.LabelState; import com.vaadin.v7.ui.Label; @Connect(value = Label.class, loadStyle = LoadStyle.EAGER) -public class LabelConnector extends AbstractComponentConnector { +public class LabelConnector extends AbstractLegacyComponentConnector { @Override public LabelState getState() { -- cgit v1.2.3