X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms.ux%2Fsrc%2Forg%2Fargeo%2Fcms%2Fux%2Fwidgets%2FAbstractDataPart.java;fp=org.argeo.cms.ux%2Fsrc%2Forg%2Fargeo%2Fcms%2Fux%2Fwidgets%2FAbstractDataPart.java;h=958fcde6a32d1fad4306c51753fbd49b5eb4e226;hb=43dc6cd030cab486347ffef4d339406bee7a8dec;hp=0000000000000000000000000000000000000000;hpb=54dac5debb27cc585200b3117b99f3de0015efef;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java new file mode 100644 index 000000000..958fcde6a --- /dev/null +++ b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java @@ -0,0 +1,61 @@ +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); + } + +}