| /** |
| * |
| * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation |
| */ |
| package org.eclipse.osbp.vaadin.addons.suggesttext.client; |
| |
| import java.util.List; |
| |
| import org.eclipse.osbp.vaadin.addons.suggesttext.SuggestTextField; |
| import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult; |
| |
| import com.google.gwt.event.logical.shared.SelectionEvent; |
| import com.google.gwt.event.logical.shared.SelectionHandler; |
| import com.google.gwt.user.client.ui.SuggestOracle.Suggestion; |
| import com.google.gwt.user.client.ui.ValueBoxBase; |
| import com.vaadin.client.ComponentConnector; |
| import com.vaadin.client.ConnectorHierarchyChangeEvent; |
| import com.vaadin.client.communication.RpcProxy; |
| import com.vaadin.client.communication.StateChangeEvent; |
| import com.vaadin.client.ui.AbstractSingleComponentContainerConnector; |
| import com.vaadin.shared.ui.Connect; |
| |
| // TODO: Auto-generated Javadoc |
| /** |
| * The Class SuggestTextFieldConnector. |
| */ |
| @SuppressWarnings("serial") |
| @Connect(SuggestTextField.class) |
| public class SuggestTextFieldConnector extends AbstractSingleComponentContainerConnector |
| implements SelectionHandler<Suggestion> { |
| |
| /** The rpc. */ |
| private SuggestTextFieldServerRpc rpc = RpcProxy.create(SuggestTextFieldServerRpc.class, this); |
| |
| /** The query delegate. */ |
| private OQueryDelegate queryDelegate; |
| |
| /** |
| * Instantiates a new suggest text field connector. |
| */ |
| public SuggestTextFieldConnector() { |
| registerRpc(SuggestTextFieldClientRpc.class, new SuggestTextFieldClientRpc() { |
| @Override |
| public void respond(String handle, List<SuggestionResult> response) { |
| queryDelegate.respond(handle, response); |
| } |
| |
| @Override |
| public void openPopup() { |
| getWidget().openPopup(); |
| } |
| |
| @Override |
| public void closePopup() { |
| getWidget().closePopup(); |
| } |
| |
| @Override |
| public void navigateToNext() { |
| getWidget().navigateToNext(); |
| } |
| |
| @Override |
| public void navigateToPrevious() { |
| getWidget().navigateToPrevious(); |
| } |
| |
| @Override |
| public void selectCurrent() { |
| getWidget().selectCurrent(); |
| } |
| }); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see com.vaadin.client.ui.AbstractComponentConnector#getWidget() |
| */ |
| @Override |
| public OSuggestBox getWidget() { |
| return (OSuggestBox) super.getWidget(); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see com.vaadin.client.ui.AbstractComponentConnector#createWidget() |
| */ |
| public OSuggestBox createWidget() { |
| queryDelegate = new OQueryDelegate(rpc); |
| OSuggestBox widget = new OSuggestBox(new ODelegatingOracle(queryDelegate)); |
| widget.addSelectionHandler(this); |
| widget.setServerRPC(rpc); |
| return widget; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see com.vaadin.client.ui.AbstractComponentConnector#getState() |
| */ |
| @Override |
| public SuggestTextFieldState getState() { |
| return (SuggestTextFieldState) super.getState(); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * com.vaadin.client.ui.AbstractComponentConnector#onStateChanged(com.vaadin |
| * .client.communication.StateChangeEvent) |
| */ |
| @Override |
| public void onStateChanged(StateChangeEvent stateChangeEvent) { |
| super.onStateChanged(stateChangeEvent); |
| |
| getWidget().setLimit(getState().limit); |
| getWidget().setPopupDelay(getState().popupDelay); |
| getWidget().setSuggestionEnabled(getState().suggestionEnabled); |
| getWidget().setAutoHide(getState().autoHide); |
| getWidget().setOpenPopupKey(getState().openPopup_key); |
| getWidget().setOpenPopupKeyModifier(getState().openPopup_modifier); |
| getWidget().setDisableSuggestionTooltip(getState().disableSuggestionTooltip); |
| getWidget().setIsHistorizedEnabled(getState().historized); |
| getWidget().setHistorizedToolTip(getState().historizedTooltip); |
| |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * com.google.gwt.event.logical.shared.SelectionHandler#onSelection(com. |
| * google.gwt.event.logical.shared.SelectionEvent) |
| */ |
| @Override |
| public void onSelection(SelectionEvent<Suggestion> event) { |
| OSuggestion suggestion = (OSuggestion) event.getSelectedItem(); |
| if (suggestion != null) { |
| rpc.selectionChanged(suggestion.getHandleId(), suggestion.getUuid()); |
| } |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * com.vaadin.client.HasComponentsConnector#updateCaption(com.vaadin.client. |
| * ComponentConnector) |
| */ |
| @Override |
| public void updateCaption(ComponentConnector connector) { |
| |
| } |
| |
| @SuppressWarnings("unchecked") |
| @Override |
| public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent connectorHierarchyChangeEvent) { |
| getWidget().initialize((ValueBoxBase<String>) getContent().getWidget()); |
| } |
| } |