public void saveScreenHistory() { getOpenedWorkAreaScreensStream().forEach(s -> screenHistorySupport.saveScreenHistory(s) ); getDialogScreensStream().forEach(s -> screenHistorySupport.saveScreenHistory(s) ); }
Map<String, Object> params = getWindowParams(window); StringBuilder sb = new StringBuilder(); if (params != null) {
public void saveScreenHistory(Screen frameOwner) { WindowContext windowContext = frameOwner.getWindow().getContext(); if (security.isEntityOpPermitted(ScreenHistoryEntity.class, EntityOp.CREATE) && (frameOwner instanceof EditorScreen) && windowContext.getLaunchMode() != OpenMode.DIALOG && (screenIds.contains(frameOwner.getId()))) { String caption = frameOwner.getWindow().getCaption(); UUID entityId = null; Entity entity = ((EditorScreen) frameOwner).getEditedEntity(); if (entity != null) { if (PersistenceHelper.isNew(entity)) { return; } if (StringUtils.isBlank(caption)) { caption = messages.getTools().getEntityCaption(entity.getMetaClass()) + " " + metadata.getTools().getInstanceName(entity); } entityId = (UUID) entity.getId(); } ScreenHistoryEntity screenHistoryEntity = metadata.create(ScreenHistoryEntity.class); screenHistoryEntity.setCaption(StringUtils.abbreviate(caption, 255)); screenHistoryEntity.setUrl(makeLink(frameOwner)); screenHistoryEntity.setEntityId(entityId); addAdditionalFields(screenHistoryEntity, entity); CommitContext cc = new CommitContext(Collections.singleton(screenHistoryEntity)); dataManager.commit(cc); } }
/** * Requests closing of the screen caused by the given action. * * @param action close action which is propagated to {@link BeforeCloseEvent} and {@link AfterCloseEvent} * @return result of operation */ public OperationResult close(CloseAction action) { BeforeCloseEvent beforeCloseEvent = new BeforeCloseEvent(this, action); fireEvent(BeforeCloseEvent.class, beforeCloseEvent); if (beforeCloseEvent.isClosePrevented()) { if (beforeCloseEvent.getCloseResult() != null) { return beforeCloseEvent.getCloseResult(); } return OperationResult.fail(); } // save settings right before removing if (isSaveSettingsOnClose(action)) { saveSettings(); } if (isSaveScreenHistoryOnClose(action)) { ScreenHistorySupport screenHistorySupport = beanLocator.get(ScreenHistorySupport.NAME); screenHistorySupport.saveScreenHistory(this); } screenContext.getScreens().remove(this); AfterCloseEvent afterCloseEvent = new AfterCloseEvent(this, action); fireEvent(AfterCloseEvent.class, afterCloseEvent); return OperationResult.success(); }