001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.util; 003 004import javax.swing.event.DocumentEvent; 005import javax.swing.event.DocumentListener; 006 007/** 008 * A functional DocumentListener which sends all events to {@link #update(DocumentEvent)}. 009 */ 010@FunctionalInterface 011public interface DocumentAdapter extends DocumentListener { 012 013 /** 014 * Gives notification that there was an event. 015 * 016 * @param e the document event 017 */ 018 void update(DocumentEvent e); 019 020 @Override 021 default void insertUpdate(DocumentEvent e) { 022 update(e); 023 } 024 025 @Override 026 default void removeUpdate(DocumentEvent e) { 027 update(e); 028 } 029 030 @Override 031 default void changedUpdate(DocumentEvent e) { 032 update(e); 033 } 034 035 /** 036 * Utility function to create an adapter from a lambda expression 037 * @param adapter the adapter 038 * @return {@code adapter} 039 */ 040 static DocumentAdapter create(DocumentAdapter adapter) { 041 return adapter; 042 } 043}