📄 suite.js
字号:
function uiOptionTransfer_Suite(sourceList, targetList) { this._super(); this.__srcList = sourceList; this.__tgtList = targetList; this.__srcHandler = this.__srcList.getItemHandler(); this.__tgtHandler = this.__tgtList.getItemHandler(); var suite = this; this.__srcList.appendEventHandler("dblclick", function(e) { suite.__transfer(e, false); }); this.__tgtList.appendEventHandler("dblclick", function(e) { suite.__return(e, false); }); var domForm = this.__tgtList.getDomObject().form; if (domForm != null) { uiHtml_ElementWrapper.getInstance().prependEventHandler( domForm, "submit", function(e) { suite.__selectAllTargetItems(e); }); } uiOptionTransfer_Suite.syncItems(this.__srcList, this.__tgtList);}uiOptionTransfer_Suite = uiUtil_Object.declareClass(uiOptionTransfer_Suite, uiUtil_Object);uiOptionTransfer_Suite.prototype.__selectAllTargetItems = function(domEvent) { var listSize = this.__tgtList.size(); for(var i = 0; i < listSize; i++) { this.__tgtHandler.setSelected(this.__tgtList.getItemAt(i), true, domEvent); }};uiOptionTransfer_Suite.prototype.__transfer = function(domEvent, all) { var listSize = this.__srcList.size(); for(var i = 0; i < listSize; ++i) { var item = this.__srcList.getItemAt(i); if((all || this.__srcHandler.isSelected(item)) && !this.__srcHandler.isDisabled(item) && this.__find(this.__tgtList, item) < 0) { this.__transferItem(domEvent, item); if (!this.__srcList.getDomObject().multiple && !all) { var nextIndex = i + 1; if (nextIndex < listSize) { this.__srcList.setSelectedIndex(nextIndex); } return; } } }};uiOptionTransfer_Suite.prototype.__transferItem = function(domEvent, item) { var clone = this.__srcHandler.clone(item); this.__srcHandler.setDisabled(item, true); this.__srcHandler.setSelected(item, false, domEvent); this.__tgtList.addItem(clone); this.__srcHandler.setSelected(clone, true, domEvent);};uiOptionTransfer_Suite.prototype.__find = function(group, needle) { var wrapper = uiHtml_SelectOptionWrapper.getInstance(); var listSize = group.size(); for(var i = 0; i < listSize; ++i) { var item = group.getItemAt(i); if(item.value == needle.value && item.text == needle.text) { return i; } } return -1;};uiOptionTransfer_Suite.prototype.__return = function(domEvent, all) { var listSize = this.__tgtList.size(); for (var i = listSize - 1; i >= 0; --i) { var item = this.__tgtList.getItemAt(i); if (all || this.__tgtHandler.isSelected(item)) { var index = this.__find(this.__srcList, item); if(index >= 0) { this.__returnItem(domEvent, this.__srcList.getItemAt(index), i); } } }};uiOptionTransfer_Suite.prototype.__returnItem = function(domEvent, sourceItem, targetIndex) { this.__srcHandler.setDisabled(sourceItem, false); this.__srcHandler.setSelected(sourceItem, true, domEvent); this.__tgtList.removeItemAt(targetIndex);};uiOptionTransfer_Suite.prototype._setTransferTrigger = function(trigger) { var suite = this; trigger.appendEventHandler("click", function(e) { suite.__transfer(e, false); });};uiOptionTransfer_Suite.prototype._setReturnTrigger = function(trigger) { var suite = this; trigger.appendEventHandler("click", function(e) { suite.__return(e, false); });};uiOptionTransfer_Suite.prototype._setTransferAllTrigger = function(trigger) { var suite = this; trigger.appendEventHandler("click", function(e) { suite.__transfer(e, true); });};uiOptionTransfer_Suite.prototype._setReturnAllTrigger = function(trigger) { var suite = this; trigger.appendEventHandler("click", function(e) { suite.__return(e, true); });};uiOptionTransfer_Suite.syncItems = function(srcList, tgtList) { srcList.enableOptionValueMapping(); var listSize = tgtList.size(); var srcHandler = srcList.getItemHandler(); for(var i = 0; i < listSize; ++i) { var tgtItem = tgtList.getItemAt(i); var srcItem = srcList.getItemByValue(tgtItem.value); if (srcItem != null) { srcHandler.setDisabled(srcItem, true); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -