protected void fireUpdatedLockStatusEvent() { if (isVisible()) { updatedLockStatusEvent.fire(new UpdatedLockStatusEvent(lockInfo.getFile(), lockInfo.isLocked(), isLockedByCurrentUser())); } }
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 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 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 menuItemsEnabledWhenNotLocked() { 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), false, false); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), true); assertMenuItemEnabled(menus.getItems().get(1), true); assertMenuItemEnabled(menus.getItems().get(2), true); }
@Test public void menuItemsEnabledWhenLockedByCurrentUser() { 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, true); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), true); assertMenuItemEnabled(menus.getItems().get(1), true); assertMenuItemEnabled(menus.getItems().get(2), true); }
@Test public void menuItemsEnabledWhenNotLocked() { 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), false, false); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), true); assertMenuItemEnabled(menus.getItems().get(1), true); assertMenuItemEnabled(menus.getItems().get(2), true); }
@Test public void menuItemsEnabledWhenLockedByCurrentUser() { 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, true); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), true); assertMenuItemEnabled(menus.getItems().get(1), true); assertMenuItemEnabled(menus.getItems().get(2), true); }
@Test public void menuItemsDisabledWhenNotLockedWithCustomStateHelper() { builder.addSave(new MockSaveButton()); builder.addRename(mock(Command.class)); builder.addDelete(mock(Command.class)); builder.setLockSyncMenuStateHelper((final Path file, final boolean isLocked, final boolean isLockedByCurrentUser) -> Operation.DISABLE); final Menus menus = builder.build(); //Not locked, MenuItems should normally be enabled however our custom helper forces disable final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(mock(Path.class), false, 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 menuItemsDisabledWhenNotLockedWithCustomStateHelper() { builder.addSave(new MockSaveButton()); builder.addRename(mock(Command.class)); builder.addDelete(mock(Command.class)); builder.setLockSyncMenuStateHelper((final Path file, final boolean isLocked, final boolean isLockedByCurrentUser) -> Operation.DISABLE); final Menus menus = builder.build(); //Not locked, MenuItems should normally be enabled however our custom helper forces disable final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(mock(Path.class), false, 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 menuItemsStateChangeVetoedWhenLockedWithCustomStateHelper() { builder.addSave(new MockSaveButton()); builder.addRename(mock(Command.class)); builder.addDelete(mock(Command.class)); builder.setLockSyncMenuStateHelper((final Path file, final boolean isLocked, final boolean isLockedByCurrentUser) -> Operation.VETO); final Menus menus = builder.build(); menus.getItems().get(0).setEnabled(true); menus.getItems().get(1).setEnabled(true); menus.getItems().get(2).setEnabled(true); //Locked, MenuItems should normally be disabled however our custom helper vetos changes final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(mock(Path.class), true, false); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), true); assertMenuItemEnabled(menus.getItems().get(1), true); assertMenuItemEnabled(menus.getItems().get(2), true); }
@Test public void menuItemsStateChangeVetoedWhenLockedWithCustomStateHelper() { builder.addSave(new MockSaveButton()); builder.addRename(mock(Command.class)); builder.addDelete(mock(Command.class)); builder.setLockSyncMenuStateHelper((final Path file, final boolean isLocked, final boolean isLockedByCurrentUser) -> Operation.VETO); final Menus menus = builder.build(); menus.getItems().get(0).setEnabled(true); menus.getItems().get(1).setEnabled(true); menus.getItems().get(2).setEnabled(true); //Locked, MenuItems should normally be disabled however our custom helper vetos changes final UpdatedLockStatusEvent event = new UpdatedLockStatusEvent(mock(Path.class), true, false); builder.onEditorLockInfo(event); assertMenuItemEnabled(menus.getItems().get(0), true); assertMenuItemEnabled(menus.getItems().get(1), true); assertMenuItemEnabled(menus.getItems().get(2), true); }