protected void fireUpdatedLockStatusEvent() { if (isVisible()) { updatedLockStatusEvent.fire(new UpdatedLockStatusEvent(lockInfo.getFile(), lockInfo.isLocked(), isLockedByCurrentUser())); } }
void onEditorLockInfo(@Observes UpdatedLockStatusEvent lockInfo) { final Operation op = lockSyncMenuStateHelper.enable(lockInfo.getFile(), lockInfo.isLocked(), lockInfo.isLockedByCurrentUser()); switch (op) { case ENABLE: case DISABLE: for (MenuItem menuItem : menuItemsSyncedWithLockState) { menuItem.setEnabled(op == Operation.ENABLE); } break; case VETO: //Do nothing } } }
void onUpdatedLockStatusEvent(final UpdatedLockStatusEvent event) { final Optional<GuidedDecisionTableView.Presenter> activeDecisionTable = modeller.getActiveDecisionTable(); if (!activeDecisionTable.isPresent()) { enableColumnsTab(false); return; } final boolean isEditable = isGuidedDecisionTableEditable(activeDecisionTable.get()); final boolean isLocked = event.isLocked() && !event.isLockedByCurrentUser(); final boolean enableColumnsPage = !isLocked && isEditable; enableColumnsTab(enableColumnsPage); }
public void onUpdatedLockStatusEvent(final @Observes UpdatedLockStatusEvent event) { if (!hasActiveDecisionTable()) { return; } getActiveDecisionTable().ifPresent(dt -> { final ObservablePath currentPath = dt.getCurrentPath(); if (currentPath.equals(event.getFile())) { refresh(); } }); }
void onUpdatedLockStatusEvent(final UpdatedLockStatusEvent event) { final Optional<GuidedDecisionTableView.Presenter> activeDecisionTable = modeller.getActiveDecisionTable(); if (!activeDecisionTable.isPresent()) { enableColumnsTab(false); return; } final boolean isEditable = isGuidedDecisionTableEditable(activeDecisionTable.get()); final boolean isLocked = event.isLocked() && !event.isLockedByCurrentUser(); final boolean enableColumnsPage = !isLocked && isEditable; enableColumnsTab(enableColumnsPage); }
public void onUpdatedLockStatusEvent(final @Observes UpdatedLockStatusEvent event) { if (!hasActiveDecisionTable()) { return; } getActiveDecisionTable().ifPresent(dt -> { final ObservablePath currentPath = dt.getCurrentPath(); if (currentPath.equals(event.getFile())) { refresh(); } }); }
void onEditorLockInfo(@Observes UpdatedLockStatusEvent lockInfo) { final Operation op = lockSyncMenuStateHelper.enable(lockInfo.getFile(), lockInfo.isLocked(), lockInfo.isLockedByCurrentUser()); switch (op) { case ENABLE: case DISABLE: for (MenuItem menuItem : menuItemsSyncedWithLockState) { menuItem.setEnabled(op == Operation.ENABLE); } break; case VETO: //Do nothing } } }
@Test public void testOnUpdatedLockStatusEventWhenTableIsNotLockedAndIsEditable() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); final GuidedDecisionTableView.Presenter activeDecisionTable = mock(GuidedDecisionTableView.Presenter.class); doReturn(false).when(event).isLocked(); doReturn(false).when(event).isLockedByCurrentUser(); doReturn(true).when(presenter).isGuidedDecisionTableEditable(activeDecisionTable); doReturn(Optional.of(activeDecisionTable)).when(modeller).getActiveDecisionTable(); doNothing().when(presenter).enableColumnsTab(anyBoolean()); presenter.onUpdatedLockStatusEvent(event); verify(presenter).enableColumnsTab(eq(true)); }
private void checkOnUpdatedLockStatusEvent(final ObservablePath path, final boolean locked, final boolean lockedByCurrentUser, final Command assertion) { presenter.editorPath = path; presenter.access.setLock(LockedBy.NOBODY); final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(path, locked, lockedByCurrentUser); presenter.onUpdatedLockStatusEvent(event); assertion.execute(); }
@Test public void testOnUpdatedLockStatusEventWhenActiveDecisionTableHasAnInvalidPath() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); final GuidedDecisionTableView.Presenter activeDecisionTable = mock(GuidedDecisionTableView.Presenter.class); final ObservablePath path = mock(ObservablePath.class); doReturn(true).when(presenter).hasActiveDecisionTable(); doReturn(Optional.of(activeDecisionTable)).when(modeller).getActiveDecisionTable(); doReturn(path).when(activeDecisionTable).getCurrentPath(); doReturn(null).when(event).getFile(); presenter.onUpdatedLockStatusEvent(event); verify(presenter, never()).refresh(); }
void onUpdatedLockStatusEvent(final @Observes UpdatedLockStatusEvent event) { super.onUpdatedLockStatusEvent(event); if (editorPath == null) { return; } if (editorPath.equals(event.getFile())) { if (event.isLocked()) { access.setLock(event.isLockedByCurrentUser() ? CURRENT_USER : OTHER_USER); } else { access.setLock(NOBODY); } } }
@Test public void testOnUpdatedLockStatusEventWhenIsLockedByTheCurrentUser() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); final GuidedDecisionTableView.Presenter activeDecisionTable = mock(GuidedDecisionTableView.Presenter.class); doReturn(true).when(event).isLocked(); doReturn(true).when(event).isLockedByCurrentUser(); doReturn(true).when(presenter).isGuidedDecisionTableEditable(activeDecisionTable); doReturn(Optional.of(activeDecisionTable)).when(modeller).getActiveDecisionTable(); doNothing().when(presenter).enableColumnsTab(anyBoolean()); presenter.onUpdatedLockStatusEvent(event); verify(presenter).enableColumnsTab(eq(true)); }
@Test public void menuItemsDisabledWhenLockedByDifferentUser() { builder.addSave(new MockSaveButton()); builder.addRename(mock(Command.class)); builder.addDelete(mock(Command.class)); final Menus menus = builder.build(); final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(mock(Path.class), true, false); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), false); assertMenuItemEnabled(menus.getItems().get(1), false); assertMenuItemEnabled(menus.getItems().get(2), false); }
@Test public void testOnUpdatedLockStatusEventWhenActiveDecisionTableHasAValidPath() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); final GuidedDecisionTableView.Presenter activeDecisionTable = mock(GuidedDecisionTableView.Presenter.class); final ObservablePath path = mock(ObservablePath.class); doReturn(true).when(presenter).hasActiveDecisionTable(); doReturn(Optional.of(activeDecisionTable)).when(modeller).getActiveDecisionTable(); doReturn(path).when(activeDecisionTable).getCurrentPath(); doReturn(path).when(event).getFile(); doNothing().when(presenter).refresh(); presenter.onUpdatedLockStatusEvent(event); verify(presenter).refresh(); }
void onUpdatedLockStatusEvent(final @Observes UpdatedLockStatusEvent event) { super.onUpdatedLockStatusEvent(event); if (editorPath == null) { return; } if (editorPath.equals(event.getFile())) { if (event.isLocked()) { access.setLock(event.isLockedByCurrentUser() ? CURRENT_USER : OTHER_USER); } else { access.setLock(NOBODY); } } }
@Test public void testOnUpdatedLockStatusEventWhenIsLockedByAnotherUser() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); final GuidedDecisionTableView.Presenter activeDecisionTable = mock(GuidedDecisionTableView.Presenter.class); doReturn(true).when(event).isLocked(); doReturn(false).when(event).isLockedByCurrentUser(); doReturn(true).when(presenter).isGuidedDecisionTableEditable(activeDecisionTable); doReturn(Optional.of(activeDecisionTable)).when(modeller).getActiveDecisionTable(); doNothing().when(presenter).enableColumnsTab(anyBoolean()); presenter.onUpdatedLockStatusEvent(event); verify(presenter).enableColumnsTab(eq(false)); }
@Test public void menuItemsDisabledWhenLockedByDifferentUser() { builder.addSave(new MockSaveButton()); builder.addRename(mock(Command.class)); builder.addDelete(mock(Command.class)); final Menus menus = builder.build(); final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(mock(Path.class), true, false); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), false); assertMenuItemEnabled(menus.getItems().get(1), false); assertMenuItemEnabled(menus.getItems().get(2), false); }
@Test public void testOnUpdatedLockStatusEvent_NotLocked() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); when(event.getFile()).thenReturn(dtPath); dtPresenter.onUpdatedLockStatusEvent(event); verify(dtPresenter).refreshColumnsPage(); verify(dtPresenter).refreshMenus(); assertEquals(NOBODY, dtPresenter.getAccess().getLock()); }
void onUpdatedLockStatusEvent(final @Observes UpdatedLockStatusEvent event) { if (currentPath == null) { return; } if (currentPath.equals(event.getFile())) { if (event.isLocked()) { access.setLock(event.isLockedByCurrentUser() ? CURRENT_USER : OTHER_USER); } else { access.setLock(NOBODY); } refreshColumnsPage(); refreshMenus(); } }
@Test public void testOnUpdatedLockStatusEventWhenTableIsNotLockedAndIsNotEditable() { final UpdatedLockStatusEvent event = mock(UpdatedLockStatusEvent.class); final GuidedDecisionTableView.Presenter activeDecisionTable = mock(GuidedDecisionTableView.Presenter.class); doReturn(false).when(event).isLocked(); doReturn(false).when(event).isLockedByCurrentUser(); doReturn(false).when(presenter).isGuidedDecisionTableEditable(activeDecisionTable); doReturn(Optional.of(activeDecisionTable)).when(modeller).getActiveDecisionTable(); doNothing().when(presenter).enableColumnsTab(anyBoolean()); presenter.onUpdatedLockStatusEvent(event); verify(presenter).enableColumnsTab(eq(false)); }