📄 ig_weblistbar2_2.js
字号:
/*
Infragistics Listbar Script
Version 5.1.20051.37
js-version 2.2.20042.1035
Copyright (c) 2002-2004 Infragistics, Inc. All Rights Reserved.
*/
var iglbar_AllowMove=0;
var iglbar_SourceGroup;
var iglbar_CloneGroup;
var iglbar_CurrentX=0;
var iglbar_CurrentY=0;
var iglbar_moveLsnr = false;
var iglbar_all=new Array();
//Return an UltraWebListbar object
function iglbar_getListbarById(id){
lbid=id.split("_")[0];
if(lbid.length == 0) return null;
lbarObj=eval(lbid+"_obj");
if(lbarObj==null){
lbarObj= new UltraWebListbar(lbid,eval(lbid+"_groupsArray"));
lbarObj.Element.style.display="";
if(lbarObj.Events!=null&&lbarObj.Events.InitializeListbar!=null)ig_fireEvent(lbarObj,lbarObj.Events.InitializeListbar[0]);
iglbar_all.push(lbarObj);
}
return lbarObj;
}
//Return an iglbar_Group object associated with the specified id.
function iglbar_getGroupById(id){
var parts=id.split("_");
var barId=parts[0];
var bar=iglbar_getListbarById(barId);
if(bar == null) return null;
return bar.Groups[parts[2]];
}
//Return an iglbar_Item object associated with the specified id.
function iglbar_getItemById(id){
var parts=id.split("_");
var barId=parts[0];
var bar=iglbar_getListbarById(barId);
if(bar == null) return null;
return bar.Groups[parts[1]].Items[parts[3]];
}
//Arranges Listbar group buttons so that selected button is the last button shown
//in the Top button area, and shows it's items.
function iglbar_adjust(lbar){
var i=0;
var moveToBottom=false;
var group=new Array(2);
while(lbar.Groups[i]!=null){
group[0]=ig_csom.getElementById(lbar.Groups[i].Id+"_top_tr");
group[1]=ig_csom.getElementById(lbar.Groups[i].Id+"_bottom_tr");
ig_csom.getElementById(lbar.Id+"_Items_"+i.toString()).style.display="none";
if(!moveToBottom){
if(lbar.Groups[i]==lbar.SelectedGroup){
moveToBottom=true;
ig_csom.getElementById(lbar.Id+"_Items_"+i.toString()).style.display="";
}
group[0].style.display="";
group[1].style.display="none";
}
else{
if(ig_csom.getElementById(lbar.Id+"_BotGroup").style.display=="none")ig_csom.getElementById(lbar.Id+"_BotGroup").style.display="";
group[1].style.display="";
group[0].style.display="none";
}
i++;
}
ig_csom.getElementById(lbar.Id+"_Items").className=lbar.SelectedGroup.GroupStyleClassName;
}
//Internal Use Only
function iglbar_evt(e)
{
if(e == null) if((e = window.event) == null) return;
var o, src = e.srcElement, type = e.type;
if(src == null) if((src = e.target) == null) src = this;
while((o = src.o) == null) if((src = src.parentNode) == null) return;
//i: 0-item, 1-explHead, 2-listGroup
var a = src.accessKey, i = (o.Items == null) ? 0 : 1;
if(i == 1 && o.getExpanded == null) i = 2;
//o.ak: 0-focus,1-keydown, 2-keyup
if(type == "keyup" && ig_csom.notEmpty(a) && o.ak != 2)
{
var k = e.keyCode;
if(!e.altKey) k = 0;
else if(o.ak == 1 && !(a.charCodeAt(0) == k || (k == 186 && a == ";") || (k == 187 && a == "=") || (k == 188 && a == ",") || (k == 189 && a == "-") || (k == 191 && a == "/") || (k == 219 && a == "[") || (k == 221 && a == "]"))) k = 0;
o.ak = 2;
if(k == 0) return;
if(i == 0) type = "mousedown";
else type = (i == 1 && o.Control.HeaderClickAction != 0) ? "dblclick" : "click";
}
switch(type)
{
case "focus": o.ak = 0; return;
case "keydown": o.ak = 1; return;
case "mouseover":
if(i == 0) iglbar_itemMouseOver(e, src, o);
else if(i == 1) iglbar_groupHeaderMouseOver(e, src, o);
else iglbar_groupButtonMouseOver(e, src, o);
return;
case "mouseout":
if(i == 0) iglbar_itemMouseOut(e, src, o);
else if(i == 1) iglbar_groupHeaderMouseOut(e, src, o);
else iglbar_groupButtonMouseOut(e, src, o);
return;
case "mousedown":
if(i == 0) iglbar_itemClicked(e, src, o);
else iglbar_pickupGroup(e, src, o);
return;
case "click":
if(i == 1) iglbar_headerClick(e, src, o);
else iglbar_groupButtonClicked(e, src, o);
return;
case "dblclick": iglbar_headerDoubleClick(e, src, o); return;
case "selectstart": if(src.tagName != "INPUT") ig_cancelEvent(e); return;
}
}
//i: 1-key/focus/out/over, 2-down, 4-click, 8-dbl
function iglbar_addLsnr(e, o, i)
{
if(e == null) return;
e.o = o;
if((i & 1) != 0)
{
ig_csom.addEventListener(e, "mouseout", iglbar_evt);
ig_csom.addEventListener(e, "mouseover", iglbar_evt);
ig_csom.addEventListener(e, "keyup", iglbar_evt);
ig_csom.addEventListener(e, "keydown", iglbar_evt);
ig_csom.addEventListener(e, "focus", iglbar_evt);
}
if((i & 2) != 0) ig_csom.addEventListener(e, "mousedown", iglbar_evt);
if((i & 4) != 0) ig_csom.addEventListener(e, "click", iglbar_evt);
if((i & 8) != 0) ig_csom.addEventListener(e, "dblclick", iglbar_evt);
}
function iglbar_groupHeaderMouseOver(e, src, group)
{
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.MouseOver[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
if(group==null||!group.getExpanded()||!group.getEnabled())return;
src.className=group.HeaderAppearance.HoverAppearance.ClassName;
if(group.HeaderAppearance.HoverAppearance.ImageUrl)group.HeaderAppearance.Image.src=group.HeaderAppearance.HoverAppearance.ImageUrl;
}
//Internal Use Only
function iglbar_groupHeaderMouseOut(e, src, group)
{
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.MouseOut[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
if(group==null||!group.getEnabled())return;
var currentAppearance=group.getExpanded()?group.HeaderAppearance.ExpandedAppearance:group.HeaderAppearance.CollapsedAppearance;
src.className=currentAppearance.ClassName;
if(group.HeaderAppearance.Image!=null){
group.HeaderAppearance.Image.src=currentAppearance.ImageUrl;
}
}
//Internal Use Only
function iglbar_headerClick(e, src, group)
{
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.HeaderClick[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
if(group.getEnabled())iglbar_navigate(group.TargetUrl,group.TargetFrame);
if(group.Control.HeaderClickAction==0&&group.getEnabled())
iglbar_toggleGroup(e,src);
}
//Internal Use Only
function iglbar_headerDoubleClick(e, src, group)
{
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.HeaderDoubleClick[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
if(group.Control.HeaderClickAction!=2&&group.getEnabled())
iglbar_toggleGroup(e,src);
}
//Internal Use Only
function iglbar_groupButtonClicked(e, src, group)
{
if(group==group.Control.SelectedGroup||!group.getEnabled())return;
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.BeforeGroupSelected[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
group.setSelected(true);
iglbar_navigate(group.TargetUrl,group.TargetFrame);
if(oEvent==null)oEvent=new ig_EventObject();
oEvent.reset();
oEvent.event=e;
iglbar_fireEvent(group.Control,group.Control.Events.AfterGroupSelected[0],group,e,oEvent);
if(oEvent!=null&&oEvent.needPostBack) group.Control.doPost(group.Id + ":GroupSelected");
}
//Internal Use Only
function iglbar_groupButtonMouseOver(e, src, group)
{
if(group.getSelected()||!group.getEnabled())return;
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.MouseOver[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
src.className=group.ButtonHoverStyleClassName;
}
//Internal Use Only
function iglbar_groupButtonMouseOut(e, src, group)
{
var oEvent=iglbar_fireEvent(group.Control,group.Control.Events.MouseOut[0],group,e);
if(oEvent!=null&&oEvent.cancel) return;
if(group==null||group.getSelected()||!group.getEnabled())return;
src.className=group.ButtonStyleClassName;
}
//Internal Use Only
function iglbar_itemClicked(e, src, item)
{
if(!item.getEnabled() || item.getSelected())return;
var oEvent=iglbar_fireEvent(item.Group.Control,item.Group.Control.Events.BeforeItemSelected[0],item,e);
if(oEvent!=null&&oEvent.cancel) return;
item.setSelected(true);
if(oEvent==null)oEvent=new ig_EventObject();
oEvent.reset();
oEvent.event=e;
iglbar_fireEvent(item.Group.Control,item.Group.Control.Events.AfterItemSelected[0],item,e,oEvent);
if(oEvent!=null&&oEvent.needPostBack) item.Group.Control.doPost(item.Id + ":ItemSelected");
}
//Internal Use Only
function iglbar_itemMouseOver(e, src, item)
{
var oEvent=iglbar_fireEvent(item.Group.Control,item.Group.Control.Events.MouseOver[0],item,e);
if(oEvent!=null&&oEvent.cancel) return;
if(item.getSelected()||!item.getEnabled())return;
if(item.Group.ItemSelectionStyle==1&&item.getImage()!=null)
item.getImage().className=item.HoverStyleClassName;
else src.className=item.HoverStyleClassName;
}
//Internal Use Only
function iglbar_itemMouseOut(e, src, item)
{
var oEvent=iglbar_fireEvent(item.Group.Control,item.Group.Control.Events.MouseOut[0],item,e);
if(oEvent!=null&&oEvent.cancel) return;
if(item.getSelected()||!item.getEnabled())return;
if(item.Group.ItemSelectionStyle==1&&item.getImage()!=null)
item.getImage().className=item.DefaultStyleClassName;
else src.className=item.DefaultStyleClassName;
}
function iglbar_navigate(targetUrl,targetFrame){
ig_csom.navigateUrl(targetUrl,targetFrame);
}
/**
* Listbar constructor. Creates a new Listbar object with the specified id
* and Groups array.
* @param id - id of the Listbar control.
* @param groups - array of groups. Depending on the ViewType, the groups
* could either be of type iglbar_ExplorerBarGroup or iglbar_ListbarGroup
**/
function UltraWebListbar(id,groups){
//isInitializing is used so that events do not fire during initialization.
this.isInitializing=true;
this.Element=ig_csom.getElementById(id);
ig_csom.addEventListener(this.Element, "selectstart", iglbar_evt);
var selGr, props=eval(id+"_propsArray");
this.Id=id;
this.uniqueID=eval(id+"UniqueID");
this.Groups=groups;
var events=eval(id+"_eventArray");
if(events==null)return;
this.Events=new iglbar_Events(events);
//listbar
if((this.ViewType = props[3]) == 0)
{
var selItem = props[2].split("i");
selGr = this.Groups[selItem[0]];
this.SelectedItem = selGr.Items[selItem[1]];
}
this.SelectedGroup = selGr = this.Groups[props[1]];
if(selGr != null)
{
//explorer
if(this.ViewType != 0) this.SelectedItem = selGr.Items[props[2]];
selGr.selected = true;
}
this.findControl=function(id)
{
var control;
var groupIndex=0;
while(this.Groups[groupIndex]!=null)
{
control=this.Groups[groupIndex].findControl(id);
if(control!=null)return control;
groupIndex++;
}
}
this.enabled=props[4];
this.getEnabled=function(){return this.enabled;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -