]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/ria/components/ViewPane.js
Cosmetics (set label Rich)
[gpl/argeo-slc.git] / org.argeo.slc.webapp / src / main / webapp / argeo-ria-src / class / org / argeo / ria / components / ViewPane.js
index e04970c4388420c54df81b805e1dcc7c55a6950b..1baf6af9d24352f3280e2dd49cd261cd1bef3fee 100644 (file)
@@ -19,14 +19,21 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
        this.setViewId(viewId);
        this._defaultViewTitle = viewTitle;
        this.setViewTitle(viewTitle);
-       var viewSelection = new org.argeo.ria.components.ViewSelection(viewId);
-       this.setViewSelection(viewSelection);
        if(splitPaneData){
                this.setSplitPaneData(splitPaneData);
        }
+       this.setFocusable(true);
+       this.addListener("click", function(e){
+               this.fireDataEvent("changeFocus", this);
+       }, this);
        this.createGui();
   },
 
+  events : {
+       "changeFocus" : "qx.event.type.Data",
+       "changeSelection" : "qx.event.type.Event"
+  },
+  
   properties : 
   {
        /**
@@ -37,10 +44,6 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
         * Human-readable title for this view
         */
        viewTitle : {init:"", event:"changeViewTitle"},
-       /**
-        * Selection model for this view
-        */
-       viewSelection : { nullable:false, check:"org.argeo.ria.components.ViewSelection" },
        /**
         * Has its own scrollable content 
         */
@@ -127,11 +130,25 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
                */
        },
        
+       getViewSelection : function(){
+               if(this.getContent()){
+                       return this.getContent().getViewSelection();
+               }
+               return null;
+       },
+       
+       contentExists : function(iViewId){
+               if(this.getContent()){
+                       this.empty();
+               }
+               return false;
+       },
+       
        /**
         * Sets the content of this pane.
         * @param content {org.argeo.ria.components.IView} An IView implementation
         */
-       _applyContent : function(content){
+       _applyContent : function(content){              
                if(content == null) return;
                var addScrollable = (content.addScroll?content.addScroll():false);
                if(addScrollable){
@@ -142,11 +159,20 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
                        this.guiContent = content;
                        this.add(this.guiContent, {flex:1});
                }
+               content.getViewSelection().addListener("changeSelection", function(e){
+                       this.fireEvent("changeSelection");
+               }, this);
        },
-               
+       /**
+        * Adds a graphical component too the header of the view pane.
+        * It is added as "center" in the dock layout, and will override the view pane title label.
+        * For example, you can add your own title, or add a switch, or buttons, etc.
+        * @param component {qx.ui.core.Widget} The graphical component to add.
+        */
        addHeaderComponent : function(component){
                this.header.setPadding(4);
-               this.header.add(component, {edge:"center"});
+               this.header.add(component, {edge:"center"});            
+               component.setTextColor("#1a1a1a");
                this.loadImage.setMargin(4);
        },
        
@@ -176,8 +202,22 @@ qx.Class.define("org.argeo.ria.components.ViewPane",
                        org.argeo.ria.event.CommandsManager.getInstance().removeCommands(this.getCommands());
                        this.setCommands(null);
                }
+               if(this.getContent()){                  
+                       this.getContent().close();
+               }
                this.setViewTitle(this._defaultViewTitle);
                this.setContent(null);
+       },
+       
+       focus : function(){
+               if(this.hasFocus) return;
+               this.setDecorator(new qx.ui.decoration.Single(1,"solid","#065fb2"));
+               this.fireEvent("changeSelection");
+               this.hasFocus = true;
+       }, 
+       blur : function(){
+               this.hasFocus = false;
+               this.setDecorator(new qx.ui.decoration.Single(1,"solid","#000"));
        }
 
   }