Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update ComboBox for new DataSource and communication mechanism
This simplifies the client side state machine. This change does not modify the CSS class name v-filterselect. Change-Id: I2f4a6e5252045cb7698d582be90693e00961b342
- Loading branch information
Henri Sara
authored and
Vaadin Code Review
committed
Sep 12, 2016
1 parent
376a4d5
commit 323d437
Showing
99 changed files
with
4,692 additions
and
908 deletions.
There are no files selected for viewing
75 changes: 75 additions & 0 deletions
75
client/src/main/java/com/vaadin/client/ui/JsniMousewheelHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,75 @@ | |||
/* | |||
* 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.client.ui; | |||
|
|||
import com.google.gwt.core.client.JavaScriptObject; | |||
import com.google.gwt.dom.client.Element; | |||
import com.google.gwt.user.client.Event; | |||
import com.google.gwt.user.client.ui.Widget; | |||
import com.vaadin.client.widgets.Escalator; | |||
|
|||
/** | |||
* A mousewheel handling class to get around the limits of | |||
* {@link Event#ONMOUSEWHEEL}. | |||
* | |||
* For internal use only. May be removed or replaced in the future. | |||
* | |||
* @see Escalator.JsniWorkaround | |||
*/ | |||
// FIXME remove the copy in v7 package | |||
abstract class JsniMousewheelHandler { | |||
|
|||
/** | |||
* A JavaScript function that handles the mousewheel DOM event, and passes | |||
* it on to Java code. | |||
* | |||
* @see #createMousewheelListenerFunction(Widget) | |||
*/ | |||
protected final JavaScriptObject mousewheelListenerFunction; | |||
|
|||
protected JsniMousewheelHandler(final Widget widget) { | |||
mousewheelListenerFunction = createMousewheelListenerFunction(widget); | |||
} | |||
|
|||
/** | |||
* A method that constructs the JavaScript function that will be stored into | |||
* {@link #mousewheelListenerFunction}. | |||
* | |||
* @param widget | |||
* a reference to the current instance of {@link Widget} | |||
*/ | |||
protected abstract JavaScriptObject createMousewheelListenerFunction( | |||
Widget widget); | |||
|
|||
public native void attachMousewheelListener(Element element) | |||
/*-{ | |||
if (element.addEventListener) { | |||
// FireFox likes "wheel", while others use "mousewheel" | |||
var eventName = 'onmousewheel' in element ? 'mousewheel' : 'wheel'; | |||
element.addEventListener(eventName, this.@com.vaadin.client.ui.JsniMousewheelHandler::mousewheelListenerFunction); | |||
} | |||
}-*/; | |||
|
|||
public native void detachMousewheelListener(Element element) | |||
/*-{ | |||
if (element.addEventListener) { | |||
// FireFox likes "wheel", while others use "mousewheel" | |||
var eventName = element.onwheel===undefined?"mousewheel":"wheel"; | |||
element.removeEventListener(eventName, this.@com.vaadin.client.ui.JsniMousewheelHandler::mousewheelListenerFunction); | |||
} | |||
}-*/; | |||
|
|||
} |
Oops, something went wrong.