Skip to content

Commit

Permalink
fix #904 Dialog.addCollapseListener(CollapseHandler) should be called…
Browse files Browse the repository at this point in the history
… addCollapseHandler(CollapseHandler)
  • Loading branch information
vegegoku committed Jan 15, 2024
1 parent d98959b commit 9dd9fdc
Show file tree
Hide file tree
Showing 10 changed files with 351 additions and 111 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ private void doOpen() {
getConfig().getZindexManager().onPopupOpen(this);
element.removeCss(dui_hidden);
updateFocus();
triggerExpandListeners((T) this);
triggerOpenListeners((T) this);
this.open = true;
}

Expand Down Expand Up @@ -391,7 +391,7 @@ private void doClose() {
}
this.open = false;
getConfig().getZindexManager().onPopupClose(this);
triggerCollapseListeners((T) this);
triggerCloseListeners((T) this);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public AlertMessageDialog() {
setStretchHeight(DialogSize.VERY_SMALL);
setAutoClose(false);
contentHeader.get().addCss(dui_justify_around);
addExpandListener(
addOpenListener(
(component) -> {
if (alertIcon.isInitialized()) {
Animation.create(getAlertIcon())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@ public Window(String title) {
}
};

addExpandListener(component -> addMoveListeners());
addCollapseListener(component -> removeMoveListeners());
addOpenListener(component -> addMoveListeners());
addCloseListener(component -> removeMoveListeners());
updatePosition();

onResize((element1, observer, entries) -> updatePosition());
Expand Down Expand Up @@ -371,7 +371,7 @@ public Window setWindowTop(double windowTop) {
}

private void initPosition() {
addExpandListener(component -> updatePosition());
addOpenListener(component -> updatePosition());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public AbstractSelect() {
.ifPresent(
meta ->
onOptionDeselected(meta.getOption(), isChangeListenersPaused())))
.addCollapseListener((menu) -> focus());
.addOpenListener((menu) -> focus());

onAttached(
mutationRecord -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ public AbstractSuggestBox(SuggestionsStore<T, E, O> store) {
.setAutoOpen(false)
.setFitToTargetWidth(true)
.setDropDirection(DropDirection.BEST_MIDDLE_UP_DOWN)
.addCollapseListener(component -> focus())
.addCloseListener(component -> focus())
.addSelectionListener(
(source, selection) -> {
source
Expand Down
32 changes: 2 additions & 30 deletions domino-ui/src/main/java/org/dominokit/domino/ui/menu/Menu.java
Original file line number Diff line number Diff line change
Expand Up @@ -1359,7 +1359,7 @@ private void doOpen(boolean focus) {
if (isSearchable()) {
searchBox.get().clearSearch();
}
triggerExpandListeners(this);
triggerOpenListeners(this);
onAttached(
mutationRecord -> {
position();
Expand Down Expand Up @@ -1572,7 +1572,7 @@ public Menu<V> close() {
searchBox.get().clearSearch();
}
menuItems.forEach(AbstractMenuItem::onParentClosed);
triggerCollapseListeners(this);
triggerCloseListeners(this);
if (smallScreen && nonNull(parent) && parent.isDropDown()) {
parent.expand();
}
Expand Down Expand Up @@ -1919,34 +1919,6 @@ public Menu<V> setPreserveSelectionStyles(boolean preserveSelectionStyles) {
return this;
}

/** Represents a handler called when the menu is closed. */
@FunctionalInterface
public interface CloseHandler {

/** Method to be executed when the menu is closed. */
void onClose();
}

/** Represents a handler called when the menu is opened. */
@FunctionalInterface
public interface OpenHandler {

/** Method to be executed when the menu is opened. */
void onOpen();
}

/** Handles changes in the selection status of a menu item. */
public interface MenuItemSelectionHandler<V> {

/**
* Called when a menu item's selection status changes.
*
* @param menuItem The menu item whose selection status changed.
* @param selected {@code true} if the item is now selected, {@code false} otherwise.
*/
void onItemSelectionChange(AbstractMenuItem<V> menuItem, boolean selected);
}

/** Represents a handler for a group of menu items. */
@FunctionalInterface
public interface MenuItemsGroupHandler<V, I extends AbstractMenuItem<V>> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ public T expand() {
}
doOpen();
getConfig().getZindexManager().onPopupOpen(this);
triggerExpandListeners((T) this);
triggerOpenListeners((T) this);
}
return (T) this;
}
Expand Down Expand Up @@ -237,7 +237,7 @@ protected void doClose() {
element().remove();
body().removeEventListener(EventType.keydown.getName(), closeListener);
getConfig().getZindexManager().onPopupClose(this);
triggerCollapseListeners((T) this);
triggerCloseListeners((T) this);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,13 @@ public abstract class BaseDominoElement<E extends Element, T extends IsElement<E
private LazyInitializer keyEventsInitializer;

/** Flag to pause collapse listeners. */
private boolean collapseListenersPaused = false;
private boolean closeListenersPaused = false;

/** Set of collapse listeners for this DOM element. */
protected Set<CollapseListener<? super T>> collapseListeners = new LinkedHashSet<>();
protected Set<CloseListener<? super T>> closeListeners = new LinkedHashSet<>();

/** Set of expand listeners for this DOM element. */
protected Set<ExpandListener<? super T>> expandListeners = new LinkedHashSet<>();
protected Set<OpenListener<? super T>> openListeners = new LinkedHashSet<>();

private LambdaFunction dominoUuidInitializer;

Expand Down Expand Up @@ -440,88 +440,88 @@ public T setCollapseStrategy(CollapseStrategy strategy) {
* @return The modified DOM element.
*/
@Override
public T pauseCollapseListeners() {
this.collapseListenersPaused = true;
public T pauseCloseListeners() {
this.closeListenersPaused = true;
return (T) this;
}

/**
* Resumes the collapse listeners for this element.
* Resumes the close listeners for this element.
*
* @return The modified DOM element.
*/
@Override
public T resumeCollapseListeners() {
this.collapseListenersPaused = false;
public T resumeCloseListeners() {
this.closeListenersPaused = false;
return (T) this;
}

/**
* Toggles whether the collapse listeners for this element are paused.
* Toggles whether the close listeners for this element are paused.
*
* @param toggle {@code true} to pause, {@code false} to resume.
* @return The modified DOM element.
*/
@Override
public T togglePauseCollapseListeners(boolean toggle) {
this.collapseListenersPaused = toggle;
public T togglePauseCloseListeners(boolean toggle) {
this.closeListenersPaused = toggle;
return (T) this;
}

/**
* Retrieves the set of {@link CollapseListener}s registered for this element.
* Retrieves the set of {@link CloseListener}s registered for this element.
*
* @return A set of {@link CollapseListener} instances.
* @return A set of {@link CloseListener} instances.
*/
@Override
public Set<CollapseListener<? super T>> getCollapseListeners() {
return collapseListeners;
public Set<CloseListener<? super T>> getCloseListeners() {
return closeListeners;
}

/**
* Retrieves the set of {@link ExpandListener}s registered for this element.
* Retrieves the set of {@link OpenListener}s registered for this element.
*
* @return A set of {@link ExpandListener} instances.
* @return A set of {@link OpenListener} instances.
*/
@Override
public Set<ExpandListener<? super T>> getExpandListeners() {
return expandListeners;
public Set<OpenListener<? super T>> getOpenListeners() {
return openListeners;
}

/**
* Checks if the collapse listeners are currently paused.
* Checks if the close listeners are currently paused.
*
* @return {@code true} if collapse listeners are paused, {@code false} otherwise.
* @return {@code true} if close listeners are paused, {@code false} otherwise.
*/
@Override
public boolean isCollapseListenersPaused() {
return this.collapseListenersPaused;
public boolean isCloseListenersPaused() {
return this.closeListenersPaused;
}

/**
* Triggers collapse listeners for this element.
* Triggers close listeners for this element.
*
* @param component The component that triggered the event.
* @return The modified DOM element.
*/
@Override
public T triggerCollapseListeners(T component) {
if (!this.collapseListenersPaused) {
getCollapseListeners().forEach(collapseListener -> collapseListener.onCollapsed((T) this));
public T triggerCloseListeners(T component) {
if (!this.closeListenersPaused) {
getCloseListeners().forEach(closeListener -> closeListener.onClosed((T) this));
}
return (T) this;
}

/**
* Triggers expand listeners for this element.
* Triggers open listeners for this element.
*
* @param component The component that triggered the event.
* @return The modified DOM element.
*/
@Override
public T triggerExpandListeners(T component) {
if (!this.collapseListenersPaused) {
getExpandListeners().forEach(expandListener -> expandListener.onExpanded((T) this));
public T triggerOpenListeners(T component) {
if (!this.closeListenersPaused) {
getOpenListeners().forEach(openListener -> openListener.onOpened((T) this));
}
return (T) this;
}
Expand Down
Loading

0 comments on commit 9dd9fdc

Please sign in to comment.