* @cfg {string} name Specifies name attribute
* @cfg {string} tooltip Text for the tooltip
* @cfg {string} container_method method to fetch parents container element (used by NavHeaderbar - getHeaderChildContainer)
- *
+ * @cfg {string|object} visibilityEl (el|parent) What element to use for visibility (@see getVisibilityEl())
+
* @constructor
* Do not use directly - it does not do anything..
* @param {Object} config The config object
var has_flexy = (typeof(tree['flexy:if']) != 'undefined') ||
(typeof(tree['flexy:foreach']) != 'undefined');
- if(this[cntr](true) === false){
- tree.items = [];
- return cn;
- }
+
- skip_children = false;
+ skip_children = false;
// render the element if it's not BODY.
if (!is_body) {
+
+ // if parent was disabled, then do not try and create the children..
+ if(!this[cntr](true)){
+ tree.items = [];
+ return tree;
+ }
cn = Roo.factory(tree);
//Roo.log('render');
//Roo.log(this[cntr]());
// some elements do not have render methods.. like the layouts...
-
+ /*
if(this[cntr](true) === false){
cn.items = [];
return cn;
}
-
+ */
cn.render && cn.render(this[cntr](true));
}
return cn;
},
+
+ /**
+ * Set the element that will be used to show or hide
+ */
+ setVisibilityEl : function(el)
+ {
+ this.visibilityEl = el;
+ },
+
+ /**
+ * Get the element that will be used to show or hide
+ */
+ getVisibilityEl : function()
+ {
+ if (typeof(this.visibilityEl) == 'object') {
+ return this.visibilityEl;
+ }
+
+ if (typeof(this.visibilityEl) == 'string') {
+ return this.visibilityEl == 'parent' ? this.parent().getEl() : this.getEl();
+ }
+
+ return this.getEl();
+ },
+
/**
* Show a component - removes 'hidden' class
*/
show : function()
{
- if (this.el) {
- this.el.removeClass('hidden');
+ if(!this.getVisibilityEl()){
+ return;
}
+
+ this.getVisibilityEl().removeClass(['hidden','d-none']);
+
+ this.fireEvent('show', this);
+
+
},
/**
* Hide a component - adds 'hidden' class
*/
hide: function()
{
- if (this.el && !this.el.hasClass('hidden')) {
- this.el.addClass('hidden');
+ if(!this.getVisibilityEl()){
+ return;
}
+
+ this.getVisibilityEl().addClass(['hidden','d-none']);
+
+ this.fireEvent('hide', this);
+
}
});