Skip to content

Commit 1f1cf48

Browse files
committed
Separate ref to _ref_pool
1 parent 92faa7f commit 1f1cf48

File tree

9 files changed

+134
-103
lines changed

9 files changed

+134
-103
lines changed

API/App/js/xui-raw.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

runtime/xui/js/xui-all.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

runtime/xui/js/xui-debug.js

+72-54
Large diffs are not rendered by default.

runtime/xui/js/xui.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

xui/js/Module.js

+20-19
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ xui.Class('xui.Module','xui.absProfile',{
889889
cellsMap={},
890890
cell2alias = {}, alias2cell={};
891891
if(formula){
892-
xui.each(this._ctrlpool, function(prf){
892+
xui.each(this._alias_pool, function(prf){
893893
var p = prf.properties,t;
894894
if((t=p.excelCellId) && /^\s*[a-zA-Z]+[\d]+\s*$/.test(t)){
895895
cell2alias[t]=prf.alias;
@@ -920,7 +920,7 @@ xui.Class('xui.Module','xui.absProfile',{
920920
rowMax = 0, colMax = 0,
921921
cellId = profileFrom && profileFrom.alias;
922922
//1. collection all formula cells
923-
xui.each(this._ctrlpool, function(prf){
923+
xui.each(this._alias_pool, function(prf){
924924
var p = prf.properties,t;
925925
if(t=p.excelCellFormula){
926926
formulaCells[prf.alias]=[prf,t];
@@ -1003,7 +1003,7 @@ xui.Class('xui.Module','xui.absProfile',{
10031003
if(!this._innerModulesCreated)this._createInnerModules();
10041004

10051005
var hash={},t;
1006-
xui.each(this._ctrlpool, function(prf){
1006+
xui.each(this._alias_pool, function(prf){
10071007
t=hash[prf.alias]=prf.serialize(false,false,false);
10081008
delete t.key;
10091009
delete t.alias;
@@ -1015,7 +1015,7 @@ xui.Class('xui.Module','xui.absProfile',{
10151015
setProfile:function(profiles){
10161016
if(!this._innerModulesCreated)this._createInnerModules();
10171017

1018-
xui.each(this._ctrlpool, function(prf,i){
1018+
xui.each(this._alias_pool, function(prf,i){
10191019
if(prf.alias in profiles){
10201020
i=profiles[prf.alias];
10211021
var ins=prf.boxing();
@@ -1042,7 +1042,7 @@ xui.Class('xui.Module','xui.absProfile',{
10421042
var hash={};
10431043
try{
10441044
scope_set.call(this);
1045-
xui.each(this._ctrlpool, function(prf){
1045+
xui.each(this._alias_pool, function(prf){
10461046
var prop=prf.properties;
10471047
if(prop.propBinder)
10481048
xui.each(prop.propBinder,function(fun,key){
@@ -1067,7 +1067,7 @@ xui.Class('xui.Module','xui.absProfile',{
10671067

10681068
try{
10691069
scope_set.call(this, dataMap);
1070-
xui.each(this._ctrlpool, function(prf){
1070+
xui.each(this._alias_pool, function(prf){
10711071
prf.boxing().reBindProp(dataMap,scope_set,scope_clear, true);
10721072
});
10731073
}catch(e){
@@ -1078,7 +1078,7 @@ xui.Class('xui.Module','xui.absProfile',{
10781078
if(!this._innerModulesCreated)this._createInnerModules();
10791079

10801080
var hash={};
1081-
xui.each(this._ctrlpool, function(prf){
1081+
xui.each(this._alias_pool, function(prf){
10821082
var prop=prf.properties,
10831083
ins=prf.boxing(),
10841084
ih=hash[prf.alias]={};
@@ -1096,7 +1096,7 @@ xui.Class('xui.Module','xui.absProfile',{
10961096
setData:function(data){
10971097
if(!this._innerModulesCreated)this._createInnerModules();
10981098

1099-
xui.each(this._ctrlpool, function(prf){
1099+
xui.each(this._alias_pool, function(prf){
11001100
var prop=prf.properties,
11011101
ins=prf.boxing(),ih;
11021102
if(prf.alias in data){
@@ -1118,7 +1118,7 @@ xui.Class('xui.Module','xui.absProfile',{
11181118
if(!this._innerModulesCreated)this._createInnerModules();
11191119

11201120
var hash={}, cap, uv;
1121-
xui.each(this._ctrlpool, function(prf){
1121+
xui.each(this._alias_pool, function(prf){
11221122
if('value' in prf.properties){
11231123
if(xui.isSet(prf.properties.caption)){
11241124
cap = prf.properties.caption;
@@ -1145,7 +1145,7 @@ xui.Class('xui.Module','xui.absProfile',{
11451145
if(!this._innerModulesCreated)this._createInnerModules();
11461146

11471147
if(!xui.isEmpty(values)){
1148-
xui.each(this._ctrlpool, function(prf){
1148+
xui.each(this._alias_pool, function(prf){
11491149
if('value' in prf.properties && prf.alias in values){
11501150
var v=values[prf.alias],b=xui.isHash(v) ;
11511151
prf.boxing().setValue((b && ('value' in v)) ? v.value : v, true,'module');
@@ -1164,7 +1164,7 @@ xui.Class('xui.Module','xui.absProfile',{
11641164
if(!this._innerModulesCreated)this._createInnerModules();
11651165

11661166
var hash={};
1167-
xui.each(this._ctrlpool, function(prf){
1167+
xui.each(this._alias_pool, function(prf){
11681168
if('$UIvalue' in prf.properties)
11691169
hash[prf.alias]=prf.properties.$UIvalue;
11701170
});
@@ -1178,7 +1178,7 @@ xui.Class('xui.Module','xui.absProfile',{
11781178
if(!this._innerModulesCreated)this._createInnerModules();
11791179

11801180
if(!xui.isEmpty(values)){
1181-
xui.each(this._ctrlpool, function(prf){
1181+
xui.each(this._alias_pool, function(prf){
11821182
if('value' in prf.properties && prf.alias in values){
11831183
var v=values[prf.alias],b=xui.isHash(v) ;
11841184
prf.boxing().setUIValue((b && ('value' in v))?v.value:v, true,false,'module');
@@ -1195,7 +1195,7 @@ xui.Class('xui.Module','xui.absProfile',{
11951195
resetValue:function(innerUI){
11961196
if(innerUI){
11971197
if(!this._innerModulesCreated)this._createInnerModules();
1198-
xui.each(this._ctrlpool, function(prf){
1198+
xui.each(this._alias_pool, function(prf){
11991199
if(prf.boxing().resetValue)prf.boxing().resetValue();
12001200
});
12011201
}else{
@@ -1206,7 +1206,7 @@ xui.Class('xui.Module','xui.absProfile',{
12061206
updateValue:function(innerUI){
12071207
if(innerUI){
12081208
if(!this._innerModulesCreated)this._createInnerModules();
1209-
xui.each(this._ctrlpool, function(prf){
1209+
xui.each(this._alias_pool, function(prf){
12101210
if(prf.boxing().updateValue)prf.boxing().updateValue();
12111211
});
12121212
}else{
@@ -1220,7 +1220,7 @@ xui.Class('xui.Module','xui.absProfile',{
12201220
if(!this._innerModulesCreated)this._createInnerModules();
12211221

12221222
var dirtied=false;
1223-
xui.each(this._ctrlpool, function(prf){
1223+
xui.each(this._alias_pool, function(prf){
12241224
if(prf.boxing().isDirtied){
12251225
if(prf.boxing().isDirtied()){
12261226
return false;
@@ -1236,7 +1236,7 @@ xui.Class('xui.Module','xui.absProfile',{
12361236
if(innerUI){
12371237
if(!this._innerModulesCreated)this._createInnerModules();
12381238

1239-
xui.each(this._ctrlpool, function(prf){
1239+
xui.each(this._alias_pool, function(prf){
12401240
if(prf.boxing().checkValid){
12411241
if(!prf.boxing().checkValid()){
12421242
return false;
@@ -1260,7 +1260,7 @@ xui.Class('xui.Module','xui.absProfile',{
12601260
getForms:function(){
12611261
if(!this._innerModulesCreated)this._createInnerModules();
12621262

1263-
var nodes = xui.copy(this._ctrlpool),t,k='xui.absContainer';
1263+
var nodes = xui.copy(this._alias_pool),t,k='xui.absContainer';
12641264
xui.filter(nodes,function(o){
12651265
return !!(o.box[k]);
12661266
});
@@ -1272,7 +1272,7 @@ xui.Class('xui.Module','xui.absProfile',{
12721272
var nodes=[];
12731273
var fun = function(m){
12741274
if(m["xui.Module"]){
1275-
xui.each(m._ctrlpool,function(o){
1275+
xui.each(m._alias_pool,function(o){
12761276
if(o["xui.Module"])fun(o);
12771277
else nodes.push(o);
12781278
});
@@ -1343,10 +1343,11 @@ xui.Class('xui.Module','xui.absProfile',{
13431343
self._fireEvent('onDestroy');
13441344
if(self.alias && self.host && self.host[self.alias]){
13451345
try{if(self.alias in self.host)delete self.host[self.alias];}catch(e){self.host[self.alias]=void(0)}
1346-
if(self.host._ctrlpool && (self.alias in self.host._ctrlpool))delete self.host._ctrlpool[self.alias];
1346+
if(self.host._alias_pool && (self.alias in self.host._alias_pool))delete self.host._alias_pool[self.alias];
13471347
}
13481348
if(self.ref && self.host && self.host[self.ref]){
13491349
try{if(self.ref in self.host)delete self.host[self.ref];}catch(e){self.host[self.ref]=void(0)}
1350+
if(self.host._ref_pool && (self.ref in self.host._ref_pool))delete self.host._ref_pool[self.ref];
13501351
}
13511352

13521353
//set once

xui/js/UI.js

+18-6
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,11 @@ xui.Class('xui.UIProfile','xui.Profile', {
351351
var o;
352352
if(ns.alias && ns.host && (o=ns.host[ns.alias]) && (o=o._nodes) && (o.length===0 || o.length===1 && o[0]==ns)){
353353
try{if(ns.alias in ns.host)delete ns.host[ns.alias];}catch(e){ns.host[ns.alias]=void(0)}
354-
if(ns.host._ctrlpool && (ns.alias in ns.host._ctrlpool))delete ns.host._ctrlpool[ns.alias];
354+
if(ns.host._alias_pool && (ns.alias in ns.host._alias_pool))delete ns.host._alias_pool[ns.alias];
355355
}
356356
if(ns.ref && ns.host && (o=ns.host[ns.ref]) && (o=o._nodes) && (o.length===0 || o.length===1 && o[0]==ns)){
357357
try{if(ns.ref in ns.host)delete ns.host[ns.ref];}catch(e){ns.host[ns.ref]=void(0)}
358+
if(ns.host._ref_pool && (ns.ref in ns.host._ref_pool))delete ns.host._ref_pool[ns.ref];
358359
}
359360
//clear anti link
360361
ns.unLinkAll();
@@ -2227,6 +2228,7 @@ xui.Class("xui.UI", "xui.absObj", {
22272228
//invalid after dom dom Node
22282229
zIndex:{
22292230
ini:1,
2231+
precision:0,
22302232
action:function(value){
22312233
this.getRoot().css('zIndex',value);
22322234
}
@@ -8729,6 +8731,7 @@ xui.Class("xui.UI.HTMLButton", "xui.UI.Element",{
87298731
},
87308732
DataModel:{
87318733
nodeName:null,
8734+
87328735
tabindex:1,
87338736
width:'auto',
87348737
height:'auto',
@@ -9506,6 +9509,8 @@ xui.Class("xui.UI.CSSBox","xui.UI.Span",{
95069509
onResize:null,
95079510
onShowTips:null,
95089511
beforeHoverEffect:null,
9512+
beforeHoverHide:null,
9513+
beforeHoverPop:null,
95099514
beforeAppend:null,
95109515
afterAppend:null,
95119516
beforeRender:null,
@@ -9676,15 +9681,22 @@ xui.Class("xui.UI.ModulePlaceHolder", "xui.UI",{
96769681
RenderTrigger:function(){
96779682
var prf=this;
96789683
if(prf.$inDesign)return;
9679-
9684+
var created;
96809685
if(prf && !prf._replaced && (prf._module||prf.properties.moduleName)){
96819686
if(!prf._module){
96829687
prf._module = xui.create(prf.properties.moduleName, "xui.Module");
9683-
prf.boxing().detachHost();
9684-
prf._module.setHost(prf.host, prf.alias, prf.ref);
9685-
prf._module.module_container = prf.getParent();
9688+
if(prf._module.KEY == prf.properties.moduleName){
9689+
prf.boxing().detachHost();
9690+
prf._module.setHost(prf.host, prf.alias, prf.ref);
9691+
prf._module.module_container = prf.getParent();
9692+
created=1;
9693+
}
9694+
}
9695+
if(created){
9696+
prf.boxing().replaceWithModule(prf._module);
9697+
}else if(xui.debugMode){
9698+
prf.getRoot().css('display', 'block');
96869699
}
9687-
prf.boxing().replaceWithModule(prf._module);
96889700
}
96899701
}
96909702
}

xui/js/UI/Gallery.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -250,14 +250,14 @@ xui.Class("xui.UI.Gallery", "xui.UI.List",{
250250
},
251251
itemWidth:{
252252
$spaceunit:1,
253-
ini:32,
253+
ini:'32px',
254254
action:function(v){
255255
this.boxing().refresh();
256256
}
257257
},
258258
itemHeight:{
259259
$spaceunit:1,
260-
ini:32,
260+
ini:'32px',
261261
action:function(v){
262262
this.boxing().refresh();
263263
}

xui/js/UI/Input.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,7 @@ xui.Class("xui.UI.Input", ["xui.UI.Widget","xui.absValue"] ,{
662662
}
663663
},
664664
autoexpand:{
665-
$spaceunit:1,
666-
ini:"",
665+
ini:false,
667666
action:function(v){
668667
this.boxing().refresh();
669668
}

xui/js/xui.js

+18-17
Original file line numberDiff line numberDiff line change
@@ -4876,7 +4876,8 @@ xui.Class('xui.absProfile',null,{
48764876
upper=null;
48774877
if(!this.$xid)this.$xid=xui.absProfile.$xid.next();
48784878
this._$cache={};
4879-
this._ctrlpool={};
4879+
this._alias_pool={};
4880+
this._ref_pool={};
48804881

48814882
this._links={};
48824883
this.link(xui._pool,'xui');
@@ -4885,7 +4886,7 @@ xui.Class('xui.absProfile',null,{
48854886
__gc:function(){
48864887
this.unLinkAll();
48874888
this._links = null;
4888-
this._$cache=this._ctrlpool=null;
4889+
this._$cache=this._alias_pool=this._ref_pool=null;
48894890
},
48904891
getId:function(){
48914892
return this.$xid;
@@ -4974,6 +4975,9 @@ xui.Class('xui.absProfile',null,{
49744975
},
49754976
getChildrenId:function(){
49764977
return this.childrenId;
4978+
},
4979+
getByRef:function(ref){
4980+
return this._ref_pool[ref];
49774981
}
49784982
},
49794983
Static:{
@@ -5065,10 +5069,11 @@ xui.Class('xui.Profile','xui.absProfile',{
50655069
var o;
50665070
if(ns.alias && ns.host && (o=ns.host[ns.alias]) && (o=o._nodes) && (o.length===0 || o.length===1 && o[0]==ns)){
50675071
try{if(ns.alias in ns.host)delete ns.host[ns.alias];}catch(e){ns.host[ns.alias]=void(0)}
5068-
if(ns.host._ctrlpool && (ns.alias in ns.host._ctrlpool))delete ns.host._ctrlpool[ns.alias];
5072+
if(ns.host._alias_pool && (ns.alias in ns.host._alias_pool))delete ns.host._alias_pool[ns.alias];
50695073
}
50705074
if(ns.ref && ns.host && (o=ns.host[ns.ref]) && (o=o._nodes) && (o.length===0 || o.length===1 && o[0]==ns)){
50715075
try{if(ns.ref in ns.host)delete ns.host[ns.ref];}catch(e){ns.host[ns.ref]=void(0)}
5076+
if(ns.host._ref_pool && (ns.ref in ns.host._ref_pool))delete ns.host._ref_pool[ns.ref];
50725077
}
50735078

50745079
xui.absProfile.prototype.__gc.call(this);
@@ -5542,10 +5547,11 @@ xui.Class('xui.absObj',"xui.absBox",{
55425547
prf.host = null;
55435548
if(alias){
55445549
try{if(alias in host)delete host[alias];}catch(e){host[alias]=void(0)}
5545-
if(host._ctrlpool&&(alias in host._ctrlpool))delete host._ctrlpool[alias];
5550+
if(host._alias_pool&&(alias in host._alias_pool))delete host._alias_pool[alias];
55465551
}
55475552
if(ref){
55485553
try{if(ref in host)delete host[ref];}catch(e){host[ref]=void(0)}
5554+
if(host._ref_pool&&(ref in host._ref_pool))delete host._ref_pool[ref];
55495555
}
55505556
}
55515557
},
@@ -5565,9 +5571,6 @@ xui.Class('xui.absObj',"xui.absBox",{
55655571

55665572
// check new alias
55675573
if(alias){
5568-
if(/^\$.+#[\d]+$/.test(alias)){
5569-
throw new Error("The alias '"+alias+"' format error");
5570-
}
55715574
var t_host = host || oldHost;
55725575
if(t_host && (alias in t_host) && xui.isSet(t_host[alias]) && t_host[alias]!==self){
55735576
// can't rewrite existing memeber except xui.absObj
@@ -5581,9 +5584,6 @@ xui.Class('xui.absObj',"xui.absBox",{
55815584
}
55825585
}
55835586
if(ref){
5584-
if(!/^\$.+#[\d]+$/.test(ref)){
5585-
throw new Error("The ref '"+ref+"' format error");
5586-
}
55875587
var t_host = host || oldHost;
55885588
if(t_host && (ref in t_host) && t_host[ref]!==self){
55895589
// can't rewrite existing memeber except xui.absObj
@@ -5597,8 +5597,8 @@ xui.Class('xui.absObj',"xui.absBox",{
55975597
// clear old
55985598
if(oldHost && oldAlias){
55995599
try{if(oldAlias in oldHost)delete oldHost[oldAlias];}catch(e){oldHost[oldAlias]=void(0)}
5600-
if(xui.isHash(oldHost._ctrlpool)&&(oldAlias in oldHost._ctrlpool))
5601-
delete oldHost._ctrlpool[oldAlias];
5600+
if(xui.isHash(oldHost._alias_pool)&&(oldAlias in oldHost._alias_pool))
5601+
delete oldHost._alias_pool[oldAlias];
56025602
}
56035603

56045604
// reset host & name
@@ -5620,8 +5620,8 @@ xui.Class('xui.absObj',"xui.absBox",{
56205620
if(oldHost==host){
56215621
if(oldAlias && oldAlias!==alias){
56225622
try{if(oldAlias in host)delete host[oldAlias];}catch(e){host[oldAlias]=void(0)}
5623-
if(xui.isHash(host._ctrlpool) && (oldAlias in host._ctrlpool))
5624-
delete host._ctrlpool[oldAlias];
5623+
if(xui.isHash(host._alias_pool) && (oldAlias in host._alias_pool))
5624+
delete host._alias_pool[oldAlias];
56255625

56265626
if(prf.box && prf.box._syncAlias){
56275627
prf.box._syncAlias(prf, oldAlias, alias);
@@ -5630,11 +5630,12 @@ xui.Class('xui.absObj',"xui.absBox",{
56305630
}
56315631

56325632
host[alias]=self;
5633-
if(xui.isHash(host._ctrlpool))
5634-
host._ctrlpool[alias]=self.get(0);
5633+
if(xui.isHash(host._alias_pool))
5634+
host._alias_pool[alias]=self.get(0);
56355635

56365636
if(ref && oldRef!==ref){
5637-
host[ref]=self;
5637+
if(xui.isHash(host._ref_pool))
5638+
host._ref_pool[ref]=self.get(0);
56385639
}
56395640
}
56405641
return self;

0 commit comments

Comments
 (0)