Search in sources :

Example 1 with Widget

use of io.jmix.dashboards.model.Widget in project jmix by jmix-framework.

the class PersistentDashboardEdit method onOpenWidgetEditor.

@EventListener
public void onOpenWidgetEditor(WidgetEditEvent event) {
    Widget widget = event.getSource().getWidget();
    screenBuilders.editor(Widget.class, this).editEntity(widget).withOpenMode(OpenMode.DIALOG).build().show().addAfterCloseListener(e -> {
        StandardCloseAction closeAction = (StandardCloseAction) e.getCloseAction();
        if (Window.COMMIT_ACTION_ID.equals(closeAction.getActionId())) {
            WidgetLayout widgetLayout = getDashboardModel().getWidgetLayout(widget.getId());
            widgetLayout.setWidget(((WidgetEdit) e.getSource()).getEditedEntity());
            uiEventPublisher.publishEvent(new DashboardRefreshEvent(getDashboardModel().getVisualModel(), widget.getId()));
        }
    });
}
Also used : Widget(io.jmix.dashboards.model.Widget) DashboardRefreshEvent(io.jmix.dashboardsui.dashboard.event.DashboardRefreshEvent) EventListener(org.springframework.context.event.EventListener)

Example 2 with Widget

use of io.jmix.dashboards.model.Widget in project jmix by jmix-framework.

the class DashboardImpl method refresh.

/**
 * Refreshes widget with passed parameters.
 * Dashboard will be refreshed with merged existed and new parameters.
 * If existed parameter has the same name as one of the param from passed map, it will be overwritten by param from map.
 *
 * @param params map with new dashboard parameters
 */
@Override
public void refresh(Map<String, Object> params) {
    DashboardModel dashboardModel = null;
    if (isNotBlank(jsonPath)) {
        dashboardModel = loadDashboardByJson(jsonPath);
    } else if (isNotBlank(code)) {
        dashboardModel = loadDashboardByCode(code);
    }
    if (MapUtils.isNotEmpty(params) && Objects.nonNull(dashboardModel)) {
        Map<String, Parameter> newParams = params.keySet().stream().map(key -> {
            Parameter parameter = metadata.create(Parameter.class);
            parameter.setName(key);
            parameter.setAlias(key);
            parameter.setValue(parameterTransformer.createParameterValue(params.get(key)));
            return parameter;
        }).collect(Collectors.toMap(Parameter::getName, Function.identity()));
        Map<String, Parameter> paramMap = dashboardModel.getParameters().stream().collect(Collectors.toMap(Parameter::getName, Function.identity()));
        paramMap.putAll(newParams);
        dashboardModel.setParameters(new ArrayList<>(paramMap.values()));
    }
    updateDashboard(dashboardModel);
}
Also used : ScreenFragment(io.jmix.ui.screen.ScreenFragment) PersistentDashboard(io.jmix.dashboards.entity.PersistentDashboard) Dashboard(io.jmix.dashboardsui.component.Dashboard) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) ParamsMap(io.jmix.core.common.util.ParamsMap) StringUtils(org.apache.commons.lang3.StringUtils) Messages(io.jmix.core.Messages) DashboardEvent(io.jmix.dashboardsui.event.DashboardEvent) io.jmix.ui(io.jmix.ui) Method(java.lang.reflect.Method) Resource(org.springframework.core.io.Resource) DataManager(io.jmix.core.DataManager) UiEventListenerMethodAdapter(io.jmix.ui.sys.event.UiEventListenerMethodAdapter) ResourceLoader(org.springframework.core.io.ResourceLoader) DataUnit(io.jmix.ui.component.data.DataUnit) LookupWidget(io.jmix.dashboardsui.widget.LookupWidget) UiControllerReflectionInspector(io.jmix.ui.sys.UiControllerReflectionInspector) EventListener(org.springframework.context.event.EventListener) ApplicationListener(org.springframework.context.ApplicationListener) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) InvocationTargetException(java.lang.reflect.InvocationTargetException) IOUtils(org.apache.commons.io.IOUtils) CanvasLayout(io.jmix.dashboardsui.component.CanvasLayout) Timer(io.jmix.ui.component.Timer) AbstractApplicationContext(org.springframework.context.support.AbstractApplicationContext) StringUtils.isNotBlank(org.apache.commons.lang3.StringUtils.isNotBlank) io.jmix.ui.component(io.jmix.ui.component) CODE(io.jmix.dashboardsui.screen.dashboard.view.DashboardViewScreen.CODE) AccessConstraintsHelper(io.jmix.dashboardsui.dashboard.tools.AccessConstraintsHelper) java.util(java.util) DashboardUpdatedEvent(io.jmix.dashboardsui.event.DashboardUpdatedEvent) Widget(io.jmix.dashboards.model.Widget) Function(java.util.function.Function) DASHBOARD(io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment.DASHBOARD) Parameter(io.jmix.dashboards.model.parameter.Parameter) UiEventsMulticaster(io.jmix.ui.sys.event.UiEventsMulticaster) RefreshableWidget(io.jmix.dashboardsui.widget.RefreshableWidget) MapScreenOptions(io.jmix.ui.screen.MapScreenOptions) Nullable(javax.annotation.Nullable) MapUtils(org.apache.commons.collections4.MapUtils) Logger(org.slf4j.Logger) DashboardException(io.jmix.dashboardsui.DashboardException) UTF_8(java.nio.charset.StandardCharsets.UTF_8) Metadata(io.jmix.core.Metadata) JsonConverter(io.jmix.dashboards.converter.JsonConverter) ItemsSelectedEvent(io.jmix.dashboardsui.event.ItemsSelectedEvent) ParameterTransformer(io.jmix.dashboardsui.transformation.ParameterTransformer) DashboardModel(io.jmix.dashboards.model.DashboardModel) ReflectionUtils(org.springframework.util.ReflectionUtils) BeanFactory(org.springframework.beans.factory.BeanFactory) CanvasFragment(io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment) DashboardViewAssistant(io.jmix.dashboardsui.dashboard.assistant.DashboardViewAssistant) DashboardModel(io.jmix.dashboards.model.DashboardModel) Parameter(io.jmix.dashboards.model.parameter.Parameter)

Example 3 with Widget

use of io.jmix.dashboards.model.Widget in project jmix by jmix-framework.

the class PaletteComponentsFactoryImpl method createWidgetTemplateButton.

public PaletteButton createWidgetTemplateButton(WidgetTemplate wt) {
    Widget widget = converter.widgetFromJson(wt.getWidgetModel());
    widget.setName(widgetUtils.getWidgetType(widget.getFragmentId()));
    WidgetTemplateLayout layout = metadata.create(WidgetTemplateLayout.class);
    layout.setWidget(widget);
    PaletteButton button = createCommonButton();
    button.setCaption(String.format("%s (%s)", wt.getName(), widgetRepository.getLocalizedWidgetName(widget)));
    button.setLayout(layout);
    button.getLayout().setId(null);
    return button;
}
Also used : PaletteButton(io.jmix.dashboardsui.component.impl.PaletteButton) Widget(io.jmix.dashboards.model.Widget)

Example 4 with Widget

use of io.jmix.dashboards.model.Widget in project jmix by jmix-framework.

the class PaletteFragment method initWidgetBox.

protected void initWidgetBox() {
    for (Widget widget : getSketchWidgets()) {
        PaletteButton widgetBtn = factory.createWidgetButton(widget);
        ddWidgetBox.add(widgetBtn);
    }
}
Also used : PaletteButton(io.jmix.dashboardsui.component.impl.PaletteButton) Widget(io.jmix.dashboards.model.Widget)

Example 5 with Widget

use of io.jmix.dashboards.model.Widget in project jmix by jmix-framework.

the class WidgetTemplateEdit method createWidgetTypeComboBox.

private ComboBox<String> createWidgetTypeComboBox() {
    ComboBox<String> widgetTypeComboBox = components.create(ComboBox.TYPE_STRING);
    widgetTypeComboBox.setWidth("100%");
    widgetTypeComboBox.setOptionsMap(widgetUtils.getWidgetCaptions());
    widgetTypeComboBox.addValueChangeListener(e -> {
        String browserFragmentId = e.getValue();
        if (browserFragmentId != null) {
            Widget widget = dataContext.create(Widget.class);
            widget.setFragmentId(browserFragmentId);
            widget.setName(widgetUtils.getWidgetType(e.getValue()));
            widget.setCreatedBy(accessHelper.getCurrentUsername());
            openWidgetEditor(widget);
        }
    });
    return widgetTypeComboBox;
}
Also used : Widget(io.jmix.dashboards.model.Widget)

Aggregations

Widget (io.jmix.dashboards.model.Widget)15 Messages (io.jmix.core.Messages)4 ParamsMap (io.jmix.core.common.util.ParamsMap)3 WidgetTemplate (io.jmix.dashboards.entity.WidgetTemplate)3 Parameter (io.jmix.dashboards.model.parameter.Parameter)3 WidgetRepository (io.jmix.dashboardsui.repository.WidgetRepository)3 WidgetTypeInfo (io.jmix.dashboardsui.repository.WidgetTypeInfo)3 ScreenFragment (io.jmix.ui.screen.ScreenFragment)3 StringUtils (org.apache.commons.lang3.StringUtils)3 Autowired (org.springframework.beans.factory.annotation.Autowired)3 Metadata (io.jmix.core.Metadata)2 CanvasLayout (io.jmix.dashboardsui.component.CanvasLayout)2 Dashboard (io.jmix.dashboardsui.component.Dashboard)2 PaletteButton (io.jmix.dashboardsui.component.impl.PaletteButton)2 AccessConstraintsHelper (io.jmix.dashboardsui.dashboard.tools.AccessConstraintsHelper)2 ItemsSelectedEvent (io.jmix.dashboardsui.event.ItemsSelectedEvent)2 CanvasFragment (io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment)2 ParameterTransformer (io.jmix.dashboardsui.transformation.ParameterTransformer)2 LookupWidget (io.jmix.dashboardsui.widget.LookupWidget)2 RefreshableWidget (io.jmix.dashboardsui.widget.RefreshableWidget)2