package org.codemap.mapview.action;
import static org.codemap.util.CodemapIcons.FORCE_SELECTION;
import org.codemap.mapview.MapController;
import org.codemap.mapview.MapSelectionProvider;
import org.codemap.util.CodemapIcons;
import org.codemap.util.Tag;
import org.eclipse.jface.action.Action;
import org.eclipse.ui.IMemento;
public class ForceSelectionAction extends Action {
public static final boolean DEFAULT_CHECKED = true;
private MapSelectionProvider selectionProvider;
public ForceSelectionAction(MapController theController, IMemento memento) {
super("Force Package Explorer Selection", AS_CHECK_BOX);
selectionProvider = theController.getSelectionProvider();
setChecked(DEFAULT_CHECKED);
setImageDescriptor(CodemapIcons.descriptor(FORCE_SELECTION));
init(memento);
}
@Override
public void setChecked(boolean checked) {
super.setChecked(checked);
selectionProvider.setForceEnabled(checked);
}
@Override
public void run() {
super.run();
selectionProvider.setForceEnabled(isChecked());
}
public void saveState(IMemento memento) {
memento.putBoolean(Tag.FORCE_SELECTION, isChecked());
}
protected void init(IMemento memento) {
if (memento == null) return;
Boolean checked = memento.getBoolean(Tag.FORCE_SELECTION);
if (checked != null) setChecked(checked);
}
}