### Run Jmix UI Samples Locally Source: https://github.com/jmix-framework/jmix-ui-samples-2/blob/main/README.md Execute this command in the project's terminal to start the Jmix UI Samples application locally. Ensure JDK 17 is set up. ```bash ./gradlew bootRun ``` -------------------------------- ### Add Vaadin Add-on Repository and Dependency Source: https://github.com/jmix-framework/jmix-ui-samples-2/blob/main/src/main/resources/io/jmix/uisamples/view/flowui/customcomponents/vaadinaddons/inputmasksimple/input-mask-addon-simple-en.md Configure your project's `build.gradle` file to include the Vaadin Add-ons Maven repository and add the desired add-on dependency. This setup is necessary before you can use the add-on components in your application. ```groovy repositories { maven { url 'https://maven.vaadin.com/vaadin-addons' } // ... } dependencies { implementation 'org.vaadin.addons.componentfactory:vcf-input-mask:2.2.0' // ... } ``` -------------------------------- ### Configure Full-Screen Layout Source: https://github.com/jmix-framework/jmix-ui-samples-2/blob/main/src/main/frontend/index.html Sets the body and outlet elements to occupy the full viewport height and width with no margins. ```css body, #outlet { height: 100vh; width: 100%; margin: 0; } ``` -------------------------------- ### Configure Gradle for Vaadin Add-ons Source: https://github.com/jmix-framework/jmix-ui-samples-2/blob/main/src/main/resources/io/jmix/uisamples/view/flowui/customcomponents/vaadinaddons/socharts/charts-addon-en.html Add the Vaadin repository and the specific add-on dependency to the build.gradle file. ```groovy repositories { maven { url 'https://maven.vaadin.com/vaadin-addons' } // ... } dependencies { implementation 'com.storedobject.chart:so-charts:3.2.4' // ... } ``` -------------------------------- ### Configure Meeting Point Detail View Source: https://github.com/jmix-framework/jmix-ui-samples-2/blob/main/src/main/resources/io/jmix/uisamples/view/flowui/cookbook/composition3/composition-master-detail-1-en.md Set the `openMode` to `DIALOG` for the meeting point detail view to open it as a dialog. Ensure the fetch plan for `Terminal` includes `Terminal.meetingPoints`. ```xml ``` -------------------------------- ### Implement Wizard Dialog Pattern Source: https://context7.com/jmix-framework/jmix-ui-samples-2/llms.txt Manages multi-step navigation and validation using TabSheet and ViewValidation. ```java // WizardDialog.java @ViewController("wizard-dialog") @ViewDescriptor("wizard-dialog.xml") @EditedEntityContainer("employeeDc") @DialogMode(width = "50em") public class WizardDialog extends StandardDetailView { @ViewComponent private JmixTabSheet wizardContent; @ViewComponent private JmixButton backButton; @ViewComponent private JmixButton nextButton; @Autowired private ViewValidation viewValidation; private int tabsCount; public WizardDialog addStep(WizardStep step) { Tab tab = createTab(step, ++tabsCount); tab.setEnabled(false); step.content().setupData(getViewData()); wizardContent.add(tab, step.content()); return this; } @Subscribe(id = "nextButton", subject = "clickListener") public void onNextButtonClick(final ClickEvent event) { if (isLastTabSelected()) { closeWithSave(); return; } ValidationErrors validationErrors = validateCurrentStep(); if (validationErrors.isEmpty()) { wizardContent.getSelectedTab().setEnabled(false); int selectedIndex = wizardContent.getSelectedIndex(); wizardContent.getTabAt(++selectedIndex).setEnabled(true); wizardContent.setSelectedIndex(selectedIndex); } else { viewValidation.focusProblemComponent(validationErrors); viewValidation.showValidationErrors(validationErrors); } } private ValidationErrors validateCurrentStep() { return viewValidation.validateUiComponents( wizardContent.getContentByTab(wizardContent.getSelectedTab())); } } ``` -------------------------------- ### Configure Kanban Board with CRUD Actions Source: https://context7.com/jmix-framework/jmix-ui-samples-2/llms.txt Defines a Kanban board component with data binding, column configuration, and standard CRUD actions using dialog-based editing. ```xml