blob: 6f0757e44f4a711528fd7087c0ca4ea2dfa80d03 [file] [log] [blame]
/**
*
* 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());
}
}