/*
* Copyright (c) 2012 Sam Harwell, Tunnel Vision Laboratories LLC
* All rights reserved.
*
* The source code of this document is proprietary work, and is not licensed for
* distribution. For information about licensing, contact Sam Harwell at:
* sam@tunnelvisionlabs.com
*/
package org.antlr.netbeans.editor.navigation;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Icon;
/**
* @author Dafe Simonek
*/
public final class FiltersDescription {
public static FiltersManager createManager (FiltersDescription descr) {
return FiltersManager.create(descr);
}
/** List of <FilterItem> describing filters properties */
private final List<FilterItem> filters;
/** Creates a new instance of FiltersDescription */
public FiltersDescription() {
filters = new ArrayList<>();
}
public void addFilter (String name, String displayName, String tooltip,
boolean isSelected, Icon selectedIcon, Icon unselectedIcon) {
FilterItem newItem = new FilterItem(name, displayName, tooltip,
isSelected, selectedIcon, unselectedIcon);
filters.add(newItem);
}
public int getFilterCount () {
return filters.size();
}
public String getName (int index) {
return filters.get(index).name;
}
public String getDisplayName (int index) {
return filters.get(index).displayName;
}
public String getTooltip (int index) {
return filters.get(index).tooltip;
}
public Icon getSelectedIcon (int index) {
return filters.get(index).selectedIcon;
}
public Icon getUnselectedIcon (int index) {
return filters.get(index).unselectedIcon;
}
public boolean isSelected (int index) {
return filters.get(index).isSelected;
}
static class FilterItem {
String name;
String displayName;
String tooltip;
Icon selectedIcon;
Icon unselectedIcon;
boolean isSelected;
FilterItem (String name, String displayName, String tooltip,
boolean isSelected, Icon selectedIcon, Icon unselectedIcon) {
assert selectedIcon != null;
this.name = name;
this.displayName = displayName;
this.tooltip = tooltip;
this.selectedIcon = selectedIcon;
this.unselectedIcon = unselectedIcon;
this.isSelected = isSelected;
}
}
}