Skip to content

Introduce SidePanelLayout and SideDialog (3901)#5027

Merged
Flaurite merged 36 commits intomasterfrom
feature/3901-drawer-component
Feb 24, 2026
Merged

Introduce SidePanelLayout and SideDialog (3901)#5027
Flaurite merged 36 commits intomasterfrom
feature/3901-drawer-component

Conversation

@Flaurite
Copy link
Copy Markdown
Contributor

No description provided.

@Flaurite Flaurite changed the title SidePanelLayout component (3901) Introduce SidePanelLayout and SideDialog (3901) Feb 12, 2026
@Flaurite Flaurite marked this pull request as ready for review February 12, 2026 12:38
@Flaurite Flaurite requested a review from glebfox February 12, 2026 12:38
@Flaurite Flaurite self-assigned this Feb 12, 2026
@Flaurite Flaurite linked an issue Feb 12, 2026 that may be closed by this pull request

@Tag("jmix-side-panel-layout-closer")
@JsModule("./src/side-panel-layout/jmix-side-panel-layout-closer.js")
public class JmixSidePanelLayoutCloser extends Button {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not extent the Button component, since we don't use all its API. Component is enough.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


@Override
protected void onClick(ClickEvent<Button> event) {
super.onClick(event);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really don't like that we close side panel from server side. It makes the Web-component serve the purpose of custom html tag.

I'd like that we close side panel on client side same as DrawerToggle component and SidePanelLayout listens to opened state of client side and react accordingly on server side.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

* @param listener listener to add
* @return a registration for removing the listener
*/
public Registration addModalityCurtainClickListener(ComponentEventListener<ModalityCurtainClickEvent> listener) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see no reason to have all event related code to be implemented in the SidePanelLayout instead of the base class, except having SidePanelLayout in the event type which is insignificant

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

public class DialogClosedEvent extends ApplicationEvent {

public DialogClosedEvent(Dialog dialog) {
public DialogClosedEvent(Component dialog) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like you don't need these changes

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

/**
* Represents the placement of the side panel relative to the main content.
*/
public enum SidePanelPlacement {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mb Position?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

/**
* The side panel pushes the content.
*/
PUSH
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wat?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replaced by Boolean property sidePanelOverlay

@Flaurite Flaurite requested a review from glebfox February 18, 2026 13:58
@Flaurite Flaurite merged commit c669d90 into master Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Introduce SidePanelLayout and SideDialog

2 participants