vitro/webapp/web/src/widget/LayoutContainer.js

71 lines
2.1 KiB
JavaScript
Raw Normal View History

/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
//
// this widget provides Delphi-style panel layout semantics
//
dojo.provide("dojo.widget.LayoutContainer");
dojo.provide("dojo.widget.html.LayoutContainer");
dojo.require("dojo.widget.*");
dojo.require("dojo.html.layout");
dojo.widget.html.LayoutContainer = function(){
dojo.widget.HtmlWidget.call(this);
}
dojo.inherits(dojo.widget.html.LayoutContainer, dojo.widget.HtmlWidget);
dojo.lang.extend(dojo.widget.html.LayoutContainer, {
widgetType: "LayoutContainer",
isContainer: true,
layoutChildPriority: 'top-bottom',
postCreate: function(){
dojo.html.layout(this.domNode, this.children, this.layoutChildPriority);
},
addChild: function(child, overrideContainerNode, pos, ref, insertIndex){
dojo.widget.html.LayoutContainer.superclass.addChild.call(this, child, overrideContainerNode, pos, ref, insertIndex);
dojo.html.layout(this.domNode, this.children, this.layoutChildPriority);
},
removeChild: function(pane){
dojo.widget.html.LayoutContainer.superclass.removeChild.call(this,pane);
dojo.html.layout(this.domNode, this.children, this.layoutChildPriority);
},
onResized: function(){
dojo.html.layout(this.domNode, this.children, this.layoutChildPriority);
},
show: function(){
// If this node was created while display=="none" then it
// hasn't been laid out yet. Do that now.
this.domNode.style.display="";
this.checkSize();
this.domNode.style.display="none";
this.domNode.style.visibility="";
dojo.widget.html.LayoutContainer.superclass.show.call(this);
}
});
// This argument can be specified for the children of a LayoutContainer.
// Since any widget can be specified as a LayoutContainer child, mix it
// into the base widget class. (This is a hack, but it's effective.)
dojo.lang.extend(dojo.widget.Widget, {
layoutAlign: 'none'
});
dojo.widget.tags.addParseTreeHandler("dojo:LayoutContainer");