void onItemEditStarted(@Observes NavItemEditStartedEvent event) { currentlyEditedItem.filter(e -> !e.equals(event.getNavItemEditor())).ifPresent(NavItemEditor::cancelEdition); currentlyEditedItem = Optional.of(event.getNavItemEditor()); }
public void startEdition() { if (editEnabled) { if (itemNameFromPerspective) { String perspectiveName = targetPerspectiveEditor.getPerspectiveName(perspectiveId); view.setItemName(perspectiveName); } if (settings == null || settings.isPerspectiveContextEnabled(navItem)) { perspectivePluginManager.getLayoutTemplateInfo(perspectiveId, info -> { targetPerspectiveEditor.setNavGroupEnabled(info != null && info.hasNavigationComponents()); view.startItemEdition(); navItemEditStartedEvent.fire(new NavItemEditStartedEvent(this)); }); } else { targetPerspectiveEditor.setNavGroupEnabled(false); view.startItemEdition(); navItemEditStartedEvent.fire(new NavItemEditStartedEvent(this)); } } }
public void startEdition() { if (editEnabled) { if (itemNameFromPerspective) { String perspectiveName = targetPerspectiveEditor.getPerspectiveName(perspectiveId); view.setItemName(perspectiveName); } if (settings == null || settings.isPerspectiveContextEnabled(navItem)) { perspectivePluginManager.getLayoutTemplateInfo(perspectiveId, info -> { targetPerspectiveEditor.setNavGroupEnabled(info != null && info.hasNavigationComponents()); view.startItemEdition(); navItemEditStartedEvent.fire(new NavItemEditStartedEvent(this)); }); } else { targetPerspectiveEditor.setNavGroupEnabled(false); view.startItemEdition(); navItemEditStartedEvent.fire(new NavItemEditStartedEvent(this)); } } }
@Test public void itShouldBeImpossibleToOpenMultipleNavItemEditorInputs() { // DASHBUILDE-217 NavTree tree = NavFactory.get().createNavTree(); navTreeEditor.edit(tree); NavItemEditor first = mock(NavItemEditor.class); NavItemEditor second = mock(NavItemEditor.class); NavItem firstItem = mock(NavItem.class); when(first.getNavItem()).thenReturn(firstItem); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(first)); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(second)); verify(first).cancelEdition(); }
void onItemEditStarted(@Observes NavItemEditStartedEvent event) { currentlyEditedItem.filter(e -> !e.equals(event.getNavItemEditor())).ifPresent(NavItemEditor::cancelEdition); currentlyEditedItem = Optional.of(event.getNavItemEditor()); }
@Test public void itShouldBeImpossibleToOpenMultipleNavItemEditorInputs() { // DASHBUILDE-217 NavTree tree = NavFactory.get().createNavTree(); navTreeEditor.edit(tree); NavItemEditor first = mock(NavItemEditor.class); NavItemEditor second = mock(NavItemEditor.class); NavItem firstItem = mock(NavItem.class); when(first.getNavItem()).thenReturn(firstItem); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(first)); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(second)); verify(first).cancelEdition(); }
@Test public void testCancelLastEditedItem() { NavItemEditor navItemEditorA = mock(NavItemEditor.class); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditorA)); assertEquals(navTreeEditor.getCurrentlyEditedItem(), navItemEditorA); // No need for cancel if the same item is edited again navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditorA)); verify(navItemEditorA, never()).cancelEdition(); // Last edited item must be cancelled NavItemEditor navItemEditorB = mock(NavItemEditor.class); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditorB)); assertEquals(navTreeEditor.getCurrentlyEditedItem(), navItemEditorB); verify(navItemEditorA).cancelEdition(); }
@Test public void testCancelLastEditedItem() { NavItemEditor navItemEditorA = mock(NavItemEditor.class); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditorA)); assertEquals(navTreeEditor.getCurrentlyEditedItem(), navItemEditorA); // No need for cancel if the same item is edited again navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditorA)); verify(navItemEditorA, never()).cancelEdition(); // Last edited item must be cancelled NavItemEditor navItemEditorB = mock(NavItemEditor.class); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditorB)); assertEquals(navTreeEditor.getCurrentlyEditedItem(), navItemEditorB); verify(navItemEditorA).cancelEdition(); }
@Test public void whenItemEditFinishedNavTreeEditorCleared() { navTreeEditor.edit(NAV_TREE); // When item editing starts the item is remembered in the tree NavItemEditor navItemEditor = navTreeEditor.newGroup(); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditor)); assertEquals(navItemEditor, navTreeEditor.currentlyEditedItem.get()); // When item editing finishes, it is cleaned from the navTreeEditor and view resets to "non-editing" state navItemEditor.onItemUpdated(); assertFalse(navTreeEditor.currentlyEditedItem.isPresent()); }
@Test public void whenItemEditFinishedNavTreeEditorCleared() { navTreeEditor.edit(NAV_TREE); // When item editing starts the item is remembered in the tree NavItemEditor navItemEditor = navTreeEditor.newGroup(); navTreeEditor.onItemEditStarted(new NavItemEditStartedEvent(navItemEditor)); assertEquals(navItemEditor, navTreeEditor.currentlyEditedItem.get()); // When item editing finishes, it is cleaned from the navTreeEditor and view resets to "non-editing" state navItemEditor.onItemUpdated(); assertFalse(navTreeEditor.currentlyEditedItem.isPresent()); }