Search in sources :

Example 1 with MouseClickListener

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();
        });
    }
}
Also used : LafManager(com.github.weisj.darklaf.LafManager) Alignment(com.github.weisj.darklaf.util.Alignment) ToolTipContext(com.github.weisj.darklaf.components.tooltip.ToolTipContext) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicReference(java.util.concurrent.atomic.AtomicReference) Supplier(java.util.function.Supplier) java.awt(java.awt) Consumer(java.util.function.Consumer) Actions(com.github.weisj.darklaf.util.Actions) ChooserComponent(com.github.weisj.darklaf.components.chooser.ChooserComponent) java.awt.event(java.awt.event) BiConsumer(java.util.function.BiConsumer) DarkPopupFactory(com.github.weisj.darklaf.ui.DarkPopupFactory) ToolTipConstants(com.github.weisj.darklaf.ui.tooltip.ToolTipConstants) MouseClickListener(com.github.weisj.darklaf.listener.MouseClickListener) PropertyUtil(com.github.weisj.darklaf.util.PropertyUtil) DarkUIUtil(com.github.weisj.darklaf.ui.util.DarkUIUtil) javax.swing(javax.swing) DarkToolTipUI(com.github.weisj.darklaf.ui.tooltip.DarkToolTipUI) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean)

Aggregations

LafManager (com.github.weisj.darklaf.LafManager)1 ChooserComponent (com.github.weisj.darklaf.components.chooser.ChooserComponent)1 ToolTipContext (com.github.weisj.darklaf.components.tooltip.ToolTipContext)1 MouseClickListener (com.github.weisj.darklaf.listener.MouseClickListener)1 DarkPopupFactory (com.github.weisj.darklaf.ui.DarkPopupFactory)1 DarkToolTipUI (com.github.weisj.darklaf.ui.tooltip.DarkToolTipUI)1 ToolTipConstants (com.github.weisj.darklaf.ui.tooltip.ToolTipConstants)1 DarkUIUtil (com.github.weisj.darklaf.ui.util.DarkUIUtil)1 Actions (com.github.weisj.darklaf.util.Actions)1 Alignment (com.github.weisj.darklaf.util.Alignment)1 PropertyUtil (com.github.weisj.darklaf.util.PropertyUtil)1 java.awt (java.awt)1 java.awt.event (java.awt.event)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 BiConsumer (java.util.function.BiConsumer)1 Consumer (java.util.function.Consumer)1 Supplier (java.util.function.Supplier)1 javax.swing (javax.swing)1