@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); }
@Override public void setParent(Datasource datasource) { parentDs = datasource; commitMode = parentDs != null ? CommitMode.PARENT : CommitMode.DATASTORE; addParentsToNested(); }
protected void fireItemChanged(T prevItem) { ItemChangeEvent<T> itemChangeEvent = new ItemChangeEvent<>(this, prevItem, getItem()); //noinspection unchecked getEventRouter().fireEvent(ItemChangeListener.class, ItemChangeListener::itemChanged, itemChangeEvent); }
@SuppressWarnings("unchecked") protected void fireStateChanged(State prevStatus) { StateChangeEvent<T> stateChangeEvent = new StateChangeEvent<>(this, prevStatus, getState()); getEventRouter().fireEvent(StateChangeListener.class, StateChangeListener::stateChanged, stateChangeEvent); }
@Override public void removeItemChangeListener(ItemChangeListener<T> listener) { getEventRouter().removeListener(ItemChangeListener.class, listener); }
protected void addParentsToNested() { if (parentDs == null || getDsContext() == parentDs.getDsContext()) { return; } // Iterate through all datasources in the same DsContext for (Datasource sibling : getDsContext().getAll()) { // If the datasource is a property datasource of the Child if (sibling instanceof NestedDatasource && ((NestedDatasource) sibling).getMaster().equals(this) && !metadata.getTools().isEmbeddable(sibling.getMetaClass())) { // Look for corresponding property datasource in the Parent's DsContext for (Datasource siblingOfParent : parentDs.getDsContext().getAll()) { if (siblingOfParent instanceof NestedDatasource && ((NestedDatasource) siblingOfParent).getProperty().equals(((NestedDatasource) sibling).getProperty()) && ((NestedDatasource) siblingOfParent).getMaster() == parentDs) { // If such corresponding datasource found, set it as a parent for our property datasource ((DatasourceImplementation) sibling).setParent(siblingOfParent); } } } } }
@Override public void addStateChangeListener(StateChangeListener<T> listener) { getEventRouter().addListener(StateChangeListener.class, listener); }
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); }
@Override public void removeStateChangeListener(StateChangeListener<T> listener) { getEventRouter().removeListener(StateChangeListener.class, listener); }
attribute.setObjectDefaultEntityId(null); ((AbstractDatasource) attributeDs).modified(attribute); }); defaultEntityField.addLookupAction();
@EventListener public void widgetAddedToTreeEventListener(WidgetAddedEvent event) { dropLayoutTools.addComponent(event.getSource(), event.getParentLayoutUuid(), event.getLocation()); ((AbstractDatasource) dashboardDs).setModified(true); }
@Override public void addItemChangeListener(ItemChangeListener<T> listener) { getEventRouter().addListener(ItemChangeListener.class, listener); }
@Override protected boolean preClose(String actionId) { if (!widgetDs.isModified()) { if (paramsFrame.getParametersDs().isModified()) { ((AbstractDatasource) widgetDs).setModified(true); } } return super.preClose(actionId); } }
@Override public void addItemPropertyChangeListener(ItemPropertyChangeListener<T> listener) { getEventRouter().addListener(ItemPropertyChangeListener.class, listener); }
@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); }
@Override public void removeItemPropertyChangeListener(ItemPropertyChangeListener<T> listener) { getEventRouter().removeListener(ItemPropertyChangeListener.class, listener); }
@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); }