package org.codemap.commands;
import org.codemap.CodemapCore;
import org.codemap.MapPerProject;
import org.codemap.mapview.action.CommandAction;
import org.codemap.mapview.action.ShowSelectionAction;
import org.codemap.resources.MapValues;
public class SelectionCommand extends CheckedCommand {
private static final String SELECTION_KEY = makeCommandId("selection");
public SelectionCommand(MapPerProject mapPerProject) {
super(mapPerProject);
}
@Override
protected void applyState() {
if (isEnabled()) showSelection();
else hideSelection();
super.applyState();
}
private void hideSelection() {
getMyMap().getCurrentSelectionOverlay().setEnabled(false);
triggerChange();
}
private void showSelection() {
getMyMap().getCurrentSelectionOverlay().setEnabled(true);
triggerChange();
}
private void triggerChange() {
// FIXME ouch, and again ...
CodemapCore.getPlugin().getCurrentSelection().triggerChange();
}
@Override
protected String getKey() {
return SELECTION_KEY;
}
@Override
protected Class<? extends CommandAction> getActionID() {
return ShowSelectionAction.class;
}
@Override
public void configure(MapValues mapValues) {
applyState();
}
}