Reference the real IView as a property
authorCharles du Jeu <charles.dujeu@gmail.com>
Mon, 8 Dec 2008 19:09:30 +0000 (19:09 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Mon, 8 Dec 2008 19:09:30 +0000 (19:09 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1962 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/ria/components/ViewPane.js

index b56b5b1f63771e2aa140f1f55b6c0cf3055f404e..e04970c4388420c54df81b805e1dcc7c55a6950b 100644 (file)
@@ -53,7 +53,16 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
         * Map of commands definition
         * @see org.argeo.ria.event.Command 
         */
-       commands : {init : null, nullable:true, check:"Map"}
+       commands : {init : null, nullable:true, check:"Map"},
+       /**
+        * The real business content. 
+        */
+       content : {
+               init: null,
+               nullable : true,
+               check : "org.argeo.ria.components.IView",
+               apply : "_applyContent"
+       }
   },
   
   /*
@@ -122,18 +131,19 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
         * Sets the content of this pane.
         * @param content {org.argeo.ria.components.IView} An IView implementation
         */
-       setContent : function(content){
+       _applyContent : function(content){
+               if(content == null) return;
                var addScrollable = (content.addScroll?content.addScroll():false);
                if(addScrollable){
                        this.setOwnScrollable(true);
                        this.scrollable = new qx.ui.container.Scroll(content);
                        this.add(this.scrollable, {flex: 1});
                }else{
-                       this.content = content;
-                       this.add(this.content, {flex:1});
+                       this.guiContent = content;
+                       this.add(this.guiContent, {flex:1});
                }
        },
-       
+               
        addHeaderComponent : function(component){
                this.header.setPadding(4);
                this.header.add(component, {edge:"center"});
@@ -159,14 +169,15 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
        empty: function(){
                if(this.getOwnScrollable() && this.scrollable){
                        this.remove(this.scrollable);
-               }else if(this.content){
-                       this.remove(this.content);
+               }else if(this.guiContent){
+                       this.remove(this.guiContent);
                }
                if(this.getCommands()){
                        org.argeo.ria.event.CommandsManager.getInstance().removeCommands(this.getCommands());
                        this.setCommands(null);
                }
                this.setViewTitle(this._defaultViewTitle);
+               this.setContent(null);
        }
 
   }