/** * Action start. * * @param action * the action * @param context * the context */ @Override public void actionStart(IAction action, Map<String, Object> context) { if (!isEnabled() || !filter(action)) { return; } Date startTimestamp = new Date(); if (currentCallStack.isEmpty()) { IFrontendController<?, ?, ?> frontendController = getFrontendController(context); if (frontendController != null) { currentSession = frontendController.getApplicationSession(); currentUser = currentSession.getPrincipal(); currentWorkspace = frontendController.getSelectedWorkspace(); currentModule = frontendController.getSelectedModule(); } else { IBackendController backendController = getBackendController(context); currentSession = backendController.getApplicationSession(); currentUser = backendController.getApplicationSession().getPrincipal(); } } currentCallStack.add(new ActionEntry(action, new HashMap<>(context), startTimestamp)); }