package VASSAL.build.module.map;
import java.util.ArrayList;
import java.util.List;
import VASSAL.build.AbstractConfigurable;
import VASSAL.build.Buildable;
import VASSAL.build.module.Map;
import VASSAL.build.module.documentation.HelpFile;
import VASSAL.configure.Configurer;
import VASSAL.counters.ColoredBorder;
import VASSAL.i18n.Resources;
/*
* A Container for Selection Highlighters
*/
public class SelectionHighlighters extends AbstractConfigurable {
protected Map map;
protected List<SelectionHighlighter> highlighters = new ArrayList<SelectionHighlighter>();
public SelectionHighlighters() {
super();
}
public static String getConfigureTypeName() {
return Resources.getString("Editor.AddedSelectionHighlights.component_type"); //$NON-NLS-1$
}
public String[] getAttributeDescriptions() {
return new String[0];
}
public Class<?>[] getAttributeTypes() {
return new Class<?>[0];
}
public String[] getAttributeNames() {
return new String[0];
}
public void setAttribute(String key, Object value) {
}
public String getAttributeValueString(String key) {
return null;
}
public HelpFile getHelpFile() {
return null;
}
public Class<?>[] getAllowableConfigureComponents() {
return new Class<?>[]{SelectionHighlighter.class};
}
public void addTo(Buildable parent) {
map = (Map) parent;
for (SelectionHighlighter highlighter : highlighters) {
addToMap(highlighter);
}
}
public void removeFrom(Buildable parent) {
for (SelectionHighlighter highlighter : highlighters) {
removeFromMap(highlighter);
}
}
public void removeHighlighter(SelectionHighlighter highlighter) {
highlighters.remove(highlighter);
removeFromMap(highlighter);
}
public void addHighlighter(SelectionHighlighter highlighter) {
highlighters.add(highlighter);
addToMap(highlighter);
}
protected void addToMap(SelectionHighlighter highlighter) {
if (map != null) {
if (map.getHighlighter() instanceof ColoredBorder) {
((ColoredBorder) map.getHighlighter()).addHighlighter(highlighter);
}
}
}
protected void removeFromMap(SelectionHighlighter highlighter) {
if (map != null) {
if (map.getHighlighter() instanceof ColoredBorder) {
((ColoredBorder) map.getHighlighter()).removeHighlighter(highlighter);
}
}
}
public Configurer getConfigurer() {
return null;
}
}