@Override protected boolean preClose(String actionId) { if (WINDOW_CLOSE.equals(actionId)) { ParameterValue newValue = valueFrame == null ? null : valueFrame.getValue(); ParameterValue oldValue = parameterDs.getItem().getParameterValue(); if ((newValue == null && oldValue != null) || (newValue != null && oldValue == null)) { ((AbstractDatasource) parameterDs).setModified(true); } if (oldValue != null && newValue != null) { if (!oldValue.equals(newValue)) { ((AbstractDatasource) parameterDs).setModified(true); } } } return super.preClose(actionId); }
protected void initDs(Map<String, Object> params) { List<Parameter> parameters = (List<Parameter>) params.get(PARAMETERS); if (parameters == null) { parameters = new ArrayList<>(); } for (Parameter param : parameters) { parametersDs.includeItem(param); } parametersDs.addCollectionChangeListener(event -> { if (REFRESH != event.getOperation()) { if (dashboard != null) {//if edit dashboard params dashboard.setParameters(new ArrayList<>(event.getDs().getItems())); } ((AbstractDatasource) parametersDs).setModified(true); } }); ((AbstractDatasource) parametersDs).setModified(false); }
@EventListener public void widgetAddedToTreeEventListener(WidgetAddedEvent event) { dropLayoutTools.addComponent(event.getSource(), event.getParentLayoutUuid(), event.getLocation()); ((AbstractDatasource) dashboardDs).setModified(true); }
@Override protected boolean preClose(String actionId) { if (!widgetDs.isModified()) { if (paramsFrame.getParametersDs().isModified()) { ((AbstractDatasource) widgetDs).setModified(true); } } return super.preClose(actionId); } }
@EventListener public void onColspanChanged(ColspanChangedEvent event) { DashboardLayout source = event.getSource(); ColspanDialog weightDialog = (ColspanDialog) openWindow(ColspanDialog.SCREEN_NAME, DIALOG, ParamsMap.of( ColspanDialog.WIDGET, source)); weightDialog.addCloseListener(actionId -> { if (Window.COMMIT_ACTION_ID.equals(actionId)) { events.publish(new DashboardRefreshEvent(getDashboard().getVisualModel(), source.getUuid())); } }); ((AbstractDatasource) dashboardDs).setModified(true); }
@EventListener public void onWeightChanged(WeightChangedEvent event) { DashboardLayout source = event.getSource(); WeightDialog weightDialog = (WeightDialog) openWindow(WeightDialog.SCREEN_NAME, DIALOG, ParamsMap.of( WeightDialog.WIDGET, source)); weightDialog.addCloseListener(actionId -> { if (Window.COMMIT_ACTION_ID.equals(actionId)) { events.publish(new DashboardRefreshEvent(getDashboard().getVisualModel(), source.getUuid())); } }); ((AbstractDatasource) dashboardDs).setModified(true); }
@EventListener public void onRemoveLayout(WidgetRemovedEvent event) { DashboardLayout dashboardLayout = getDashboard().getVisualModel(); dashboardLayout.removeChild(event.getSource().getUuid()); events.publish(new DashboardRefreshEvent(dashboardLayout)); ((AbstractDatasource) dashboardDs).setModified(true); }
@Override public void postInit() { typesInfo = widgetRepository.getWidgetTypesInfo(); setWidgetType(); initParametersFrame(); widgetCaption.addValueChangeListener(v -> { if (StringUtils.isEmpty(widgetId.getValue())) { widgetId.setValue(v.getValue()); } }); ((AbstractDatasource) widgetDs).setModified(false); }
@EventListener public void onWidgetMoved(WidgetMovedEvent event) { UUID targetLayoutId = event.getParentLayoutUuid(); Dashboard dashboard = getDashboard(); dropLayoutTools.moveComponent(event.getSource(), targetLayoutId, event.getLocation()); events.publish(new DashboardRefreshEvent(dashboard.getVisualModel(), event.getSource().getId())); ((AbstractDatasource) dashboardDs).setModified(true); }
@EventListener public void onExpandChanged(ExpandChangedEvent event) { DashboardLayout source = event.getSource(); ExpandDialog expandDialog = (ExpandDialog) openWindow(ExpandDialog.SCREEN_NAME, DIALOG, ParamsMap.of( ExpandDialog.EXPAND, source.getExpand(), ExpandDialog.LAYOUT, source)); expandDialog.addCloseListener(actionId -> { if (Window.COMMIT_ACTION_ID.equals(actionId)) { DashboardLayout expandLayout = expandDialog.getExpand(); if (expandLayout != null) { source.setExpand(expandLayout.getId()); } else { source.setExpand(null); } events.publish(new DashboardRefreshEvent(getDashboard().getVisualModel(), source.getUuid())); } }); ((AbstractDatasource) dashboardDs).setModified(true); }
@EventListener public void onOpenWidgetEditor(WidgetEditEvent event) { Widget widget = event.getSource().getWidget(); WidgetEdit editor = (WidgetEdit) openEditor(WidgetEdit.SCREEN_NAME, widget, DIALOG); editor.addCloseWithCommitListener(() -> { WidgetLayout widgetLayout = getDashboard().getWidgetLayout(widget.getId()); widgetLayout.setWidget(editor.getItem()); ((AbstractDatasource) dashboardDs).setModified(true); events.publish(new DashboardRefreshEvent(getDashboard().getVisualModel(), widget.getId())); }); }
protected void parameterTypeChanged(ParameterType type) { switch (type) { case LIST_ENTITY: valueFrame = openEntitiesListValueFrame(new ListEntitiesParameterValue()); break; case ENTITY: valueFrame = openEntityValueFrame(new EntityParameterValue()); break; case ENUM: valueFrame = openEnumValueFrame(new EnumParameterValue()); break; case DATETIME: case TIME: case DATE: case DECIMAL: case INTEGER: case LONG: case STRING: case BOOLEAN: case UUID: valueFrame = openSimpleValueFrame(type, null); break; default: valueFrame = null; valueBox.removeAll(); break; } ((AbstractDatasource) parameterDs).setModified(true); }
@Override protected void postInit() { super.postInit(); if (PersistenceHelper.isNew(getItem())) { getItem().setCreatedBy(accessHelper.getCurrentSessionLogin()); } if (StringUtils.isNotEmpty(widgetTemplateDs.getItem().getWidgetModel())) { Widget widget = converter.widgetFromJson(widgetTemplateDs.getItem().getWidgetModel()); setWidgetTypeLookupValue(widget, widgetTypeLookup); } editWidgetButton.setAction(new BaseAction("openWidgetEditor") { @Override public void actionPerform(Component component) { WidgetTemplate widgetTemplate = widgetTemplateDs.getItem(); if (StringUtils.isNotEmpty(widgetTemplate.getWidgetModel())) { Widget widget = converter.widgetFromJson(widgetTemplateDs.getItem().getWidgetModel()); openWidgetEditor(widget); } } }); if (!accessHelper.getCurrentSessionLogin().equals(getItem().getCreatedBy())) { fieldGroup.getField("isAvailableForAllUsers").setVisible(false); } openWidgetEditor = true; ((AbstractDatasource) widgetTemplateDs).setModified(false); }
@Override protected void postInit() { activeField.setEnabled(!userManagementService.isAnonymousUser(getItem().getLogin())); setCaption(PersistenceHelper.isNew(getItem()) ? getMessage("createCaption") : formatMessage("editCaption", getItem().getLogin())); timeZoneLookup.setEnabled(!Boolean.TRUE.equals(getItem().getTimeZoneAuto())); // Do not show roles which are not allowed by security constraints LoadContext<Role> lc = new LoadContext<>(Role.class); lc.setQueryString("select r from sec$Role r"); lc.setView(View.MINIMAL); List<Role> allowedRoles = dataSupplier.loadList(lc); Collection<UserRole> userRoles = new ArrayList<>(rolesDs.getItems()); for (UserRole userRole : userRoles) { if (!allowedRoles.contains(userRole.getRole())) { rolesDs.excludeItem(userRole); } } if (BooleanUtils.isTrue(initCopy)) { initCopy(); } // if we add default roles, rolesDs becomes modified on setItem ((AbstractDatasource) rolesDs).setModified(false); }
@EventListener public void onStyleChanged(StyleChangedEvent event) { DashboardLayout source = event.getSource(); StyleDialog weightDialog = (StyleDialog) openWindow(StyleDialog.SCREEN_NAME, DIALOG, ParamsMap.of( StyleDialog.STYLENAME, source.getStyleName(), StyleDialog.WIDTH, source.getWidth(), StyleDialog.WIDTH_UNITS, source.getWidthUnit(), StyleDialog.HEIGHT, source.getHeight(), StyleDialog.HEIGHT_UNITS, source.getHeightUnit())); weightDialog.addCloseListener(actionId -> { if (Window.COMMIT_ACTION_ID.equals(actionId)) { Dashboard dashboard = getDashboard(); DashboardLayout layout = dashboard.getVisualModel().findLayout(source.getUuid()); layout.setStyleName(weightDialog.getLayoutStyleName()); layout.setHeight(weightDialog.getLayoutHeight()); layout.setHeightUnit(weightDialog.getLayoutHeightUnit()); layout.setWidth(weightDialog.getLayoutWidth()); layout.setWidthUnit(weightDialog.getLayoutWidthUnit()); events.publish(new DashboardRefreshEvent(dashboard.getVisualModel(), source.getUuid())); } }); ((AbstractDatasource) dashboardDs).setModified(true); }
@Override public void postInit() { if (PersistenceHelper.isNew(getItem())) { Dashboard model = metadata.create(Dashboard.class); model.setVisualModel(metadata.create(RootLayout.class)); model.setCreatedBy(accessHelper.getCurrentSessionLogin()); dashboardDs.setItem(model); } else { Dashboard model = converter.dashboardFromJson(getItem().getDashboardModel()); dashboardDs.setItem(model); } String assistantBeanName = getDashboard().getAssistantBeanName(); if (StringUtils.isNotEmpty(assistantBeanName)) { dashboardDs.getItem().setAssistantBeanName(assistantBeanName); FieldGroup.FieldConfig assistantBeanNameField = fieldGroup2.getField("assistantBeanName"); LookupField lookupField = (LookupField) assistantBeanNameField.getComponent(); lookupField.setValue(assistantBeanName); } if (!accessHelper.getCurrentSessionLogin().equals(dashboardDs.getItem().getCreatedBy())) { availableCheckBox.setVisible(false); } importJsonField.addFileUploadSucceedListener(e -> uploadJson()); dropLayoutTools = new DropLayoutTools(this, modelConverter, dashboardDs); initParametersFrame(); initPaletteFrame(); initCanvasFrame(); ((AbstractDatasource) dashboardDs).setModified(false); }
editor.addCloseWithCommitListener(() -> { widgetLayout.setWidget(editor.getItem()); ((AbstractDatasource) dashboardDs).setModified(true); reorderWidgetsAndPushEvents(widgetLayout, targetLayout, location); });