@Override public void selectItem(LiveSearchSelectorItem<TYPE> item) { if(selectedItem == null) { selectedItem = item; selectedItem.select(); } else { if(!selectedItem.getKey().equals(item.getKey())) { selectedItem.reset(); selectedItem = item; selectedItem.select(); } } if(onChangeNotification != null) { onChangeNotification.execute(); } }
@Override public String getDropDownMenuHeader() { if(selectedItem != null) { return selectedItem.getValue(); } return null; }
@Override public void registerItem(LiveSearchSelectorItem<TYPE> item) { item.setSelectionCallback(() -> selectItem(item)); item.setMultipleSelection(true); LiveSearchSelectorItem<TYPE> selectedItem = selectedItems.stream() .filter(filterItem -> filterItem.getKey().equals(item.getKey())) .findFirst() .orElse(null); if(selectedItem != null && selectedItem.getKey().equals(item.getKey())) { selectedItems.remove(selectedItem); visibleItems.remove(selectedItem); item.select(); selectedItems.add(item); } visibleItems.add(item); }
@Override public void registerItem(final LiveSearchSelectorItem<TYPE> item) { if(selectedItem != null && selectedItem.getKey().equals(item.getKey())) { visibleItems.remove(selectedItem); item.select(); selectedItem = item; } item.setSelectionCallback(() -> selectItem(item)); visibleItems.add(item); }
@Test public void testRegisterItemWithoutSelectedValue() { LiveSearchSelectorItem item = createItem("any"); handler.registerItem(item); verify(item, never()).select(); verify(item, times(1)).setSelectionCallback(any()); verify(item, times(1)).setMultipleSelection(true); checkHandlerSelectedValue(null); assertEquals(null, handler.getDropDownMenuHeader()); }
@Before public void setUp() { when(selectorItems.get()).thenAnswer((Answer<LiveSearchSelectorItem<String>>) invocationOnMock -> { final LiveSearchSelectorItem<String> result = mock(LiveSearchSelectorItem.class); doAnswer((Answer<Void>) invocationOnMock1 -> { String key = (String) invocationOnMock1.getArguments()[0]; String value = (String) invocationOnMock1.getArguments()[1]; when(result.getKey()).thenReturn(key); when(result.getValue()).thenReturn(value); return null; }).when(result).init(any(), any()); return result; }); presenter = spy(new LiveSearchDropDown(view, selectorItems)); presenter.setOnChange(onChangeCommand); presenter.init(searchService, selectionHandler); doAnswer(invocationOnMock -> { ClickEvent event = (ClickEvent) invocationOnMock.getArguments()[0]; event.stopPropagation(); return null; }).when(view).onSearchClick(any()); }
@Test public void testSelectSecondItem() { LiveSearchSelectorItem firstItem = doTestSelectItem(); String secondSelected = SELECTED_ITEM_TEXT + "2"; LiveSearchSelectorItem secondItem = createItem(secondSelected); handler.registerItem(secondItem); handler.selectItem(secondItem); verify(secondItem).select(); verify(firstItem).reset(); checkHandlerSelectedValue(secondSelected); }
@Test public void testRegisterIItemWithSelectedValue() { LiveSearchSelectorItem selectedItem = doTestSelectItem(); LiveSearchSelectorItem secondItem = createItem(SELECTED_ITEM_TEXT); handler.registerItem(secondItem); verify(selectedItem, atLeast(1)).getKey(); verify(secondItem).getKey(); verify(secondItem).select(); }
@Test public void testRegisterItemWithoutSelectedValue() { LiveSearchSelectorItem item = createItem("any"); handler.registerItem(item); verify(item, never()).select(); verify(item, times(1)).setSelectionCallback(any()); checkHandlerSelectedValue(null); }
public TYPE getSelectedKey() { if(selectedItem != null) { return selectedItem.getKey(); } return null; }
protected void addNewItem(LiveSearchEntry<TYPE> entry) { LiveSearchSelectorItem<TYPE> itemInstance = liveSearchSelectorItems.get(); itemInstance.init(entry.getKey(), entry.getValue()); selectionHandler.selectItem(itemInstance); searchCache.clear(); String pattern = lastSearch; lastSearch = null; search(pattern); view.restoreFooter(); }
public void setSelectedItem(final TYPE key) { searchService.searchEntry(key, results -> { if(results.size() == 1) { LiveSearchEntry<TYPE> entry = results.get(0); changeCallbackEnabled = false; LiveSearchSelectorItem<TYPE> item = getSelectorItemForEntry(entry); selectionHandler.selectItem(item); item.select(); view.clearItems(); lastSearch = null; changeCallbackEnabled = true; } }); }
@Override public void clearSelection() { if(selectedItem != null) { selectedItem.reset(); selectedItem = null; if (onChangeNotification != null) { onChangeNotification.execute(); } } }
@Override public void addItem(LiveSearchSelectorItem<TYPE> item) { dropDownMenu.appendChild(item.getElement()); }
@Override public void registerItem(final LiveSearchSelectorItem<TYPE> item) { if(selectedItem != null && selectedItem.getKey().equals(item.getKey())) { visibleItems.remove(selectedItem); item.select(); selectedItem = item; } item.setSelectionCallback(() -> selectItem(item)); visibleItems.add(item); }
@Test public void testSelectKeyWithoutSelectedValue() { LiveSearchSelectorItem firstItem = createItem("a"); handler.registerItem(firstItem); LiveSearchSelectorItem secondItem = createItem("b"); handler.registerItem(secondItem); LiveSearchSelectorItem thirdItem = createItem(SELECTED_ITEM_TEXT); handler.registerItem(thirdItem); handler.selectKey("a"); verify(handler).selectItem(firstItem); verify(firstItem).select(); checkHandlerSelectedValue("a"); handler.selectKey("b"); verify(handler).selectItem(secondItem); verify(secondItem).select(); verify(firstItem).reset(); checkHandlerSelectedValue("b"); handler.selectKey(SELECTED_ITEM_TEXT); verify(handler).selectItem(thirdItem); verify(thirdItem).select(); verify(secondItem).reset(); checkHandlerSelectedValue(SELECTED_ITEM_TEXT); }
@Test public void testRegisterIItemWithSelectedValue() { LiveSearchSelectorItem selectedItem = doTestSelectItem(); LiveSearchSelectorItem secondItem = createItem(SELECTED_ITEM_TEXT); handler.registerItem(secondItem); verify(selectedItem, atLeast(1)).getKey(); verify(secondItem, times(2)).getKey(); verify(secondItem).select(); checkHandlerSelectedValue(SELECTED_ITEM_TEXT); assertEquals(SELECTED_ITEM_TEXT, handler.getDropDownMenuHeader()); }
public TYPE getSelectedKey() { if(selectedItem != null) { return selectedItem.getKey(); } return null; }