package org.argeo.cms.ux.widgets;
import java.util.IdentityHashMap;
import java.util.function.Consumer;
public abstract class AbstractDataPart implements DataPart {
private Consumer onSelected;
private Consumer onAction;
private IdentityHashMap, Object> views = new IdentityHashMap<>();
private INPUT data;
@Override
public void setInput(INPUT data) {
this.data = data;
refresh();
}
@Override
public INPUT getInput() {
return data;
}
@Override
public void onSelected(Consumer onSelected) {
this.onSelected = onSelected;
}
@Override
public void onAction(Consumer onAction) {
this.onAction = onAction;
}
public Consumer getOnSelected() {
return onSelected;
}
public Consumer getOnAction() {
return onAction;
}
@Override
public void refresh() {
for (DataView view : views.keySet()) {
view.refresh();
}
}
protected void notifyItemCountChange() {
for (DataView view : views.keySet()) {
view.notifyItemCountChange();
}
}
@Override
public void addView(DataView view) {
views.put(view, new Object());
}
@Override
public void removeView(DataView view) {
views.remove(view);
}
}