import org.argeo.slc.detached.DetachedContext;
import org.argeo.slc.detached.DetachedRequest;
-public interface UiPart {
- public void init(DetachedContext context, DetachedRequest request);
+public abstract class UiPart {
+ private boolean initialized = false;
+
+ public synchronized final void init(DetachedContext context,
+ DetachedRequest request) {
+ initUi(context, request);
+ initialized = true;
+ }
+
+ public synchronized final void reset(DetachedContext context,
+ DetachedRequest request) {
+ resetUi(context, request);
+ initialized = false;
+ }
+
+ protected abstract void initUi(DetachedContext context,
+ DetachedRequest request);
+
+ protected void resetUi(DetachedContext context, DetachedRequest request) {
+
+ }
+
+ public synchronized boolean isInitialized() {
+ return initialized;
+ }
+
}