/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package Sirius.navigator.ui.tree.postfilter;
import Sirius.navigator.resource.ResourceManager;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import javax.swing.Icon;
import javax.swing.JPanel;
/**
* DOCUMENT ME!
*
* @author thorsten
* @version $Revision$, $Date$
*/
public abstract class AbstractPostFilterGUI extends javax.swing.JPanel implements PostFilterGUI {
//~ Instance fields --------------------------------------------------------
@Getter @Setter protected boolean selected = false;
final ResourceManager resources = ResourceManager.getManager();
final Icon defaultIcon = resources.getIcon("funnel.png");
private final ArrayList<PostFilterListener> pfListeners = new ArrayList<PostFilterListener>();
//~ Methods ----------------------------------------------------------------
@Override
public void addPostFilterListener(final PostFilterListener pfl) {
if (!pfListeners.contains(pfl)) {
pfListeners.add(pfl);
}
}
@Override
public void removePostFilterListener(final PostFilterListener pfl) {
pfListeners.remove(pfl);
}
@Override
public void firePostFilterChanged() {
final ArrayList<PostFilterListener> pfListenersCopy = new ArrayList<PostFilterListener>(pfListeners);
for (final PostFilterListener pfl : pfListenersCopy) {
pfl.filterContentChanged(getFilter());
}
}
@Override
public JPanel getGUI() {
return this;
}
@Override
public Icon getIcon() {
return defaultIcon;
}
}