001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.widgets; 003 004import java.awt.Component; 005import java.awt.event.FocusAdapter; 006import java.awt.event.FocusEvent; 007 008import javax.swing.text.JTextComponent; 009 010/** 011 * A helper class that selects all text as soon as a {@link JTextComponent} receives focus. 012 */ 013public class SelectAllOnFocusGainedDecorator extends FocusAdapter { 014 015 /** 016 * Add the listener to a given text component. 017 * @param tc The text component. 018 */ 019 public static void decorate(JTextComponent tc) { 020 if (tc == null) return; 021 tc.addFocusListener(new SelectAllOnFocusGainedDecorator()); 022 } 023 024 @Override 025 public void focusGained(FocusEvent e) { 026 Component c = e.getComponent(); 027 if (c instanceof JTextComponent) { 028 JTextComponent tc = (JTextComponent) c; 029 tc.selectAll(); 030 } 031 } 032}