You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by mg...@apache.org on 2017/06/03 11:36:44 UTC

[6/7] cayenne-modeler git commit: Updated interface to try and use more generic bind/unbind mechanism.

Updated interface to try and use more generic bind/unbind mechanism.


Project: http://git-wip-us.apache.org/repos/asf/cayenne-modeler/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne-modeler/commit/4861004e
Tree: http://git-wip-us.apache.org/repos/asf/cayenne-modeler/tree/4861004e
Diff: http://git-wip-us.apache.org/repos/asf/cayenne-modeler/diff/4861004e

Branch: refs/heads/master
Commit: 4861004e86f324963e73346da761cd5bdf9b982f
Parents: 74696f3
Author: mrg <bl...@gmail.com>
Authored: Sat Jun 3 07:35:59 2017 -0400
Committer: mrg <bl...@gmail.com>
Committed: Sat Jun 3 07:35:59 2017 -0400

----------------------------------------------------------------------
 .../modeler/layout/DetailEditorSupport.java     | 40 +++++++++++++++++++-
 1 file changed, 38 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne-modeler/blob/4861004e/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java b/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
index 133f57b..5073f86 100644
--- a/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
+++ b/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
@@ -19,11 +19,47 @@
 
 package org.apache.cayenne.modeler.layout;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.cayenne.modeler.adapters.CayennePropertyAdapter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 public interface DetailEditorSupport<T extends CayennePropertyAdapter>
 {
+    static final Log LOGGER = LogFactory.getLog(DetailEditorSupport.class);
+
+    default void showLayout(final T propertyAdapter)
+    {
+        setPropertyAdapter(propertyAdapter);
+        initializeBindings();
+        beginEditing();
+    }
+
+    default void initializeBindings()
+    {
+        // Implementors should override.
+    }
+
+    default List<Binding<?>> getBindings()
+    {
+        return new ArrayList<>();
+    }
+
     void setPropertyAdapter(final T propertyAdapter);
-    void beginEditing();
-    void endEditing();
+
+    default void beginEditing()
+    {
+        LOGGER.debug("begin editing " + this);
+
+        getBindings().stream().forEach(binding -> binding.bind());
+    }
+
+    default void endEditing()
+    {
+        LOGGER.debug("end editing " + this);
+
+        getBindings().stream().forEach(binding -> binding.unbind());
+    }
 }