Jmix 1.3 released

Hi everyone,

The release 1.3 of the Jmix framework and Studio is out! The framework is available in our artifact repositories, Jmix Studio plugin is ready for update in your IntelliJ IDEA.

Please see what’s new for upgrade instructions and the list of new features and backwards incompatible changes.

The documentation now shows information about version 1.3 by default. You can switch to previous versions using the selection controls at the bottom left corner or in the page header.

We’re looking forward to your feedback!

6 Likes

Community add-ons are not yet included in the Jmix BOM, so if you want to use them with Jmix 1.3, specify the add-on version explicitly in your build.gradle. Refer to add-on READMEs for information about available versions.

Congratulations :clap:
Great job!
Thanks for your hard work.

BR
Stefan

JPQL designer very nice. Looking forward for vaadin 23 UI improvements in next releases.

3 Likes

Thank you for the new release!

Just one remark: In the docs for “What’s new” (What’s New :: Jmix Documentation ) you state that the property to disable the “Pessimistic Lock Expiration” is jmix.core.pessimistic-lock.use-default-quartz-configuration. However by looking at the code we figured out, that it’s actually jmix.pessimistic-lock.use-default-quartz-configuration. Maybe you want to fix the docs so others don’t need to waste time as well to find out that this doesn’t match.

The correct property name should be jmix.core.pessimistic-lock.use-default-quartz-configuration as mentioned in the documentation.

I’ve created an issue. The fix will appear in the next bugfix release.

@thomas Thank you for reporting a problem!

Hi
I have created my first Jmix 1.3.1 project but when I try to run, getting the following exception:

Execution failed for task ':bootRun'.
> Process 'command '/Users/mak/Library/Java/JavaVirtualMachines/openjdk-17.0.1/Contents/Home/bin/java'' finished with non-zero exit value 1

I also have tried with 1.3.999 SNAPSHOT version but got the same problem.

I have attached the sample project.
sampleFlow2.zip (86.4 KB)

Mortoza

Hi Mortoza

Your project works for me. Try to update Jmix version to the latest:

jmix {
    bomVersion = '1.3.1'

I just tried again this morning (nightly update) and it works.
Thanks.

I already have started exploring, will share with you some comments

Fantastic!
Flow UI looks great and responsive by default. Congratulations team. This is going to be a great product!
image

We all know this is still in progress, I thought to share with you some observations that you can fix/update sooner:

  1. The template generated the screen with the attribute “rows” but it seems not existing as you see in red:
    image

  2. While colSpan exists, rowSpan is missing.

  3. May we expect will see the component field names in a future releases in the design screen?
    image

  4. Drag-n-drop components doesn’t work, is it coming in a future release or it is already existing that I am missing?

  5. Add-to-Screen: When I click “add to screen” button in the screen designer, you see the message in the tray (No screens were found…). It seems the name the studio is looking for is different from the default screen name created by it.

image

  1. After I have added a new field in the Entity and want to add to the screen manually, when I press control + shift, the list doesn’t show the new fields.
    image

  2. A limited number of containers were found, hope more will be added soon (e.g. Tab, TabSheet, GroupBox etc. are critical)

  3. When I selected dataGrid in my screen, no properties were found

image

  1. When I select 2nd or 3rd screens in run time, unlike the previous version, the subsequent screen replaces the previous screen in the display. How can I turn on multiple screen displays like the previous version of JMIX or CUBA?

  2. I didn’t find a Menu component to customize the menu view.

  3. I didn’t find “beforeShow”, “AfterShow” etc. methods to override in the controller. Is it changed to something else?

  4. Is it possible we can create Flow UI in the project that was created in Jmix 1.2x? I tried but didn’t find option to select the flow template to generate screen

  5. Where is data component to add new data containers?

Thank you for your positive feedback!

Actually, the Vaadin Flow is a great UI framework, we just make it more convenient to use in enterprise applications. And we are going to stay as close as possible to the original features of Vaadin Flow, which will ensure easy integration of everything provided by Vaadin.

Regarding problems you mentioned:

1,2,5,9,11,14,15 - thanks, we’ll take a closer look and fix

Sure, it’s on the way. The preview will look exactly as in running application.

D&D will work only in Components Hierarchy, the preview panel is read-only.

We’ll provide our own TabSheet as it doesn’t exist in Vaadin components set.

There will be no internal tabs in Flow UI. If a user needs another tab, he can open the new browser tab with Cmd+Click or via context menu, as in any other web application.

No.

Data components work the same as in current UI.

Regards,
Konstantin

1 Like

Thank you Konstantin for your response.
Looking forward to explore the new version with those fixes/updates.

  1. I noticed Vaadin has Tab which is similar to TabSheet as below:
    image

  2. In that case, when the 2nd screen is opened, the 1st screen is closed or just hidden (remained in memory)? In such cases, how is JMIX handling the first screen in case there is unsaved data?

  3. In that case, do we have to recreate all Entities from scratch or there will be a way to copy them from v1.2x?

  4. I looked for the data components to add additional queries but didn’t find them. Am I missing something or this is planned for the upcoming version?

Hi,

Thank you for reporting the problem, I’created an issue.

There is no rowspan attribute in the Vaadin Form component, hence we don’t have it either.

Thank you for reporting the problem, I’ve created an issue as well as for the other Studio problems.

As Konstantin mentioned, we’ll provide our own TabSheet component. Vaadin has a component with similar functionality to GroupBox called Details.

The Tabs component is a trap. It looks like TabSheet but in fact it provides the functionality of only displaying Tabs. What I mean is that this component has no layout to display other components. For example, if you take a look at their Switching Between Content sample, it is just a SelectedChangeListener added to the Tabs.

No, previous view is removed. Also, refreshing the page results in view re-creation.

Currently, unsaved data is checked only when using standard Cancel/Close button. We’ll also try to prevent unsaved changes to be lost when navigation to another view.

Similar to Jmix UI, there are listeners, but for now, Studio don’t know how to add them, but they can be added manually, e.g.:

@Subscribe
public void onInit(InitEvent event) {
...
}

Jmix Flow UI project contains menu.xml file that can be used to customize menu. as for the UI component that represents menu, it’s called ListMenu and can be sound in the main-view.xml within drawerLayout.

Regards,
Gleb

1 Like

Hi Gleb
Thanks for the additional info and issues logged.

For rowspan, do you know how is it managed in terms of screen design when a text area requires addition space vertically in a screen with other components?

For Menu, I guess you will have option in upcoming versions to add parameters and custom text/name of the menu like we have in CUBA/Jmix.

Overall, this means, this is totally a new tool without any option to migrate from the previous version of CUBA/JMIX. At lot to be added yet. I hope the tool will have at least similar and productive functionalities to CUBA eventually. Let’s see!!

Well, I see 2 options:

  1. Define TextArea second to last (in case of 2 columns)

Screenshot 2022-07-21 at 17.07.52

  1. Use 2 FormLayouts inside main FormLayout, e.g.:
<formLayout id="mainForm">
    <formLayout id="leftForm">
        <!-- Use one column by default -->
        <responsiveSteps>
            <responsiveStep minWidth="0" columns="1"/>
        </responsiveSteps>

        <textField label="Text Field"/>
        <textArea label="Text Area" height="8.4em"/>
    </formLayout>

    <formLayout id="rightForm">
        <!-- Use one column by default -->
        <responsiveSteps>
            <responsiveStep minWidth="0" columns="1"/>
        </responsiveSteps>

        <textField label="Text Field"/>
        <textField label="Text Field"/>
        <textField label="Text Field"/>
    </formLayout>
</formLayout>

Screenshot 2022-07-21 at 17.07.57

For now, only views allowed in the menu.xml, in the future we’ll plan to support different menu item types.

1 Like

I liked your option 2 using FormLayout inside a formLayout. An in future, you may consider creating from the designer and an option to drag-n-drop the components between FormLayouts…

Any comments Gleb?

If I correctly got the thread flow

then, currently we have neither a project template that contains both UI and Flow UI modules nor Studio functionality to add a Flow UI module to an existing Jmix project, only a template for a new project based on Flow UI.

Gleb

Gleb,
Got it about the UI which is very clear (Vaadin 8 application’s end of life in CUBA/JMIX) but now I wanted to know if there is/will be any way we could migrate just the database tables and recreate the UI using Flow UI. Is it a reasonable proposal?

regards