use of com.github.weisj.darklaf.listener.MouseClickListener in project darklaf by weisJ.
the class AttachedPopupComponent method attackToComponent.
public static <T extends JComponent> void attackToComponent(final JComponent component, final Supplier<T> componentSupplier, final Consumer<T> onClose, final Consumer<T> onAbort) {
AtomicBoolean isShowing = new AtomicBoolean(false);
Runnable listener = () -> {
if (!component.isEnabled() || isShowing.get())
return;
T content = componentSupplier.get();
if (content == null)
return;
isShowing.set(true);
showComponent(component, content, () -> onClose.accept(content), () -> onAbort.accept(content), () -> isShowing.set(false));
};
if (component instanceof AbstractButton) {
((AbstractButton) component).addActionListener(e -> {
listener.run();
});
} else {
component.addMouseListener((MouseClickListener) e -> {
if (e.isConsumed())
return;
listener.run();
});
}
}
Aggregations