Search in sources :

Example 1 with VBoxLayout

use of io.jmix.ui.component.VBoxLayout in project jmix by jmix-framework.

the class AppWorkAreaLoader method createComponent.

@Override
public void createComponent() {
    resultComponent = createComponentInternal();
    loadId(resultComponent, element);
    Element initialLayoutElement = element.element("initialLayout");
    initialLayoutLoader = getLayoutLoader().getLoader(initialLayoutElement, VBoxLayout.NAME);
    initialLayoutLoader.createComponent();
    VBoxLayout initialLayout = (VBoxLayout) initialLayoutLoader.getResultComponent();
    resultComponent.setInitialLayout(initialLayout);
}
Also used : VBoxLayout(io.jmix.ui.component.VBoxLayout) Element(org.dom4j.Element)

Example 2 with VBoxLayout

use of io.jmix.ui.component.VBoxLayout in project jmix by jmix-framework.

the class TestProgrammaticCommentaryPanel method createComponent.

protected void createComponent() {
    VBoxLayout rootPanel = uiComponents.create(VBoxLayout.class);
    rootPanel.setId("rootPanel");
    rootPanel.setMargin(true);
    rootPanel.setSpacing(true);
    rootPanel.setStyleName("commentary-panel card");
    rootPanel.setWidthFull();
    DataGrid<CommentObject> commentsDataGrid = uiComponents.create(DataGrid.of(CommentObject.class));
    commentsDataGrid.setId("commentsDataGrid");
    commentsDataGrid.setBodyRowHeight(100);
    commentsDataGrid.setColumnReorderingAllowed(false);
    commentsDataGrid.setColumnsCollapsingAllowed(false);
    commentsDataGrid.setHeaderVisible(false);
    commentsDataGrid.setSelectionMode(DataGrid.SelectionMode.NONE);
    commentsDataGrid.setWidthFull();
    CssLayout sendMessageBox = uiComponents.create(CssLayout.class);
    sendMessageBox.setId("sendMessageBox");
    sendMessageBox.setStyleName("v-component-group message-box");
    sendMessageBox.setWidthFull();
    TextField<String> messageField = uiComponents.create(TextField.TYPE_STRING);
    messageField.setId("messageField");
    messageField.setInputPrompt("Enter your message");
    messageField.setWidthFull();
    Button sendBtn = uiComponents.create(Button.class);
    sendBtn.setId("sendBtn");
    sendBtn.setCaption("Send");
    sendMessageBox.add(messageField, sendBtn);
    rootPanel.add(commentsDataGrid, sendMessageBox);
    rootPanel.expand(commentsDataGrid);
    setComposition(rootPanel);
}
Also used : VBoxLayout(io.jmix.ui.component.VBoxLayout) CssLayout(io.jmix.ui.component.CssLayout) Button(io.jmix.ui.component.Button) CommentObject(test_support.entity.model_objects.CommentObject)

Example 3 with VBoxLayout

use of io.jmix.ui.component.VBoxLayout in project jmix by jmix-framework.

the class CanvasUiComponentsFactory method createCanvasWidgetLayout.

@Override
public CanvasWidgetLayout createCanvasWidgetLayout(CanvasFragment canvasFragment, WidgetLayout widgetLayout) {
    Widget widget = widgetLayout.getWidget();
    Optional<WidgetTypeInfo> widgetTypeOpt = widgetRepository.getWidgetTypesInfo().stream().filter(widgetType -> StringUtils.equals(widget.getFragmentId(), widgetType.getFragmentId())).findFirst();
    if (!widgetTypeOpt.isPresent()) {
        CanvasWidgetLayout layout = components.create(CanvasWidgetLayout.class).init(widgetLayout);
        Label<String> label = components.create(Label.class);
        String message = messages.formatMessage(CanvasUiComponentsFactory.class, "widgetNotFound", widget.getCaption(), widget.getName());
        label.setValue(message);
        layout.addComponent(label);
        log.error(message);
        return layout;
    }
    widget.setDashboard(canvasFragment.getDashboardModel());
    String fragmentId = widgetTypeOpt.get().getFragmentId();
    Map<String, Object> params = new HashMap<>(ParamsMap.of(WIDGET, widget, DASHBOARD_MODEL, canvasFragment.getDashboardModel(), DASHBOARD, canvasFragment.getDashboard()));
    params.putAll(widgetRepository.getWidgetParams(widget));
    ScreenFragment screenFragment = AppUI.getCurrent().getFragments().create(canvasFragment, fragmentId, new MapScreenOptions(params)).init();
    Fragment fragment = screenFragment.getFragment();
    fragment.setSizeFull();
    Component widgetComponent = fragment;
    if (BooleanUtils.isTrue(widget.getShowWidgetCaption())) {
        VBoxLayout vBoxLayout = components.create(VBoxLayout.class);
        vBoxLayout.setSpacing(true);
        vBoxLayout.setMargin(true);
        vBoxLayout.setSizeFull();
        Label<String> label = components.create(Label.class);
        label.setValue(widget.getCaption());
        label.setStyleName("h2");
        vBoxLayout.add(label);
        vBoxLayout.add(fragment);
        vBoxLayout.expand(fragment);
        widgetComponent = vBoxLayout;
    } else {
        fragment.setMargin(true);
    }
    CanvasWidgetLayout layout = components.create(CanvasWidgetLayout.class).init(widgetLayout);
    layout.setUuid(UUID.randomUUID());
    layout.addComponent(widgetComponent);
    layout.setWidgetComponent(screenFragment);
    layout.setInnerLayout(widgetComponent);
    layout.setWidget(widget);
    layout.getDelegate().expand(widgetComponent);
    layout.setSizeFull();
    return layout;
}
Also used : ScreenFragment(io.jmix.ui.screen.ScreenFragment) Dashboard(io.jmix.dashboardsui.component.Dashboard) Fragment(io.jmix.ui.component.Fragment) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) ParamsMap(io.jmix.core.common.util.ParamsMap) BooleanUtils(org.apache.commons.lang3.BooleanUtils) HashMap(java.util.HashMap) Widget(io.jmix.dashboards.model.Widget) StringUtils(org.apache.commons.lang3.StringUtils) Messages(io.jmix.core.Messages) WidgetRepository(io.jmix.dashboardsui.repository.WidgetRepository) Component(io.jmix.ui.component.Component) CanvasComponentsFactory(io.jmix.dashboardsui.dashboard.tools.factory.CanvasComponentsFactory) UiComponents(io.jmix.ui.UiComponents) VBoxLayout(io.jmix.ui.component.VBoxLayout) Map(java.util.Map) MapScreenOptions(io.jmix.ui.screen.MapScreenOptions) Logger(org.slf4j.Logger) UUID(java.util.UUID) io.jmix.dashboards.model.visualmodel(io.jmix.dashboards.model.visualmodel) CanvasLayout(io.jmix.dashboardsui.component.CanvasLayout) Label(io.jmix.ui.component.Label) AppUI(io.jmix.ui.AppUI) Optional(java.util.Optional) io.jmix.dashboardsui.component.impl(io.jmix.dashboardsui.component.impl) CanvasFragment(io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment) WidgetTypeInfo(io.jmix.dashboardsui.repository.WidgetTypeInfo) VBoxLayout(io.jmix.ui.component.VBoxLayout) HashMap(java.util.HashMap) Widget(io.jmix.dashboards.model.Widget) WidgetTypeInfo(io.jmix.dashboardsui.repository.WidgetTypeInfo) ScreenFragment(io.jmix.ui.screen.ScreenFragment) Fragment(io.jmix.ui.component.Fragment) CanvasFragment(io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment) ScreenFragment(io.jmix.ui.screen.ScreenFragment) MapScreenOptions(io.jmix.ui.screen.MapScreenOptions) Component(io.jmix.ui.component.Component)

Aggregations

VBoxLayout (io.jmix.ui.component.VBoxLayout)3 Messages (io.jmix.core.Messages)1 ParamsMap (io.jmix.core.common.util.ParamsMap)1 Widget (io.jmix.dashboards.model.Widget)1 io.jmix.dashboards.model.visualmodel (io.jmix.dashboards.model.visualmodel)1 CanvasLayout (io.jmix.dashboardsui.component.CanvasLayout)1 Dashboard (io.jmix.dashboardsui.component.Dashboard)1 io.jmix.dashboardsui.component.impl (io.jmix.dashboardsui.component.impl)1 CanvasComponentsFactory (io.jmix.dashboardsui.dashboard.tools.factory.CanvasComponentsFactory)1 WidgetRepository (io.jmix.dashboardsui.repository.WidgetRepository)1 WidgetTypeInfo (io.jmix.dashboardsui.repository.WidgetTypeInfo)1 CanvasFragment (io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment)1 AppUI (io.jmix.ui.AppUI)1 UiComponents (io.jmix.ui.UiComponents)1 Button (io.jmix.ui.component.Button)1 Component (io.jmix.ui.component.Component)1 CssLayout (io.jmix.ui.component.CssLayout)1 Fragment (io.jmix.ui.component.Fragment)1 Label (io.jmix.ui.component.Label)1 MapScreenOptions (io.jmix.ui.screen.MapScreenOptions)1