Browse Source

Pull request #1529: 无JIRA任务 在组件创建的时候即确定父子关系

Merge in VISUAL/fineui from ~GUY/fineui:master to master

* commit '64ee148a669a885b4796226d704f8081f5c3bcfc':
  Composition API
  在组件创建的时候即确定父子关系
es6
guy 4 years ago
parent
commit
82ba14aa75
  1. 12
      src/base/single/iframe/iframe.js
  2. 10
      src/base/single/img/img.js
  3. 4
      src/base/single/link/link.js
  4. 4
      src/base/tree/ztree/parttree.js
  5. 4
      src/case/layer/layer.multipopup.js
  6. 4
      src/case/layer/layer.panel.js
  7. 7
      src/case/tree/ztree/tree.display.js
  8. 4
      src/core/action/action.show.js
  9. 7
      src/core/controller.js
  10. 16
      src/core/logic/logic.layout.js
  11. 2
      src/core/ob.js
  12. 10
      src/core/shortcut.js
  13. 14
      src/core/widget.js

12
src/base/single/iframe/iframe.js

@ -5,24 +5,24 @@
* Created by GameJian on 2016/3/2. * Created by GameJian on 2016/3/2.
*/ */
BI.Iframe = BI.inherit(BI.Single, { BI.Iframe = BI.inherit(BI.Single, {
_defaultConfig: function () { _defaultConfig: function (config) {
var conf = BI.Iframe.superclass._defaultConfig.apply(this, arguments); var conf = BI.Iframe.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, { return BI.extend(conf, {
tagName: "iframe", tagName: "iframe",
baseCls: (conf.baseCls || "") + " bi-iframe", baseCls: (conf.baseCls || "") + " bi-iframe",
src: "", src: "",
name: "", name: "",
attributes: {}, attributes: {
frameborder: 0,
src: config.src,
name: config.name
},
width: "100%", width: "100%",
height: "100%" height: "100%"
}); });
}, },
_init: function () { _init: function () {
var self = this, o = this.options;
o.attributes.frameborder = "0";
o.attributes.src = o.src;
o.attributes.name = o.name;
BI.Iframe.superclass._init.apply(this, arguments); BI.Iframe.superclass._init.apply(this, arguments);
this.element.on("load", function () { this.element.on("load", function () {
self.fireEvent("EVENT_LOADED"); self.fireEvent("EVENT_LOADED");

10
src/base/single/img/img.js

@ -7,24 +7,18 @@
* @abstract * @abstract
*/ */
BI.Img = BI.inherit(BI.Single, { BI.Img = BI.inherit(BI.Single, {
_defaultConfig: function () { _defaultConfig: function (config) {
var conf = BI.Img.superclass._defaultConfig.apply(this, arguments); var conf = BI.Img.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, { return BI.extend(conf, {
tagName: "img", tagName: "img",
baseCls: (conf.baseCls || "") + " bi-img display-block", baseCls: (conf.baseCls || "") + " bi-img display-block",
src: "", src: "",
attributes: {}, attributes: config.src ? {src: config.src} : {},
width: "100%", width: "100%",
height: "100%" height: "100%"
}); });
}, },
_init: function () {
var o = this.options;
o.attributes.src = o.src;
BI.Img.superclass._init.apply(this, arguments);
},
setSrc: function (src) { setSrc: function (src) {
this.options.src = src; this.options.src = src;
this.element.attr("src", src); this.element.attr("src", src);

4
src/base/single/link/link.js

@ -28,10 +28,6 @@ BI.Link = BI.inherit(BI.Label, {
href: o.href, href: o.href,
target: o.target target: o.target
}; };
},
_init: function () {
BI.Link.superclass._init.apply(this, arguments);
} }
}); });

4
src/base/tree/ztree/parttree.js

@ -9,10 +9,6 @@ BI.PartTree = BI.inherit(BI.AsyncTree, {
return BI.extend(BI.PartTree.superclass._defaultConfig.apply(this, arguments), {}); return BI.extend(BI.PartTree.superclass._defaultConfig.apply(this, arguments), {});
}, },
_init: function () {
BI.PartTree.superclass._init.apply(this, arguments);
},
_loadMore: function () { _loadMore: function () {
var self = this, o = this.options; var self = this, o = this.options;
var op = BI.extend({}, o.paras, { var op = BI.extend({}, o.paras, {

4
src/case/layer/layer.multipopup.js

@ -14,10 +14,6 @@ BI.MultiPopupView = BI.inherit(BI.PopupView, {
}); });
}, },
_init: function () {
BI.MultiPopupView.superclass._init.apply(this, arguments);
},
_createToolBar: function () { _createToolBar: function () {
var o = this.options, self = this; var o = this.options, self = this;
if (o.buttons.length === 0) { if (o.buttons.length === 0) {

4
src/case/layer/layer.panel.js

@ -14,10 +14,6 @@ BI.PopupPanel = BI.inherit(BI.MultiPopupView, {
}); });
}, },
_init: function () {
BI.PopupPanel.superclass._init.apply(this, arguments);
},
_createTool: function () { _createTool: function () {
var self = this, o = this.options; var self = this, o = this.options;
var close = BI.createWidget({ var close = BI.createWidget({

7
src/case/tree/ztree/tree.display.js

@ -10,9 +10,6 @@ BI.DisplayTree = BI.inherit(BI.TreeView, {
extraCls: "bi-display-tree" extraCls: "bi-display-tree"
}); });
}, },
_init: function () {
BI.DisplayTree.superclass._init.apply(this, arguments);
},
// 配置属性 // 配置属性
_configSetting: function () { _configSetting: function () {
@ -62,10 +59,6 @@ BI.DisplayTree = BI.inherit(BI.TreeView, {
initTree: function (nodes, setting) { initTree: function (nodes, setting) {
var setting = setting || this._configSetting(); var setting = setting || this._configSetting();
this.nodes = BI.$.fn.zTree.init(this.tree.element, setting, nodes); this.nodes = BI.$.fn.zTree.init(this.tree.element, setting, nodes);
},
destroy: function () {
BI.DisplayTree.superclass.destroy.apply(this, arguments);
} }
}); });
BI.DisplayTree.EVENT_CHANGE = "EVENT_CHANGE"; BI.DisplayTree.EVENT_CHANGE = "EVENT_CHANGE";

4
src/core/action/action.show.js

@ -9,10 +9,6 @@ BI.ShowAction = BI.inherit(BI.Action, {
return BI.extend(BI.ShowAction.superclass._defaultConfig.apply(this, arguments), {}); return BI.extend(BI.ShowAction.superclass._defaultConfig.apply(this, arguments), {});
}, },
_init: function () {
BI.ShowAction.superclass._init.apply(this, arguments);
},
actionPerformed: function (src, tar, callback) { actionPerformed: function (src, tar, callback) {
tar = tar || this.options.tar; tar = tar || this.options.tar;
tar.setVisible(true); tar.setVisible(true);

7
src/core/controller.js

@ -11,13 +11,6 @@ BI.Controller = BI.inherit(BI.OB, {
return BI.extend(BI.Controller.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.Controller.superclass._defaultConfig.apply(this, arguments), {
}); });
},
_init: function () {
BI.Controller.superclass._init.apply(this, arguments);
},
destroy: function () {
} }
}); });
BI.Controller.EVENT_CHANGE = "__EVENT_CHANGE__"; BI.Controller.EVENT_CHANGE = "__EVENT_CHANGE__";

16
src/core/logic/logic.layout.js

@ -43,10 +43,6 @@ BI.VerticalLayoutLogic = BI.inherit(BI.Logic, {
bgap: o.bgap, bgap: o.bgap,
items: o.items items: o.items
}; };
},
_init: function () {
BI.VerticalLayoutLogic.superclass._init.apply(this, arguments);
} }
}); });
@ -96,10 +92,6 @@ BI.HorizontalLayoutLogic = BI.inherit(BI.Logic, {
bgap: o.bgap, bgap: o.bgap,
items: o.items items: o.items
}; };
},
_init: function () {
BI.HorizontalLayoutLogic.superclass._init.apply(this, arguments);
} }
}); });
@ -148,10 +140,6 @@ BI.TableLayoutLogic = BI.inherit(BI.Logic, {
vgap: o.vgap, vgap: o.vgap,
items: o.items items: o.items
}; };
},
_init: function () {
BI.TableLayoutLogic.superclass._init.apply(this, arguments);
} }
}); });
@ -204,9 +192,5 @@ BI.HorizontalFillLayoutLogic = BI.inherit(BI.Logic, {
bgap: o.bgap, bgap: o.bgap,
items: o.items items: o.items
}; };
},
_init: function () {
BI.HorizontalFillLayoutLogic.superclass._init.apply(this, arguments);
} }
}); });

2
src/core/ob.js

@ -1,5 +1,5 @@
!(function () { !(function () {
function extend() { function extend () {
var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy; var target = arguments[0] || {}, length = arguments.length, i = 1, options, name, src, copy;
for (; i < length; i++) { for (; i < length; i++) {
// Only deal with non-null/undefined values // Only deal with non-null/undefined values

10
src/core/shortcut.js

@ -14,16 +14,18 @@
var createWidget = function (config) { var createWidget = function (config) {
var cls = kv[config.type]; var cls = kv[config.type];
if(!cls){ if (!cls) {
throw new Error("组件"+config.type +"未定义"); throw new Error("组件" + config.type + "未定义");
} }
var widget = new cls(); var widget = new cls();
widget._initProps(config); widget._initProps(config);
widget._init(); widget._initRoot();
widget._initRef(); widget._initRef();
// if (config.element || config.root) {
widget._lazyConstructor();
// }
return widget; return widget;
}; };

14
src/core/widget.js

@ -28,6 +28,14 @@
// 覆盖父类的_constructor方法,widget不走ob的生命周期 // 覆盖父类的_constructor方法,widget不走ob的生命周期
_constructor: function () { _constructor: function () {
// do nothing
},
_lazyConstructor: function () {
if (!this._constructed) {
this._constructed = true;
this._init();
}
}, },
beforeInit: null, beforeInit: null,
@ -54,7 +62,6 @@
_init: function () { _init: function () {
BI.Widget.superclass._init.apply(this, arguments); BI.Widget.superclass._init.apply(this, arguments);
this._initRoot();
this._initElementWidth(); this._initElementWidth();
this._initElementHeight(); this._initElementHeight();
this._initVisual(); this._initVisual();
@ -90,14 +97,15 @@
var o = this.options; var o = this.options;
this.widgetName = o.widgetName || BI.uniqueId("widget"); this.widgetName = o.widgetName || BI.uniqueId("widget");
this._isRoot = o.root; this._isRoot = o.root;
this._children = {};
if (BI.isWidget(o.element)) { if (BI.isWidget(o.element)) {
this.element = this.options.element.element;
if (o.element instanceof BI.Widget) { if (o.element instanceof BI.Widget) {
this._parent = o.element; this._parent = o.element;
this._parent.addWidget(this.widgetName, this); this._parent.addWidget(this.widgetName, this);
} else { } else {
this._isRoot = true; this._isRoot = true;
} }
this.element = this.options.element.element;
} else if (o.element) { } else if (o.element) {
// if (o.root !== true) { // if (o.root !== true) {
// throw new Error("root is a required property"); // throw new Error("root is a required property");
@ -120,7 +128,6 @@
if (o.css) { if (o.css) {
this.element.css(o.css); this.element.css(o.css);
} }
this._children = {};
}, },
_initElementWidth: function () { _initElementWidth: function () {
@ -330,6 +337,7 @@
throw new Error("name has already been existed"); throw new Error("name has already been existed");
} }
widget._setParent && widget._setParent(this); widget._setParent && widget._setParent(this);
widget._lazyConstructor();
widget.on(BI.Events.DESTROY, function () { widget.on(BI.Events.DESTROY, function () {
BI.remove(self._children, this); BI.remove(self._children, this);
}); });

Loading…
Cancel
Save