📄 poll.js
字号:
Class("linb.UI.Poll", "linb.UI.List",{
Instance:{
fillContent:function(id, obj){
var profile=this.get(0),t,item;
if(profile.domNode){
if(item=profile.getItemByItemId(id)){
t=profile.getSubNodeByItemId('BODY',id).html('');
if(obj){
item._obj = obj;
item._fill=true;
if(typeof obj=='string')t.html(obj);
else t.append(obj.render(true));
}else
item._obj=item._fill=null;
}
}
return this;
},
_setOptCap:function(item, value){
return this.each(function(pro){
var items = pro.properties.items,
i = pro.queryItems(pro.properties.items, function(o){
return o.id==item.id;
},false,true);
if(i && (i=i[0])){
i.caption=value;
if(pro.domNode)
pro.getSubNodeByItemId('CAPTION',i.id).html(value);
}
});
},
getBindEditor:function(){
return this.get(0)._bind;
},
_insertOpt:function(opt){
if(!opt.id)opt.id='$'+_();
this.insertItems([opt],null, false);
return this;
},
_removeOpt:function(id){
this.removeItems([id],'OUTER');
return this;
},
_setDirtyMark:function(){return this}
},
Initialize:function(){
var self=this;
self.addTemplateKeys(['EDIT']);
//modify default template fro shell
var t = self.getTemplate();
t.TITLE={
$order:2,
tagName : 'DIV',
style:'{titleDisplay}',
text : '{title}',
className:"uibg-bar uiborder-outset {disabled} {_cls}"
};
t.TAIL={
$order:20,
tagName : 'DIV',
className:"uibg-bar uiborder-outset {disabled}",
text:"{cmds}"
};
t.$dynamic={
items:{
OUTER:{
tagName:'div',
className:'uibg-bar uiborder-outset',
TOGGLE:{
className:'uicmd-toggle',
style:'{_togdisplay}'
},
ITEM:{
tagName: 'a',
href :linb.$href,
tabindex: '{_tabindex}',
className:'{itemClass} {disabled}',
style:'{itemStyle}',
OPTION:{
$order:0,
tagName : 'DIV',
MARK:{$order:1,className:'{_optclass}'}
},
CAPTION:{
$order:1,
tagName : 'DIV',
text : '{caption}',
className:"{disabled} {_itemcls}"
},
CHART:{
$order:2,
tagName : 'DIV',
style:'{_display}',
CAST:{
$order:0,
text:'{message}'
},
PROGRESS:{
$order:1,
style:'background-position: -{_per}px -200px;',
PROGRESSI:{}
},
DEL:{
$order:2,
className:'ui-btn',
style:'{_del}',
DELI:{
className:'ui-btni',
DELC:{
className:'ui-btnc',
DELA:{
tagName:'button',
text:'{removeText}'
}
}
}
}
},
CLEAR:{
$order:3,
tagName : 'DIV'
}
},
BODY:{
$order:1,
tagName : 'DIV',
text:'{_body}'
}
}
},
cmds:{
CMD:{
className:'ui-btn',
CMDI:{
className:'ui-btni',
CMDC:{
className:'ui-btnc',
CMDA:{
tagName:'a',
href:linb.$href,
tabindex: '{_tabindex}',
text:'{caption}'
}
}
}
}
}
};
self.setTemplate(t);
//for modify
var inlineEdit=function(profile,node,flag,value,item){
var o,useC,prop=profile.properties,
callback=function(v){
var b=profile.boxing();
switch(flag){
//edit option
case '1':
if(b.beforeOptionChanged(profile, item, v)!==false)
b._setOptCap(item,v);
break;
//new option
case '2':
if(b.beforeOptionAdded(profile, v)!==false ){
var id="["+v.replace(/[^\w_]*/g,'')+"]";
b._insertOpt({caption:v,id:id});
if(!profile.properties.editable){
profile.boxing().fireItemClickEvent(id);
}
}
break;
//edit title
default:
if(b.beforeTitleChanged(profile, v)!==false)
b.setTitle(v);
}
};
if(profile.onCustomEdit)
if(o=profile._bind=profile.boxing().onCustomEdit(profile, node, flag, value, item, callback))
useC=true;
if(!useC){
o=profile._bind;
if(!o){
var pp={type:prop.editorType,saveBtn:true,left:-10000,top:-10000};
profile._bind=o=linb.create('ComboInput', pp);
o.onHotKeydown(function(p,key){
if(key=='enter'){
p.boxing().onSave(p);
return false;
}else if(key=='esc'){
o.hide();
return false;
}
})
profile.root.append(o);
}
var r=node.cssRegion(true,profile.root);
if(r.height>o.getHeight())
o.setHeight(r.height);
else
r.top-=3;
if(r.top<0)r.top=0;
o.setValue(value||'',true)
.setWidth(r.width + (parseInt(node.css('paddingLeft'))||0)+ (parseInt(node.css('paddingRight'))||0))
.onSave(function(p){
var pro=p.properties,v=pro.$UIvalue, ov=pro.value;
if(v!=ov)
callback(v);
_.asyRun(function(){
o.hide();
});
})
.reBoxing()
.setBlurTrigger(o.KEY+":"+o.$id, function(){
o.hide();
})
.show(r.left+'px',r.top+'px');
_.asyRun(function(){
o.activate()
});
}
};
t = self.getBehavior();
var old=t.ITEM.onClick;
t.ITEM.onClick = function(profile, e, src){
var p = profile.properties,
item = profile.getItemByDom(src),
editable=item.id=='$custom' || item.editable;
if(p.disabled)return;
if(p.editable)
inlineEdit(profile, profile.getSubNodeByItemId('CAPTION',item.id), editable?'2':'1', editable?'':item.caption, item);
else{
if(editable)
inlineEdit(profile, profile.getSubNodeByItemId('CAPTION',item.id), '2');
else
old.apply(this, arguments);
}
};
t.TITLE={
onClick : function(profile, e, src){
var p = profile.properties,
item = profile.getItemByDom(src);
if(p.disabled)return;
if(p.editable)
inlineEdit(profile, profile.getSubNode('TITLE'), '3', p.title);
}
};
t.DEL={
onClick : function(profile, e, src){
var p = profile.properties,
b = profile.boxing(),
item = profile.getItemByDom(src);
if(p.disabled)return;
if(b.beforeOptionRemoved(profile, item)!==false )
b._removeOpt(item.id);
return false;
}
}
t.CMD={
onClick : function(profile, e, src){
var p = profile.properties,
key = profile.getSubId(src.id);
if(p.disabled)return;
profile.boxing().onClickButton(profile, key, src);
}
};
t.TOGGLE={
onClick:function(profile, e, src){
var properties = profile.properties,
items=properties.items,
item = profile.getItemByDom(src),
itemId = profile.getSubId(src.id),
node = linb([src]),
body = profile.getSubNode('BODY',itemId),t
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -