package org.limewire.ui.swing.util;
import org.limewire.listener.EventListener;
/**
* Defines a component with that can be made visible or invisible, and enabled
* or disabled for use.
*/
public interface VisibleComponent {
/**
* Adds the specified listener to the list that is notified when the
* action enabled state changes.
*/
void addEnabledListener(EventListener<EnabledType> listener);
/**
* Removes the specified listener from the list that is notified when the
* action enabled state changes.
*/
void removeEnabledListener(EventListener<EnabledType> listener);
/**
* Returns true if the component is enabled for use.
*/
boolean isActionEnabled();
/**
* Sets the visibility of this component.
*/
void setVisibility(boolean visible);
/**
* Toggles the visibility of this component.
*/
void toggleVisibility();
/**
* Adds a listener to this items visibility.
*/
void addVisibilityListener(EventListener<VisibilityType> listener);
/**
* Removes a listener from this items visibility.
*/
void removeVisibilityListener(EventListener<VisibilityType> listener);
/**
* Returns true if this component is currently visible.
*/
boolean isVisible();
}