001    // License: GPL. Copyright 2007 by Immanuel Scholz and others
002    package org.openstreetmap.josm.gui;
003    
004    import javax.swing.Icon;
005    
006    /**
007     * An interface to provide showing/hiding method for buttons,
008     * when hidden state is stored in preferences
009     */
010    interface HideableButton {
011        void applyButtonHiddenPreferences();
012        void setButtonHidden(boolean b);
013        void showButton();
014        void hideButton();
015        String getActionName();
016        Icon getIcon();
017        boolean isButtonVisible();
018        void setShowHideButtonListener(ShowHideButtonListener l);
019    }