package com.tomclaw.mandarin.util;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
* Created with IntelliJ IDEA.
* User: Solkin
* Date: 04.09.13
* Time: 0:47
*/
public class SelectionHelper<K> {
private Set<K> selection;
private boolean isSelectionMode;
public SelectionHelper() {
selection = new HashSet<>();
isSelectionMode = false;
}
public void onStateChanged(K id, boolean checked) {
if (checked) {
setChecked(id);
} else {
setUnchecked(id);
}
}
public void toggleChecked(K id) {
if (isChecked(id)) {
setUnchecked(id);
} else {
setChecked(id);
}
}
public void setChecked(K id) {
selection.add(id);
}
public boolean isChecked(K id) {
return selection.contains(id);
}
public void setUnchecked(K id) {
selection.remove(id);
}
public Collection<K> getSelectedIds() {
return Collections.unmodifiableSet(selection);
}
public boolean isEmptySelection() {
return selection.isEmpty();
}
public int getSelectedCount() {
return selection.size();
}
public void clearSelection() {
selection.clear();
}
public boolean isSelectionMode() {
return isSelectionMode;
}
public boolean setSelectionMode(boolean isSelectionMode) {
if (this.isSelectionMode != isSelectionMode) {
this.isSelectionMode = isSelectionMode;
clearSelection();
return true;
}
return false;
}
}