public void init(LiveSearchService<TYPE> searchService, LiveSearchSelectionHandler<TYPE> selectionHandler) { this.searchService = searchService; this.selectionHandler = selectionHandler; selectionHandler.setLiveSearchSelectionCallback(this::onItemSelected); view.setClearSelectionMessage(selectionHandler.isMultipleSelection()); if (searchService instanceof EntryCreationLiveSearchService) { view.setNewInstanceEnabled(true); EntryCreationLiveSearchService<TYPE, ?> creationService = (EntryCreationLiveSearchService<TYPE, ?>) searchService; EntryCreationEditor<TYPE> editor = creationService.getEditor(); if (creationService.getEditor() instanceof InlineCreationEditor) { InlineCreationEditor<TYPE> inlineEditor = (InlineCreationEditor<TYPE>) editor; inlineEditor.init(this::addNewItem, view::restoreFooter); onAddItemPressed = () -> view.showNewItemEditor(inlineEditor); } else if (creationService.getEditor() instanceof ModalCreationEditor) { ModalCreationEditor<TYPE> modalEditor = (ModalCreationEditor<TYPE>) editor; modalEditor.init(this::addNewItem, () -> {}); onAddItemPressed = () -> modalEditor.show(); } } else { view.setNewInstanceEnabled(false); } }
@Test public void testEditorAddNewEntryAction() { startTest(); LiveSearchEntry<String> entry = new LiveSearchEntry<>(VALUE, VALUE); onAddCommand.execute(entry); verify(dropDown).addNewItem(entry); verify(searchSelectionHandler).selectItem(any()); verify(dropDown).search(anyString()); verify(dropDown).doSearch(anyString()); verify(view).searchInProgress(anyString()); verify(searchService).search(anyString(), anyInt(), any()); verify(view).restoreFooter(); }
public void init(LiveSearchService<TYPE> searchService, LiveSearchSelectionHandler<TYPE> selectionHandler) { this.searchService = searchService; this.selectionHandler = selectionHandler; selectionHandler.setLiveSearchSelectionCallback(this::onItemSelected); view.setClearSelectionMessage(selectionHandler.isMultipleSelection()); if (searchService instanceof EntryCreationLiveSearchService) { view.setNewInstanceEnabled(true); EntryCreationLiveSearchService<TYPE, ?> creationService = (EntryCreationLiveSearchService<TYPE, ?>) searchService; EntryCreationEditor<TYPE> editor = creationService.getEditor(); if (creationService.getEditor() instanceof InlineCreationEditor) { InlineCreationEditor<TYPE> inlineEditor = (InlineCreationEditor<TYPE>) editor; inlineEditor.init(this::addNewItem, view::restoreFooter); onAddItemPressed = () -> view.showNewItemEditor(inlineEditor); } else if (creationService.getEditor() instanceof ModalCreationEditor) { ModalCreationEditor<TYPE> modalEditor = (ModalCreationEditor<TYPE>) editor; modalEditor.init(this::addNewItem, () -> {}); onAddItemPressed = () -> modalEditor.show(); } } else { view.setNewInstanceEnabled(false); } }
@Before public void init() { when(selectorItems.get()).thenAnswer((Answer<LiveSearchSelectorItem<String>>) invocationOnMock -> mock(LiveSearchSelectorItem.class)); editor = mock(getEditorType()); when(searchService.getEditor()).thenReturn(editor); dropDown = spy(new LiveSearchDropDown(view, selectorItems)); }