private void checkState() { if (null != getSession()) { final SessionCommandManager<AbstractCanvasHandler> cm = getSessionCommandManager(); final boolean isHistoryEmpty = cm == null || cm.getRegistry().getCommandHistory().isEmpty(); setEnabled(!isHistoryEmpty); } else { setEnabled(false); } fire(); }
void onKeyDownEvent(final KeyboardEvent.Key... keys) { if (isEnabled()) { handleCtrlZ(keys); } }
private void handleCtrlZ(final KeyboardEvent.Key[] keys) { if (doKeysMatch(keys, KeyboardEvent.Key.CONTROL, KeyboardEvent.Key.Z)) { this.execute(); } }
@Override @SuppressWarnings("unchecked") public <V> void execute(final Callback<V> callback) { checkNotNull("callback", callback); final SessionCommandManager<AbstractCanvasHandler> scm = getSessionCommandManager(); if (null != scm) { final CommandResult<CanvasViolation> result = getSessionCommandManager().undo((AbstractCanvasHandler) getSession().getCanvasHandler()); checkState(); if (CommandUtils.isError(result)) { callback.onError((V) result); } else { callback.onSuccess(); } getSession().getSelectionControl().clearSelection(); } }
void onClearSessionExecuted(final @Observes ClearSessionCommandExecutedEvent event) { checkNotNull("event", event); if (Objects.equals(getSession(), event.getClientSession())) { checkState(); } }
void onCommandExecuted(final @Observes CanvasCommandExecutedEvent commandExecutedEvent) { checkNotNull("commandExecutedEvent", commandExecutedEvent); checkState(); }
private void menu_undo() { sessionCommands.getUndoSessionCommand().execute(); }
void onCommandUndoExecuted(final @Observes CanvasUndoCommandExecutedEvent commandUndoExecutedEvent) { checkNotNull("commandUndoExecutedEvent", commandUndoExecutedEvent); checkState(); }
void onSessionErrorEvent(final @Observes OnSessionErrorEvent errorEvent) { if (isSameSession(errorEvent.getSession())) { executeWithConfirm(translationService.getValue(StunnerProjectClientConstants.ON_ERROR_CONFIRM_UNDO_LAST_ACTION, errorEvent.getError()), () -> menuSessionItems.getCommands().getUndoSessionCommand().execute()); } }