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

io.github.dheid.fontchooser.panes.SearchListener Maven / Gradle / Ivy

package io.github.dheid.fontchooser.panes;

import javax.swing.JTextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Collection;
import java.util.Locale;
import java.util.Optional;
import java.util.TreeSet;

public class SearchListener extends KeyAdapter {

    private final Collection fontFamilyNames = new TreeSet<>();

    private final FamilyPane familyPane;

    public SearchListener(FamilyPane familyPane) {
        this.familyPane = familyPane;
    }

    @Override
    public void keyTyped(KeyEvent e) {
        JTextField searchField = (JTextField) e.getSource();
        String searchString = searchField.getText().toLowerCase(Locale.ENGLISH);
        Optional first = fontFamilyNames.stream()
            .filter(family -> family.toLowerCase(Locale.ENGLISH).contains(searchString))
            .findFirst();
        first.ifPresent(familyPane::setSelectedFamily);
    }

    public void addFamilyName(String name) {
        fontFamilyNames.add(name);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy