Author: simoneg
Date: Wed Jun 27 16:36:48 2012
New Revision: 1354620

URL: http://svn.apache.org/viewvc?rev=1354620&view=rev
Log:
Added expandedLayers, to expand beans only on certain layers

Modified:
    
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/MagView.java
    
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/ViewSettings.java
    
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/tree/ViewUtils.java
    
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/CreatingTreeTest.java
    
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/Nested2.java

Modified: 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/MagView.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/MagView.java?rev=1354620&r1=1354619&r2=1354620&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/MagView.java
 (original)
+++ 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/MagView.java
 Wed Jun 27 16:36:48 2012
@@ -37,5 +37,6 @@ public @interface MagView {
        public String[] layers() default {};
        public boolean defaultLayer() default true;
        public boolean expanded() default false;
+       public String[] expandedLayers() default {};
        
 }

Modified: 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/ViewSettings.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/ViewSettings.java?rev=1354620&r1=1354619&r2=1354620&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/ViewSettings.java
 (original)
+++ 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/ViewSettings.java
 Wed Jun 27 16:36:48 2012
@@ -25,6 +25,7 @@ public class ViewSettings {
        private String[] layers = null;
        private boolean defaultLayer = false;
        private boolean expanded = false;
+       private String[] expandedLayers = null;
        
        private ZoneSetting zone = null;
        private OrdinalSetting ordinal = null;
@@ -98,27 +99,51 @@ public class ViewSettings {
        public void setExpanded(boolean expanded) {
                this.expanded = expanded;
        }
-       
-       public boolean isOnLayer(String layer) {
+
+       private boolean isOnLayer(String[] layers, String layer, boolean 
defLayer) {
                if (layer.equalsIgnoreCase(MagDefaultLayers.ALL)) return true;
-               if (layer.equalsIgnoreCase(MagDefaultLayers.DEFAULT)) return 
defaultLayer;
+               if (layer.equalsIgnoreCase(MagDefaultLayers.DEFAULT)) return 
defLayer;
                if (layers == null) return false;
-               for (String aclayer : this.layers) {
+               for (String aclayer : layers) {
                        if (aclayer.equalsIgnoreCase(layer)) return true;
                }
                return false;
        }
        
-       public boolean isOnAnyLayer(String[] layers) {
+       private boolean isOnAnyLayer(String[] allLayers, String[] layers, 
boolean defLayer) {
                boolean res = false;
                for (String aclayer : layers) {
                        if (aclayer.charAt(0) == '!') {
-                               if (isOnLayer(aclayer.substring(1))) return 
false;
+                               if (isOnLayer(allLayers, aclayer.substring(1), 
defLayer)) return false;
                        } else {
-                               if (isOnLayer(aclayer)) res = true;
+                               if (isOnLayer(allLayers, aclayer, defLayer)) 
res = true;
                        }
                }
                return res;
        }
        
+       
+       public boolean isOnLayer(String layer) {
+               return isOnLayer(this.layers, layer, this.defaultLayer);
+       }
+       
+       public boolean isOnAnyLayer(String[] layers) {
+               return isOnAnyLayer(this.layers, layers, this.defaultLayer);
+       }
+       
+       public String[] getExpandedLayers() {
+               return expandedLayers;
+       }
+       public void setExpandedLayers(String[] expandedLayers) {
+               this.expandedLayers = expandedLayers;
+       }
+       
+       public boolean isOnExpandedLayer(String layer) {
+               return isOnLayer(this.expandedLayers, layer, false);
+       }
+       
+       public boolean isOnAnyExpandedLayer(String[] layers) {
+               return isOnAnyLayer(this.expandedLayers, layers, false);
+       }
+       
 }

Modified: 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/tree/ViewUtils.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/tree/ViewUtils.java?rev=1354620&r1=1354619&r2=1354620&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/tree/ViewUtils.java
 (original)
+++ 
labs/magma/trunk/foundation-beans-view/src/main/java/org/apache/magma/view/tree/ViewUtils.java
 Wed Jun 27 16:36:48 2012
@@ -98,7 +98,7 @@ public class ViewUtils {
                                if (!settings.isOnAnyLayer(layers)) {
                                        Node nnode = new HiddenNode(property);
                                        added = root.addSubnode(nnode);
-                               } else if (settings.isExpanded()) {
+                               } else if (settings.isExpanded() || 
settings.isOnAnyExpandedLayer(layers)) {
                                        Node nnode = new 
ContainerProperty(property, settings);
                                        Node sub = 
createTree(BeanData.getFor(property.getType()), layers, nnode);
                                        sub.setLogicalParent(nnode);

Modified: 
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/CreatingTreeTest.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/CreatingTreeTest.java?rev=1354620&r1=1354619&r2=1354620&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/CreatingTreeTest.java
 (original)
+++ 
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/CreatingTreeTest.java
 Wed Jun 27 16:36:48 2012
@@ -164,4 +164,26 @@ public class CreatingTreeTest {
                MagmaBeanSupport n2b = ViewUtils.findProperBean(n2n, n1, true);
                assertEquals(Nested2.class, n2b.getClass());
        }
+       
+       @Test
+       public void nestingExp() throws Exception {
+               Nested1 n1 = new Nested1();
+               Node n = ViewUtils.createTree(n1.beanData(), new String[] { 
MagDefaultLayers.DEFAULT, "testExp" });
+               
+               Set<Node> nodes = n.getAllNodes();
+               
+               FieldNode last = (FieldNode) 
n.findById("nested2-nested3exp-last");
+               
+               assertNotNull(last);
+               assertEquals(2, last.getLogicalPropertyParents().size());
+               assertEquals("nested2", 
last.getLogicalPropertyParents().get(0).getName());
+               assertEquals(Nested1.class, 
last.getLogicalPropertyParents().get(0).getBeanClass());
+               assertEquals("nested3exp", 
last.getLogicalPropertyParents().get(1).getName());
+               assertEquals(Nested2.class, 
last.getLogicalPropertyParents().get(1).getBeanClass());
+               
+               
+               MagmaBeanSupport n3b = ViewUtils.findProperBean(last, n1, true);
+               assertEquals(Nested3.class, n3b.getClass());
+       }
+       
 }

Modified: 
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/Nested2.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/Nested2.java?rev=1354620&r1=1354619&r2=1354620&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/Nested2.java
 (original)
+++ 
labs/magma/trunk/foundation-beans-view/src/test/java/org/apache/magma/view/tree/Nested2.java
 Wed Jun 27 16:36:48 2012
@@ -8,7 +8,7 @@ public class Nested2 {
        
        private String name;
        private Nested3 nested3;
-
+       private Nested3 nested3exp;
 
        @MagView(order=1)
        public String getName() {
@@ -26,5 +26,12 @@ public class Nested2 {
                this.nested3 = nested3;
        }
        
-
+       @MagView(order=3, expandedLayers={"testExp"})
+       public Nested3 getNested3exp() {
+               return nested3exp;
+       }
+       public void setNested3exp(Nested3 nested3exp) {
+               this.nested3exp = nested3exp;
+       }
+       
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to