All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jdplus.toolkit.desktop.plugin.completion.AutoCompletionManager Maven / Gradle / Ivy

package jdplus.toolkit.desktop.plugin.completion;

import jdplus.main.desktop.design.GlobalService;
import jdplus.toolkit.desktop.plugin.util.CollectionSupplier;
import jdplus.toolkit.desktop.plugin.util.LazyGlobalService;
import ec.util.completion.swing.JAutoCompletion;
import org.checkerframework.checker.nullness.qual.NonNull;

import javax.swing.text.JTextComponent;

/**
 *
 */
@GlobalService
public final class AutoCompletionManager {

    @NonNull
    public static AutoCompletionManager get() {
        return LazyGlobalService.get(AutoCompletionManager.class, AutoCompletionManager::new);
    }

    private AutoCompletionManager() {
    }

    private final CollectionSupplier providers = AutoCompletionSpiLoader::get;

    @NonNull
    public JAutoCompletion bind(@NonNull Class path, @NonNull JTextComponent textComponent) {
        return bind(path.getName(), textComponent);
    }

    @NonNull
    public JAutoCompletion bind(@NonNull String path, @NonNull JTextComponent textComponent) {
        return providers
                .stream()
                .filter(spi -> spi.getPath().equals(path))
                .findFirst()
                .map(spi -> spi.bind(textComponent))
                .orElseGet(() -> new JAutoCompletion(textComponent));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy