Browse Source

Merge pull request #57 in FUI/fineui from ~GUY/fineui:master to master

* commit '531014f290d463e394f34839113c29c91423e11a':
  add
  add
  加个删除tab项的方法
  add
  add
  add
  add
es6
guy 8 years ago
parent
commit
1057fc7a13
  1. 27
      bi/base.js
  2. 10
      bi/case.js
  3. 2084
      bi/widget.js
  4. 2
      demo/js/widget/demo.multiselectcombo.js
  5. 27
      docs/base.js
  6. 10
      docs/case.js
  7. 2
      docs/demo.js
  8. 2084
      docs/widget.js
  9. 11
      src/base/combination/tab.js
  10. 228
      src/base/table/table.resizable.cell.js
  11. 444
      src/case/combo/bubblecombo/combo.bubble.js
  12. 347
      src/case/loader/sort.list.js
  13. 157
      src/case/trigger/trigger.editor.js

27
bi/base.js

@ -4825,6 +4825,17 @@ BI.Tab = BI.inherit(BI.Widget, {
} }
}, },
removeTab: function (cardname) {
var self = this, o = this.options;
BI.any(this.cardMap, function (name, card) {
if (BI.isEqual(name, (cardname + ""))) {
self.layout.deleteCardByName(name);
delete self.cardMap[name];
return true;
}
});
},
getSelect: function () { getSelect: function () {
return this.curr; return this.curr;
}, },
@ -32473,14 +32484,14 @@ BI.ResizableTableCell = BI.inherit(BI.Widget, {
function optimizeSize(s) { function optimizeSize(s) {
var optSize = BI.clamp(s, o.minSize, o.maxSize || Number.MAX_VALUE); var optSize = BI.clamp(s, o.minSize, o.maxSize || Number.MAX_VALUE);
if (o.suitableSize) { // if (o.suitableSize) {
if (Math.abs(o.suitableSize - optSize) < 5) { // if (Math.abs(o.suitableSize - optSize) < 5) {
optSize = o.suitableSize; // optSize = o.suitableSize;
self.handler.element.addClass("suitable"); // self.handler.element.addClass("suitable");
} else { // } else {
self.handler.element.removeClass("suitable"); // self.handler.element.removeClass("suitable");
} // }
} // }
return optSize; return optSize;
} }

10
bi/case.js

@ -4914,6 +4914,7 @@ BI.BubbleCombo = BI.inherit(BI.Widget, {
default: default:
break; break;
} }
this.triangle && this.triangle.destroy();
this.triangle = BI.createWidget(op, { this.triangle = BI.createWidget(op, {
type: "bi.center_adapt", type: "bi.center_adapt",
cls: "button-combo-triangle-wrapper", cls: "button-combo-triangle-wrapper",
@ -4974,6 +4975,7 @@ BI.BubbleCombo = BI.inherit(BI.Widget, {
_hideTriangle: function () { _hideTriangle: function () {
this.triangle && this.triangle.destroy(); this.triangle && this.triangle.destroy();
this.triangle = null;
this.combo.getView() && this.combo.getView().hideLine(); this.combo.getView() && this.combo.getView().hideLine();
}, },
@ -4986,10 +4988,6 @@ BI.BubbleCombo = BI.inherit(BI.Widget, {
this.combo && this.combo.showView(); this.combo && this.combo.showView();
}, },
hasView: function () {
return BI.isNotNull(this.combo.getView());
},
isViewVisible: function () { isViewVisible: function () {
return this.combo.isViewVisible(); return this.combo.isViewVisible();
} }
@ -9138,6 +9136,9 @@ BI.SortList = BI.inherit(BI.Widget, {
}, },
populate: function (items) { populate: function (items) {
if (items) {
arguments[0] = this._formatItems(items);
}
this.loader.populate.apply(this.loader, arguments); this.loader.populate.apply(this.loader, arguments);
}, },
@ -12346,6 +12347,7 @@ BI.EditorTrigger = BI.inherit(BI.Trigger, {
}, { }, {
el: { el: {
type: "bi.trigger_icon_button", type: "bi.trigger_icon_button",
cls: "bi-border-left",
width: o.triggerWidth width: o.triggerWidth
}, },
width: o.triggerWidth width: o.triggerWidth

2084
bi/widget.js

File diff suppressed because it is too large Load Diff

2
demo/js/widget/demo.multiselectcombo.js

@ -35,7 +35,7 @@ Demo.MultiSelectCombo = BI.inherit(BI.Widget, {
_itemsCreator: function (options, callback) { _itemsCreator: function (options, callback) {
var self = this; var self = this;
var items = Demo.MULTI_COMBO_ITEMS; var items = Demo.CONSTANTS.ITEMS;
var keywords = (options.keywords || []).slice(); var keywords = (options.keywords || []).slice();
if (options.keyword) { if (options.keyword) {
keywords.push(options.keyword); keywords.push(options.keyword);

27
docs/base.js

@ -4825,6 +4825,17 @@ BI.Tab = BI.inherit(BI.Widget, {
} }
}, },
removeTab: function (cardname) {
var self = this, o = this.options;
BI.any(this.cardMap, function (name, card) {
if (BI.isEqual(name, (cardname + ""))) {
self.layout.deleteCardByName(name);
delete self.cardMap[name];
return true;
}
});
},
getSelect: function () { getSelect: function () {
return this.curr; return this.curr;
}, },
@ -32473,14 +32484,14 @@ BI.ResizableTableCell = BI.inherit(BI.Widget, {
function optimizeSize(s) { function optimizeSize(s) {
var optSize = BI.clamp(s, o.minSize, o.maxSize || Number.MAX_VALUE); var optSize = BI.clamp(s, o.minSize, o.maxSize || Number.MAX_VALUE);
if (o.suitableSize) { // if (o.suitableSize) {
if (Math.abs(o.suitableSize - optSize) < 5) { // if (Math.abs(o.suitableSize - optSize) < 5) {
optSize = o.suitableSize; // optSize = o.suitableSize;
self.handler.element.addClass("suitable"); // self.handler.element.addClass("suitable");
} else { // } else {
self.handler.element.removeClass("suitable"); // self.handler.element.removeClass("suitable");
} // }
} // }
return optSize; return optSize;
} }

10
docs/case.js

@ -4914,6 +4914,7 @@ BI.BubbleCombo = BI.inherit(BI.Widget, {
default: default:
break; break;
} }
this.triangle && this.triangle.destroy();
this.triangle = BI.createWidget(op, { this.triangle = BI.createWidget(op, {
type: "bi.center_adapt", type: "bi.center_adapt",
cls: "button-combo-triangle-wrapper", cls: "button-combo-triangle-wrapper",
@ -4974,6 +4975,7 @@ BI.BubbleCombo = BI.inherit(BI.Widget, {
_hideTriangle: function () { _hideTriangle: function () {
this.triangle && this.triangle.destroy(); this.triangle && this.triangle.destroy();
this.triangle = null;
this.combo.getView() && this.combo.getView().hideLine(); this.combo.getView() && this.combo.getView().hideLine();
}, },
@ -4986,10 +4988,6 @@ BI.BubbleCombo = BI.inherit(BI.Widget, {
this.combo && this.combo.showView(); this.combo && this.combo.showView();
}, },
hasView: function () {
return BI.isNotNull(this.combo.getView());
},
isViewVisible: function () { isViewVisible: function () {
return this.combo.isViewVisible(); return this.combo.isViewVisible();
} }
@ -9138,6 +9136,9 @@ BI.SortList = BI.inherit(BI.Widget, {
}, },
populate: function (items) { populate: function (items) {
if (items) {
arguments[0] = this._formatItems(items);
}
this.loader.populate.apply(this.loader, arguments); this.loader.populate.apply(this.loader, arguments);
}, },
@ -12346,6 +12347,7 @@ BI.EditorTrigger = BI.inherit(BI.Trigger, {
}, { }, {
el: { el: {
type: "bi.trigger_icon_button", type: "bi.trigger_icon_button",
cls: "bi-border-left",
width: o.triggerWidth width: o.triggerWidth
}, },
width: o.triggerWidth width: o.triggerWidth

2
docs/demo.js

@ -5995,7 +5995,7 @@ Demo.MultiSelectCombo = BI.inherit(BI.Widget, {
_itemsCreator: function (options, callback) { _itemsCreator: function (options, callback) {
var self = this; var self = this;
var items = Demo.MULTI_COMBO_ITEMS; var items = Demo.CONSTANTS.ITEMS;
var keywords = (options.keywords || []).slice(); var keywords = (options.keywords || []).slice();
if (options.keyword) { if (options.keyword) {
keywords.push(options.keyword); keywords.push(options.keyword);

2084
docs/widget.js

File diff suppressed because it is too large Load Diff

11
src/base/combination/tab.js

@ -93,6 +93,17 @@ BI.Tab = BI.inherit(BI.Widget, {
} }
}, },
removeTab: function (cardname) {
var self = this, o = this.options;
BI.any(this.cardMap, function (name, card) {
if (BI.isEqual(name, (cardname + ""))) {
self.layout.deleteCardByName(name);
delete self.cardMap[name];
return true;
}
});
},
getSelect: function () { getSelect: function () {
return this.curr; return this.curr;
}, },

228
src/base/table/table.resizable.cell.js

@ -1,115 +1,115 @@
/** /**
* *
* 表格单元格 * 表格单元格
* *
* Created by GUY on 2016/1/12. * Created by GUY on 2016/1/12.
* @class BI.ResizableTableCell * @class BI.ResizableTableCell
* @extends BI.Widget * @extends BI.Widget
*/ */
BI.ResizableTableCell = BI.inherit(BI.Widget, { BI.ResizableTableCell = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.ResizableTableCell.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.ResizableTableCell.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-resizable-table-cell", baseCls: "bi-resizable-table-cell",
cell: {}, cell: {},
minSize: 15, minSize: 15,
// suitableSize, // suitableSize,
maxSize: Number.MAX_VALUE, maxSize: Number.MAX_VALUE,
start: BI.emptyFn, start: BI.emptyFn,
resize: BI.emptyFn, resize: BI.emptyFn,
stop: BI.emptyFn stop: BI.emptyFn
}) })
}, },
_init: function () { _init: function () {
BI.ResizableTableCell.superclass._init.apply(this, arguments); BI.ResizableTableCell.superclass._init.apply(this, arguments);
var self = this, o = this.options; var self = this, o = this.options;
this.cell = BI.createWidget(BI.extend({type: "bi.label"}, o.cell, {width: o.width, height: o.height})); this.cell = BI.createWidget(BI.extend({type: "bi.label"}, o.cell, {width: o.width, height: o.height}));
var startDrag = false; var startDrag = false;
var size = 0, offset = 0, defaultSize = o.width; var size = 0, offset = 0, defaultSize = o.width;
function optimizeSize(s) { function optimizeSize(s) {
var optSize = BI.clamp(s, o.minSize, o.maxSize || Number.MAX_VALUE); var optSize = BI.clamp(s, o.minSize, o.maxSize || Number.MAX_VALUE);
if (o.suitableSize) { // if (o.suitableSize) {
if (Math.abs(o.suitableSize - optSize) < 5) { // if (Math.abs(o.suitableSize - optSize) < 5) {
optSize = o.suitableSize; // optSize = o.suitableSize;
self.handler.element.addClass("suitable"); // self.handler.element.addClass("suitable");
} else { // } else {
self.handler.element.removeClass("suitable"); // self.handler.element.removeClass("suitable");
} // }
} // }
return optSize; return optSize;
} }
var mouseMoveTracker = new BI.MouseMoveTracker(function (deltaX, deltaY) { var mouseMoveTracker = new BI.MouseMoveTracker(function (deltaX, deltaY) {
if (mouseMoveTracker.isDragging()) { if (mouseMoveTracker.isDragging()) {
startDrag = true; startDrag = true;
offset += deltaX; offset += deltaX;
size = optimizeSize(defaultSize + offset); size = optimizeSize(defaultSize + offset);
self.handler.element.addClass("dragging"); self.handler.element.addClass("dragging");
o.resize(size); o.resize(size);
} }
}, function () { }, function () {
if (startDrag === true) { if (startDrag === true) {
size = optimizeSize(size); size = optimizeSize(size);
o.stop(size); o.stop(size);
size = 0; size = 0;
offset = 0; offset = 0;
defaultSize = o.width; defaultSize = o.width;
startDrag = false; startDrag = false;
} }
self.handler.element.removeClass("dragging"); self.handler.element.removeClass("dragging");
self.handler.element.removeClass("suitable"); self.handler.element.removeClass("suitable");
mouseMoveTracker.releaseMouseMoves(); mouseMoveTracker.releaseMouseMoves();
}, document); }, document);
this.handler = BI.createWidget({ this.handler = BI.createWidget({
type: "bi.absolute", type: "bi.absolute",
cls: "resizable-table-cell-resizer-container", cls: "resizable-table-cell-resizer-container",
width: 6, width: 6,
items: [{ items: [{
el: { el: {
type: "bi.layout", type: "bi.layout",
cls: "resizable-table-cell-resizer-knob", cls: "resizable-table-cell-resizer-knob",
width: 4 width: 4
}, },
right: 0, right: 0,
top: 0, top: 0,
bottom: 0 bottom: 0
}] }]
}); });
this.handler.element.on("mousedown", function (event) { this.handler.element.on("mousedown", function (event) {
defaultSize = o.width; defaultSize = o.width;
optimizeSize(defaultSize); optimizeSize(defaultSize);
mouseMoveTracker.captureMouseMoves(event); mouseMoveTracker.captureMouseMoves(event);
}); });
BI.createWidget({ BI.createWidget({
type: "bi.absolute", type: "bi.absolute",
element: this, element: this,
items: [{ items: [{
el: this.cell, el: this.cell,
left: 0, left: 0,
right: 0, right: 0,
top: 0, top: 0,
bottom: 0 bottom: 0
}, { }, {
el: this.handler, el: this.handler,
right: 0, right: 0,
top: 0, top: 0,
bottom: 0 bottom: 0
}] }]
}) })
}, },
setWidth: function (width) { setWidth: function (width) {
BI.ResizableTableCell.superclass.setWidth.apply(this, arguments); BI.ResizableTableCell.superclass.setWidth.apply(this, arguments);
var o = this.options; var o = this.options;
this.cell.setWidth(o.width); this.cell.setWidth(o.width);
}, },
setHeight: function (height) { setHeight: function (height) {
BI.ResizableTableCell.superclass.setHeight.apply(this, arguments); BI.ResizableTableCell.superclass.setHeight.apply(this, arguments);
var o = this.options; var o = this.options;
this.cell.setHeight(o.height); this.cell.setHeight(o.height);
} }
}); });
BI.shortcut("bi.resizable_table_cell", BI.ResizableTableCell); BI.shortcut("bi.resizable_table_cell", BI.ResizableTableCell);

444
src/case/combo/bubblecombo/combo.bubble.js

@ -1,224 +1,222 @@
/** /**
* Created by GUY on 2017/2/8. * Created by GUY on 2017/2/8.
* *
* @class BI.BubbleCombo * @class BI.BubbleCombo
* @extends BI.Widget * @extends BI.Widget
*/ */
BI.BubbleCombo = BI.inherit(BI.Widget, { BI.BubbleCombo = BI.inherit(BI.Widget, {
_const: { _const: {
TRIANGLE_LENGTH: 6 TRIANGLE_LENGTH: 6
}, },
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.BubbleCombo.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.BubbleCombo.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-bubble-combo", baseCls: "bi-bubble-combo",
trigger: "click", trigger: "click",
toggle: true, toggle: true,
direction: "bottom", //top||bottom||left||right||top,left||top,right||bottom,left||bottom,right direction: "bottom", //top||bottom||left||right||top,left||top,right||bottom,left||bottom,right
isDefaultInit: false, isDefaultInit: false,
destroyWhenHide: false, destroyWhenHide: false,
isNeedAdjustHeight: true,//是否需要高度调整 isNeedAdjustHeight: true,//是否需要高度调整
isNeedAdjustWidth: true, isNeedAdjustWidth: true,
stopPropagation: false, stopPropagation: false,
adjustLength: 0,//调整的距离 adjustLength: 0,//调整的距离
// adjustXOffset: 0, // adjustXOffset: 0,
// adjustYOffset: 10, // adjustYOffset: 10,
hideChecker: BI.emptyFn, hideChecker: BI.emptyFn,
offsetStyle: "left", //left,right,center offsetStyle: "left", //left,right,center
el: {}, el: {},
popup: {}, popup: {},
}) })
}, },
_init: function () { _init: function () {
BI.BubbleCombo.superclass._init.apply(this, arguments); BI.BubbleCombo.superclass._init.apply(this, arguments);
var self = this, o = this.options; var self = this, o = this.options;
this.combo = BI.createWidget({ this.combo = BI.createWidget({
type: "bi.combo", type: "bi.combo",
element: this, element: this,
trigger: o.trigger, trigger: o.trigger,
toggle: o.toggle, toggle: o.toggle,
direction: o.direction, direction: o.direction,
isDefaultInit: o.isDefaultInit, isDefaultInit: o.isDefaultInit,
destroyWhenHide: o.destroyWhenHide, destroyWhenHide: o.destroyWhenHide,
isNeedAdjustHeight: o.isNeedAdjustHeight, isNeedAdjustHeight: o.isNeedAdjustHeight,
isNeedAdjustWidth: o.isNeedAdjustWidth, isNeedAdjustWidth: o.isNeedAdjustWidth,
adjustLength: this._getAdjustLength(), adjustLength: this._getAdjustLength(),
stopPropagation: o.stopPropagation, stopPropagation: o.stopPropagation,
adjustXOffset: 0, adjustXOffset: 0,
adjustYOffset: 0, adjustYOffset: 0,
hideChecker: o.hideChecker, hideChecker: o.hideChecker,
offsetStyle: o.offsetStyle, offsetStyle: o.offsetStyle,
el: o.el, el: o.el,
popup: BI.extend({ popup: BI.extend({
type: "bi.bubble_popup_view" type: "bi.bubble_popup_view"
}, o.popup), }, o.popup),
}); });
this.combo.on(BI.Combo.EVENT_TRIGGER_CHANGE, function () { this.combo.on(BI.Combo.EVENT_TRIGGER_CHANGE, function () {
self.fireEvent(BI.BubbleCombo.EVENT_TRIGGER_CHANGE, arguments); self.fireEvent(BI.BubbleCombo.EVENT_TRIGGER_CHANGE, arguments);
}); });
this.combo.on(BI.Combo.EVENT_CHANGE, function () { this.combo.on(BI.Combo.EVENT_CHANGE, function () {
self.fireEvent(BI.BubbleCombo.EVENT_CHANGE, arguments); self.fireEvent(BI.BubbleCombo.EVENT_CHANGE, arguments);
}); });
this.combo.on(BI.Combo.EVENT_EXPAND, function () { this.combo.on(BI.Combo.EVENT_EXPAND, function () {
self.fireEvent(BI.BubbleCombo.EVENT_EXPAND, arguments); self.fireEvent(BI.BubbleCombo.EVENT_EXPAND, arguments);
}); });
this.combo.on(BI.Combo.EVENT_COLLAPSE, function () { this.combo.on(BI.Combo.EVENT_COLLAPSE, function () {
self.fireEvent(BI.BubbleCombo.EVENT_COLLAPSE, arguments); self.fireEvent(BI.BubbleCombo.EVENT_COLLAPSE, arguments);
}); });
this.combo.on(BI.Combo.EVENT_AFTER_INIT, function () { this.combo.on(BI.Combo.EVENT_AFTER_INIT, function () {
self.fireEvent(BI.BubbleCombo.EVENT_AFTER_INIT, arguments); self.fireEvent(BI.BubbleCombo.EVENT_AFTER_INIT, arguments);
}); });
this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () { this.combo.on(BI.Combo.EVENT_BEFORE_POPUPVIEW, function () {
self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW, arguments); self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW, arguments);
}); });
this.combo.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () { this.combo.on(BI.Combo.EVENT_AFTER_POPUPVIEW, function () {
self._showTriangle(); self._showTriangle();
self.fireEvent(BI.BubbleCombo.EVENT_AFTER_POPUPVIEW, arguments); self.fireEvent(BI.BubbleCombo.EVENT_AFTER_POPUPVIEW, arguments);
}); });
this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW, function () { this.combo.on(BI.Combo.EVENT_BEFORE_HIDEVIEW, function () {
self._hideTriangle(); self._hideTriangle();
self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW, arguments); self.fireEvent(BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW, arguments);
}); });
this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW, function () { this.combo.on(BI.Combo.EVENT_AFTER_HIDEVIEW, function () {
self.fireEvent(BI.BubbleCombo.EVENT_AFTER_HIDEVIEW, arguments); self.fireEvent(BI.BubbleCombo.EVENT_AFTER_HIDEVIEW, arguments);
}); });
}, },
_getAdjustLength: function () { _getAdjustLength: function () {
return this._const.TRIANGLE_LENGTH + this.options.adjustLength; return this._const.TRIANGLE_LENGTH + this.options.adjustLength;
}, },
_createTriangle: function (direction) { _createTriangle: function (direction) {
var pos = {}, op = {}; var pos = {}, op = {};
var adjustLength = this.options.adjustLength; var adjustLength = this.options.adjustLength;
var offset = this.element.offset(); var offset = this.element.offset();
var left = offset.left, right = offset.left + this.element.outerWidth(); var left = offset.left, right = offset.left + this.element.outerWidth();
var top = offset.top, bottom = offset.top + this.element.outerHeight(); var top = offset.top, bottom = offset.top + this.element.outerHeight();
switch (direction) { switch (direction) {
case "left": case "left":
pos = { pos = {
top: top, top: top,
height: this.element.outerHeight(), height: this.element.outerHeight(),
left: left - adjustLength - this._const.TRIANGLE_LENGTH left: left - adjustLength - this._const.TRIANGLE_LENGTH
}; };
op = {width: this._const.TRIANGLE_LENGTH}; op = {width: this._const.TRIANGLE_LENGTH};
break; break;
case "right": case "right":
pos = { pos = {
top: top, top: top,
height: this.element.outerHeight(), height: this.element.outerHeight(),
left: right + adjustLength left: right + adjustLength
}; };
op = {width: this._const.TRIANGLE_LENGTH}; op = {width: this._const.TRIANGLE_LENGTH};
break; break;
case "top": case "top":
pos = { pos = {
left: left, left: left,
width: this.element.outerWidth(), width: this.element.outerWidth(),
top: top - adjustLength - this._const.TRIANGLE_LENGTH top: top - adjustLength - this._const.TRIANGLE_LENGTH
}; };
op = {height: this._const.TRIANGLE_LENGTH}; op = {height: this._const.TRIANGLE_LENGTH};
break; break;
case "bottom": case "bottom":
pos = { pos = {
left: left, left: left,
width: this.element.outerWidth(), width: this.element.outerWidth(),
top: bottom + adjustLength top: bottom + adjustLength
}; };
op = {height: this._const.TRIANGLE_LENGTH}; op = {height: this._const.TRIANGLE_LENGTH};
break; break;
default: default:
break; break;
} }
this.triangle = BI.createWidget(op, { this.triangle && this.triangle.destroy();
type: "bi.center_adapt", this.triangle = BI.createWidget(op, {
cls: "button-combo-triangle-wrapper", type: "bi.center_adapt",
items: [{ cls: "button-combo-triangle-wrapper",
type: "bi.layout", items: [{
cls: "bubble-combo-triangle-" + direction + " bi-high-light-border" type: "bi.layout",
}] cls: "bubble-combo-triangle-" + direction + " bi-high-light-border"
}); }]
pos.el = this.triangle; });
BI.createWidget({ pos.el = this.triangle;
type: "bi.absolute", BI.createWidget({
element: this, type: "bi.absolute",
items: [pos] element: this,
}) items: [pos]
}, })
},
_createLeftTriangle: function () {
this._createTriangle("left"); _createLeftTriangle: function () {
}, this._createTriangle("left");
},
_createRightTriangle: function () {
this._createTriangle("right"); _createRightTriangle: function () {
}, this._createTriangle("right");
},
_createTopTriangle: function () {
this._createTriangle("top"); _createTopTriangle: function () {
}, this._createTriangle("top");
},
_createBottomTriangle: function () {
this._createTriangle("bottom"); _createBottomTriangle: function () {
}, this._createTriangle("bottom");
},
_showTriangle: function () {
var pos = this.combo.getPopupPosition(); _showTriangle: function () {
switch (pos.dir) { var pos = this.combo.getPopupPosition();
case "left,top": switch (pos.dir) {
case "left,bottom": case "left,top":
this._createLeftTriangle(); case "left,bottom":
this.combo.getView().showLine("right"); this._createLeftTriangle();
break; this.combo.getView().showLine("right");
case "right,top": break;
case "right,bottom": case "right,top":
this._createRightTriangle(); case "right,bottom":
this.combo.getView().showLine("left"); this._createRightTriangle();
break; this.combo.getView().showLine("left");
case "top,left": break;
case "top,right": case "top,left":
this._createTopTriangle(); case "top,right":
this.combo.getView().showLine("bottom"); this._createTopTriangle();
break; this.combo.getView().showLine("bottom");
case "bottom,left": break;
case "bottom,right": case "bottom,left":
this._createBottomTriangle(); case "bottom,right":
this.combo.getView().showLine("top"); this._createBottomTriangle();
break; this.combo.getView().showLine("top");
} break;
}, }
},
_hideTriangle: function () {
this.triangle && this.triangle.destroy(); _hideTriangle: function () {
this.combo.getView() && this.combo.getView().hideLine(); this.triangle && this.triangle.destroy();
}, this.triangle = null;
this.combo.getView() && this.combo.getView().hideLine();
hideView: function () { },
this._hideTriangle();
this.combo && this.combo.hideView(); hideView: function () {
}, this._hideTriangle();
this.combo && this.combo.hideView();
showView: function () { },
this.combo && this.combo.showView();
}, showView: function () {
this.combo && this.combo.showView();
hasView: function () { },
return BI.isNotNull(this.combo.getView());
}, isViewVisible: function () {
return this.combo.isViewVisible();
isViewVisible: function () { }
return this.combo.isViewVisible(); });
}
}); BI.BubbleCombo.EVENT_TRIGGER_CHANGE = "EVENT_TRIGGER_CHANGE";
BI.BubbleCombo.EVENT_CHANGE = "EVENT_CHANGE";
BI.BubbleCombo.EVENT_TRIGGER_CHANGE = "EVENT_TRIGGER_CHANGE"; BI.BubbleCombo.EVENT_EXPAND = "EVENT_EXPAND";
BI.BubbleCombo.EVENT_CHANGE = "EVENT_CHANGE"; BI.BubbleCombo.EVENT_COLLAPSE = "EVENT_COLLAPSE";
BI.BubbleCombo.EVENT_EXPAND = "EVENT_EXPAND"; BI.BubbleCombo.EVENT_AFTER_INIT = "EVENT_AFTER_INIT";
BI.BubbleCombo.EVENT_COLLAPSE = "EVENT_COLLAPSE";
BI.BubbleCombo.EVENT_AFTER_INIT = "EVENT_AFTER_INIT";
BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
BI.BubbleCombo.EVENT_AFTER_POPUPVIEW = "EVENT_AFTER_POPUPVIEW";
BI.BubbleCombo.EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW"; BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW = "EVENT_BEFORE_HIDEVIEW";
BI.BubbleCombo.EVENT_AFTER_POPUPVIEW = "EVENT_AFTER_POPUPVIEW"; BI.BubbleCombo.EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
BI.BubbleCombo.EVENT_BEFORE_HIDEVIEW = "EVENT_BEFORE_HIDEVIEW";
BI.BubbleCombo.EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
BI.shortcut("bi.bubble_combo", BI.BubbleCombo); BI.shortcut("bi.bubble_combo", BI.BubbleCombo);

347
src/case/loader/sort.list.js

@ -1,173 +1,176 @@
/** /**
* Created by GUY on 2016/4/29. * Created by GUY on 2016/4/29.
* *
* @class BI.SortList * @class BI.SortList
* @extends BI.Widget * @extends BI.Widget
*/ */
BI.SortList = BI.inherit(BI.Widget, { BI.SortList = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.SortList.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.SortList.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-sort-list", baseCls: "bi-sort-list",
isDefaultInit: true,//是否默认初始化数据 isDefaultInit: true,//是否默认初始化数据
//下面是button_group的属性 //下面是button_group的属性
el: { el: {
type: "bi.button_group" type: "bi.button_group"
}, },
items: [], items: [],
itemsCreator: BI.emptyFn, itemsCreator: BI.emptyFn,
onLoaded: BI.emptyFn, onLoaded: BI.emptyFn,
//下面是分页信息 //下面是分页信息
count: false, count: false,
next: {}, next: {},
hasNext: BI.emptyFn hasNext: BI.emptyFn
//containment: this.element, //containment: this.element,
//connectWith: ".bi-sort-list", //connectWith: ".bi-sort-list",
}) })
}, },
_init: function () { _init: function () {
BI.SortList.superclass._init.apply(this, arguments); BI.SortList.superclass._init.apply(this, arguments);
var self = this, o = this.options; var self = this, o = this.options;
this.loader = BI.createWidget({ this.loader = BI.createWidget({
type: "bi.list_loader", type: "bi.list_loader",
element: this, element: this,
isDefaultInit: o.isDefaultInit, isDefaultInit: o.isDefaultInit,
el: o.el, el: o.el,
items: this._formatItems(o.items), items: this._formatItems(o.items),
itemsCreator: function (op, callback) { itemsCreator: function (op, callback) {
o.itemsCreator(op, function (items) { o.itemsCreator(op, function (items) {
callback(self._formatItems(items)); callback(self._formatItems(items));
}); });
}, },
onLoaded: o.onLoaded, onLoaded: o.onLoaded,
count: o.count, count: o.count,
next: o.next, next: o.next,
hasNext: o.hasNext hasNext: o.hasNext
}); });
this.loader.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) { this.loader.on(BI.Controller.EVENT_CHANGE, function (type, value, obj) {
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
if (type === BI.Events.CLICK) { if (type === BI.Events.CLICK) {
self.fireEvent(BI.SortList.EVENT_CHANGE, value, obj); self.fireEvent(BI.SortList.EVENT_CHANGE, value, obj);
} }
}); });
this.loader.element.sortable({ this.loader.element.sortable({
containment: o.containment || this.element, containment: o.containment || this.element,
connectWith: o.connectWith || ".bi-sort-list", connectWith: o.connectWith || ".bi-sort-list",
items: ".sort-item", items: ".sort-item",
cursor: o.cursor || "drag", cursor: o.cursor || "drag",
tolerance: o.tolerance || "intersect", tolerance: o.tolerance || "intersect",
placeholder: { placeholder: {
element: function ($currentItem) { element: function ($currentItem) {
var holder = BI.createWidget({ var holder = BI.createWidget({
type: "bi.layout", type: "bi.layout",
cls: "bi-sortable-holder", cls: "bi-sortable-holder",
height: $currentItem.outerHeight() height: $currentItem.outerHeight()
}); });
holder.element.css({ holder.element.css({
"margin-left": $currentItem.css("margin-left"), "margin-left": $currentItem.css("margin-left"),
"margin-right": $currentItem.css("margin-right"), "margin-right": $currentItem.css("margin-right"),
"margin-top": $currentItem.css("margin-top"), "margin-top": $currentItem.css("margin-top"),
"margin-bottom": $currentItem.css("margin-bottom"), "margin-bottom": $currentItem.css("margin-bottom"),
"margin": $currentItem.css("margin") "margin": $currentItem.css("margin")
}); });
return holder.element; return holder.element;
}, },
update: function () { update: function () {
} }
}, },
start: function (event, ui) { start: function (event, ui) {
}, },
stop: function (event, ui) { stop: function (event, ui) {
self.fireEvent(BI.SortList.EVENT_CHANGE); self.fireEvent(BI.SortList.EVENT_CHANGE);
}, },
over: function (event, ui) { over: function (event, ui) {
} }
}); });
}, },
_formatItems: function (items) { _formatItems: function (items) {
BI.each(items, function (i, item) { BI.each(items, function (i, item) {
item = BI.stripEL(item); item = BI.stripEL(item);
item.cls = item.cls ? item.cls + " sort-item" : "sort-item"; item.cls = item.cls ? item.cls + " sort-item" : "sort-item";
item.attributes = { item.attributes = {
sorted: item.value sorted: item.value
}; };
}); });
return items; return items;
}, },
hasNext: function () { hasNext: function () {
return this.loader.hasNext(); return this.loader.hasNext();
}, },
addItems: function (items) { addItems: function (items) {
this.loader.addItems(items); this.loader.addItems(items);
}, },
populate: function (items) { populate: function (items) {
this.loader.populate.apply(this.loader, arguments); if (items) {
}, arguments[0] = this._formatItems(items);
}
empty: function () { this.loader.populate.apply(this.loader, arguments);
this.loader.empty(); },
},
empty: function () {
setNotSelectedValue: function () { this.loader.empty();
this.loader.setNotSelectedValue.apply(this.loader, arguments); },
},
setNotSelectedValue: function () {
getNotSelectedValue: function () { this.loader.setNotSelectedValue.apply(this.loader, arguments);
return this.loader.getNotSelectedValue(); },
},
getNotSelectedValue: function () {
setValue: function () { return this.loader.getNotSelectedValue();
this.loader.setValue.apply(this.loader, arguments); },
},
setValue: function () {
getValue: function () { this.loader.setValue.apply(this.loader, arguments);
return this.loader.getValue(); },
},
getValue: function () {
getAllButtons: function () { return this.loader.getValue();
return this.loader.getAllButtons(); },
},
getAllButtons: function () {
getAllLeaves: function () { return this.loader.getAllButtons();
return this.loader.getAllLeaves(); },
},
getAllLeaves: function () {
getSelectedButtons: function () { return this.loader.getAllLeaves();
return this.loader.getSelectedButtons(); },
},
getSelectedButtons: function () {
getNotSelectedButtons: function () { return this.loader.getSelectedButtons();
return this.loader.getNotSelectedButtons(); },
},
getNotSelectedButtons: function () {
getIndexByValue: function (value) { return this.loader.getNotSelectedButtons();
return this.loader.getIndexByValue(value); },
},
getIndexByValue: function (value) {
getNodeById: function (id) { return this.loader.getIndexByValue(value);
return this.loader.getNodeById(id); },
},
getNodeById: function (id) {
getNodeByValue: function (value) { return this.loader.getNodeById(id);
return this.loader.getNodeByValue(value); },
},
getNodeByValue: function (value) {
getSortedValues: function () { return this.loader.getNodeByValue(value);
return this.loader.element.sortable("toArray", {attribute: "sorted"}); },
}
}); getSortedValues: function () {
BI.SortList.EVENT_CHANGE = "EVENT_CHANGE"; return this.loader.element.sortable("toArray", {attribute: "sorted"});
}
});
BI.SortList.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.sort_list", BI.SortList); BI.shortcut("bi.sort_list", BI.SortList);

157
src/case/trigger/trigger.editor.js

@ -1,79 +1,80 @@
/** /**
* 文本输入框trigger * 文本输入框trigger
* *
* Created by GUY on 2015/9/15. * Created by GUY on 2015/9/15.
* @class BI.EditorTrigger * @class BI.EditorTrigger
* @extends BI.Trigger * @extends BI.Trigger
*/ */
BI.EditorTrigger = BI.inherit(BI.Trigger, { BI.EditorTrigger = BI.inherit(BI.Trigger, {
_const: { _const: {
hgap: 4 hgap: 4
}, },
_defaultConfig: function () { _defaultConfig: function () {
var conf = BI.EditorTrigger.superclass._defaultConfig.apply(this, arguments); var conf = BI.EditorTrigger.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, { return BI.extend(conf, {
baseCls: (conf.baseCls || "") + " bi-editor-trigger bi-border", baseCls: (conf.baseCls || "") + " bi-editor-trigger bi-border",
height: 30, height: 30,
validationChecker: BI.emptyFn, validationChecker: BI.emptyFn,
quitChecker: BI.emptyFn, quitChecker: BI.emptyFn,
allowBlank: false, allowBlank: false,
watermark: "", watermark: "",
errorText: "", errorText: "",
triggerWidth: 30 triggerWidth: 30
}); });
}, },
_init: function () { _init: function () {
this.options.height -= 2; this.options.height -= 2;
BI.EditorTrigger.superclass._init.apply(this, arguments); BI.EditorTrigger.superclass._init.apply(this, arguments);
var self = this, o = this.options, c = this._const; var self = this, o = this.options, c = this._const;
this.editor = BI.createWidget({ this.editor = BI.createWidget({
type: "bi.sign_editor", type: "bi.sign_editor",
height: o.height, height: o.height,
value: o.value, value: o.value,
validationChecker: o.validationChecker, validationChecker: o.validationChecker,
quitChecker: o.quitChecker, quitChecker: o.quitChecker,
mouseOut: false, mouseOut: false,
allowBlank: o.allowBlank, allowBlank: o.allowBlank,
watermark: o.watermark, watermark: o.watermark,
errorText: o.errorText errorText: o.errorText
}); });
this.editor.on(BI.Controller.EVENT_CHANGE, function () { this.editor.on(BI.Controller.EVENT_CHANGE, function () {
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
}); });
this.editor.on(BI.SignEditor.EVENT_CHANGE, function () { this.editor.on(BI.SignEditor.EVENT_CHANGE, function () {
self.fireEvent(BI.EditorTrigger.EVENT_CHANGE, arguments); self.fireEvent(BI.EditorTrigger.EVENT_CHANGE, arguments);
}); });
BI.createWidget({ BI.createWidget({
element: this, element: this,
type: 'bi.htape', type: 'bi.htape',
items: [ items: [
{ {
el: this.editor el: this.editor
}, { }, {
el: { el: {
type: "bi.trigger_icon_button", type: "bi.trigger_icon_button",
width: o.triggerWidth cls: "bi-border-left",
}, width: o.triggerWidth
width: o.triggerWidth },
} width: o.triggerWidth
] }
}); ]
}, });
},
getValue: function () {
return this.editor.getValue(); getValue: function () {
}, return this.editor.getValue();
},
setValue: function (value) {
this.editor.setValue(value); setValue: function (value) {
}, this.editor.setValue(value);
},
setText: function (text) {
this.editor.setState(text); setText: function (text) {
} this.editor.setState(text);
}); }
BI.EditorTrigger.EVENT_CHANGE = "BI.EditorTrigger.EVENT_CHANGE"; });
BI.EditorTrigger.EVENT_CHANGE = "BI.EditorTrigger.EVENT_CHANGE";
BI.shortcut("bi.editor_trigger", BI.EditorTrigger); BI.shortcut("bi.editor_trigger", BI.EditorTrigger);
Loading…
Cancel
Save