Example usage for com.google.gwt.event.dom.client HasKeyUpHandlers addKeyUpHandler

List of usage examples for com.google.gwt.event.dom.client HasKeyUpHandlers addKeyUpHandler

Introduction

In this page you can find the example usage for com.google.gwt.event.dom.client HasKeyUpHandlers addKeyUpHandler.

Prototype

HandlerRegistration addKeyUpHandler(KeyUpHandler handler);

Source Link

Document

Adds a KeyUpEvent handler.

Usage

From source file:com.qualogy.qafe.gwt.client.component.CellRendererHelper.java

License:Apache License

private static CellRenderer<DataContainerGVO, String> createDefaultRenderer(final DataGridColumnGVO column,
        final String uuid, final String parent, final HasDataGridMethods parentWidget,
        final ComponentGVO component) {
    CellRenderer<DataContainerGVO, String> cellRenderer;
    cellRenderer = new CellRenderer<DataContainerGVO, String>() {
        public void renderRowValue(final DataContainerGVO rowValue,
                final ColumnDefinition<DataContainerGVO, String> columnDef,
                AbstractCellView<DataContainerGVO> view) {
            if (rowValue.isMap()) {
                String generatedId = generateIdBasedOnIndex(column, view.getRowIndex());
                component.setId(generatedId);
                component.setEvents(column.getEvents());
                if (component instanceof EditableComponentGVO) {
                    EditableComponentGVO editableComponent = (EditableComponentGVO) component;
                    editableComponent.setEditable(column.getEditable());
                }// ww  w.ja  v a2s .  com
                final UIObject uiObject = getOrCreateRenderedComponent(column, component, generatedId, uuid,
                        parent);

                // Get key for handler based on component uuid
                String key4Handler = getKey4Handler(column, view.getRowIndex(), parent);

                // HasSelectionHandlers is added for handling suggest text fields
                if (uiObject instanceof HasSelectionHandlers) {
                    HasSelectionHandlers hasSelectionHandlers = (HasSelectionHandlers) uiObject;

                    // Remove existing handler containing old rowValue
                    removeExistingHandler(key4Handler, selectionHandlers4Default);

                    HandlerRegistration handler = hasSelectionHandlers
                            .addSelectionHandler(new SelectionHandler<String>() {
                                public void onSelection(SelectionEvent<String> event) {
                                    if (column.getEditable()) {
                                        handleSetModifiedForSelectionEvent(parentWidget, rowValue, columnDef,
                                                uiObject, event);
                                    }
                                }
                            });
                    selectionHandlers4Default.put(key4Handler, handler);
                } else if (uiObject instanceof HasDataChangeHandlers) {
                    HasDataChangeHandlers hasDataChangeHandlers = (HasDataChangeHandlers) uiObject;

                    // Remove existing handler containing old rowValue
                    DataChangeHandler dataChangeHandler = dataChangeHandlers4Default.get(key4Handler);
                    hasDataChangeHandlers.removeDataChangeHandler(dataChangeHandler);

                    dataChangeHandler = new DataChangeHandler() {
                        public void onDataChange(UIObject uiObject, Object oldValue, Object newValue) {
                            if (column.getEditable()) {
                                handleSetModified(parentWidget, rowValue, columnDef, uiObject, newValue);
                            }
                        }
                    };
                    hasDataChangeHandlers.addDataChangeHandler(dataChangeHandler);
                    dataChangeHandlers4Default.put(key4Handler, dataChangeHandler);
                } else if (uiObject instanceof HasValueChangeHandlers) {
                    HasValueChangeHandlers hasValueChangeHandlers = (HasValueChangeHandlers) uiObject;

                    // Remove existing handler containing old rowValue
                    removeExistingHandler(key4Handler, valueChangeHandlers4Default);

                    HandlerRegistration handler = hasValueChangeHandlers
                            .addValueChangeHandler(new ValueChangeHandler() {
                                public void onValueChange(ValueChangeEvent event) {
                                    if (column.getEditable()) {
                                        handleSetModifiedForValueChangeEvent(parentWidget, rowValue, columnDef,
                                                uiObject, event);
                                    }
                                }
                            });
                    valueChangeHandlers4Default.put(key4Handler, handler);
                } else if (uiObject instanceof HasChangeHandlers) {
                    HasChangeHandlers hasChangeHandlers = (HasChangeHandlers) uiObject;

                    // Remove existing handler containing old rowValue
                    removeExistingHandler(key4Handler, changeHandlers4Default);

                    HandlerRegistration handler = hasChangeHandlers.addChangeHandler(new ChangeHandler() {
                        public void onChange(ChangeEvent event) {
                            if (column.getEditable()) {
                                handleSetModifiedForChangeEvent(parentWidget, rowValue, columnDef, uiObject,
                                        event);
                            }
                        }
                    });
                    changeHandlers4Default.put(key4Handler, handler);
                }
                if (uiObject instanceof HasKeyUpHandlers) {
                    // Handle value changed when typing
                    HasKeyUpHandlers hasKeyUpHandlers = (HasKeyUpHandlers) uiObject;

                    // Remove existing handler containing old rowValue
                    removeExistingHandler(key4Handler, keyUpHandlers4Default);

                    HandlerRegistration handler = hasKeyUpHandlers.addKeyUpHandler(new KeyUpHandler() {
                        public void onKeyUp(KeyUpEvent event) {
                            if (column.getEditable()
                                    && KeyBoardHelper.isValidKeyInput(event.getNativeEvent())) {
                                handleSetModifiedForValueChangeEvent(parentWidget, rowValue, columnDef,
                                        uiObject, event);
                            }
                        }
                    });
                    keyUpHandlers4Default.put(key4Handler, handler);
                }

                SetValueGVO setValueGVO = new SetValueGVO();
                DataContainerGVO valueDTC = new DataContainerGVO(
                        simpleObjectToText(columnDef.getCellValue(rowValue)));
                if (uiObject instanceof Widget) {
                    if (uiObject instanceof QDatePicker) {
                        valueDTC = ((QColumnDefinition) columnDef).getDataContainerGVO(rowValue);
                    } else if (uiObject instanceof ListBox) {
                        // Inner component is a drop down and hence is first filled with the stored value and the selected index is managed later with the column value.
                        QPagingScrollTable qPagingScrollTable = ((QPagingScrollTable) view
                                .getSourceTableDefinition());
                        if (qPagingScrollTable.getDropDownColumnAndValues() != null && qPagingScrollTable
                                .getDropDownColumnAndValues().containsKey(column.getId())) {
                            SetValueGVO setValueGVOForInitialising = qPagingScrollTable
                                    .getDropDownColumnAndValues().get(column.getId());
                            // Do the set operation for the drop down - it can be a set with action set/add
                            SetValueExecute.processValue(uiObject,
                                    setValueGVOForInitialising.getDataContainer(), setValueGVOForInitialising,
                                    setValueGVOForInitialising.getDataContainer());
                        }
                    }
                    // Now set the value to the column
                    SetValueExecute.processValue(uiObject, simpleObjectToText(columnDef.getCellValue(rowValue)),
                            setValueGVO, valueDTC);
                    view.setWidget((Widget) uiObject);
                }
            }
        }
    };
    return cellRenderer;
}