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(); } } @Override public void addView(DataView view) { views.put(view, new Object()); } @Override public void removeView(DataView view) { views.remove(view); } }