Commit 931c4b3b authored by techird's avatar techird

context menu and shortcut key

parent 9fee6c1b
...@@ -24,36 +24,42 @@ ...@@ -24,36 +24,42 @@
/* 核心代码 */ /* 核心代码 */
'src/core/kityminder.js', 'src/core/kityminder.js',
'src/core/utils.js', 'src/core/utils.js',
'src/core/browser.js',
'src/core/minder.js',
'src/core/option.js',
'src/core/event.js',
'src/core/status.js',
'src/core/paper.js',
'src/core/readonly.js',
'src/core/command.js', 'src/core/command.js',
'src/core/node.js', 'src/core/node.js',
'src/core/module.js', 'src/core/module.js',
'src/core/event.js', 'src/core/data.js',
'src/core/minder.js', 'src/core/compatibility.js',
'src/core/minder.data.compatibility.js',
'src/core/minder.data.js',
'src/core/minder.event.js',
'src/core/minder.module.js',
'src/core/minder.command.js',
'src/core/minder.node.js',
'src/core/minder.select.js',
'src/core/keymap.js',
'src/core/minder.lang.js',
'src/core/minder.defaultoptions.js',
'src/core/minder.preference.js',
'src/core/browser.js',
'src/core/layout.js',
'src/core/connect.js',
'src/core/render.js', 'src/core/render.js',
'src/core/connect.js',
'src/core/theme.js', 'src/core/theme.js',
'src/core/layout.js',
'src/core/template.js', 'src/core/template.js',
'src/core/select.js',
'src/core/lang.js',
'src/core/defaultoptions.js',
'src/core/preference.js',
'src/core/keymap.js',
'src/core/key.js',
'src/core/contextmenu.js',
/* 布局 */ /* 布局 */
'src/layout/default.js', 'src/layout/mind.js',
'src/layout/default.connect.js',
'src/layout/bottom.js',
'src/layout/filetree.js', 'src/layout/filetree.js',
'src/layout/left.js', 'src/layout/btree.js',
'src/layout/right.js',
/* 连线 */
'src/connect/bezier.js',
'src/connect/poly.js',
'src/connect/arc.js',
'src/connect/under.js',
'src/connect/l.js',
/* 皮肤 */ /* 皮肤 */
'src/theme/default.js', 'src/theme/default.js',
...@@ -61,7 +67,10 @@ ...@@ -61,7 +67,10 @@
'src/theme/fresh.js', 'src/theme/fresh.js',
/* 模板 */ /* 模板 */
'src/template/default.js',
'src/template/structure.js', 'src/template/structure.js',
'src/template/filetree.js',
'src/template/right.js',
/* 模块 */ /* 模块 */
'src/module/node.js', 'src/module/node.js',
...@@ -76,7 +85,7 @@ ...@@ -76,7 +85,7 @@
'src/module/resource.js', 'src/module/resource.js',
'src/module/view.js', 'src/module/view.js',
'src/module/dragtree.js', 'src/module/dragtree.js',
'src/module/keyboard.js', 'src/module/keynav.js',
'src/module/select.js', 'src/module/select.js',
'src/module/history.js', 'src/module/history.js',
// 'src/module/editor.js', // 'src/module/editor.js',
...@@ -107,6 +116,7 @@ ...@@ -107,6 +116,7 @@
'ui/fuix.js', 'ui/fuix.js',
'ui/fiox.js', 'ui/fiox.js',
'ui/doc.js', 'ui/doc.js',
'ui/contextmenu.js',
/* UI 组件 */ /* UI 组件 */
'ui/widget/commandbutton.js', 'ui/widget/commandbutton.js',
...@@ -116,7 +126,7 @@ ...@@ -116,7 +126,7 @@
'ui/widget/friendlytimespan.js', 'ui/widget/friendlytimespan.js',
'ui/widget/locallist.js', 'ui/widget/locallist.js',
'ui/widget/netdiskfinder.js', 'ui/widget/netdiskfinder.js',
'ui/widget/menutab', 'ui/widget/menutab.js',
/* UI 菜单 */ /* UI 菜单 */
'ui/menu/menu.js', 'ui/menu/menu.js',
...@@ -165,9 +175,9 @@ ...@@ -165,9 +175,9 @@
'ui/ribbon/appearence/template.js', 'ui/ribbon/appearence/template.js',
'ui/ribbon/appearence/theme.js', 'ui/ribbon/appearence/theme.js',
'ui/ribbon/appearence/layout.js', 'ui/ribbon/appearence/layout.js',
'ui/ribbon/appearence/style.js',
'ui/ribbon/appearence/font.js', 'ui/ribbon/appearence/font.js',
'ui/ribbon/appearence/color.js', 'ui/ribbon/appearence/color.js',
'ui/ribbon/appearence/style.js',
/* UI Ribbon「视图」面板 */ /* UI Ribbon「视图」面板 */
'ui/ribbon/view/level.js' 'ui/ribbon/view/level.js'
......
...@@ -14,10 +14,6 @@ KityMinder.LANG['zh-cn'] = { ...@@ -14,10 +14,6 @@ KityMinder.LANG['zh-cn'] = {
'fresh-purple': '浪漫紫', 'fresh-purple': '浪漫紫',
'fresh-pink': '脑残粉' 'fresh-pink': '脑残粉'
}, },
'insert':{
//'maintopic':'插入中心主题',
'topic':'插入分支主题'
},
'maintopic': '中心主题', 'maintopic': '中心主题',
'topic': '分支主题', 'topic': '分支主题',
'panels': { 'panels': {
...@@ -38,6 +34,16 @@ KityMinder.LANG['zh-cn'] = { ...@@ -38,6 +34,16 @@ KityMinder.LANG['zh-cn'] = {
'attachment': '附件' 'attachment': '附件'
}, },
'ui': { 'ui': {
'command': {
'appendsiblingnode': '新建兄弟节点',
'appendchildnode': '新建子节点',
'removenode': '删除',
'editnode': '编辑',
'arrangeup': '上移',
'arrangedown': '下移',
'resetlayout': '整理布局'
},
'back': '返回', 'back': '返回',
'undo': '撤销', 'undo': '撤销',
......
Subproject commit 5e1e032d8537c97a91df533e238436ea9183bc0b Subproject commit 2100743a23276853658906608e093d1227739084
Subproject commit fee45f69801839d897e5e6245be93eaefafd615a Subproject commit d3163f9c639510b02bcce2c533072b8ef21bc9a6
KM.registerUI( 'contextmenu', function () {
var me = this;
function getItemByLabel(label){
var result;
utils.each(me.getContextmenu(),function(i,item){
if(item.label == label){
result = item;
return false;
}
});
return result;
}
var $menu = $.kmuidropmenu({
click:function(e,v,l){
var item = getItemByLabel(l);
if(item.exec){
item.exec.apply(me);
}else{
me.execCommand(item.cmdName);
}
this.hide();
}
});
me.$container.append($menu);
me.on('contextmenu', function(e) {
e.preventDefault();
});
me.on('mouseup', function (e) {
//e.preventDefault();
if (me.getStatus() == 'hand' || !e.isRightMB()) return;
var node = e.getTargetNode();
if(node){
this.removeAllSelectedNodes();
this.select(node);
}
var items = me.getContextmenu();
var data = [];
utils.each(items,function(i,item){
if(item.divider){
data.length && data.push(item);
return;
}
if(item.query){
if(item.query.apply(me) != -1)
data.push({
label:item.label,
value:item.cmdName
});
return;
}
if(me.queryCommandState(item.cmdName)!=-1){
data.push({
label:item.label,
value:item.cmdName
});
}
});
if(data.length){
var item = data[data.length-1];
if(item.divider){
data.pop();
}
var pos = e.getPosition('screen');
var offset = $(me.getPaper().container).offset();
pos.y -= offset.top;
pos.x -= offset.left;
$menu.kmui().setData({
data:data
}).position(pos).show();
}
});
me.on('afterclick',function(){
$menu.kmui().hide();
});
me.on('beforemousedown',function(e){
if(e.isRightMB()){
//e.stopPropagationImmediately();
}
});
} );
/** /**
* @fileOverview * @fileOverview
* *
* * 圆弧连线
* *
* @author: techird * @author: techird
* @copyright: Baidu FEX, 2014 * @copyright: Baidu FEX, 2014
*/ */
var connectMarker = new kity.Marker().pipe(function() {
var r = 7;
var dot = new kity.Circle(r - 1);
this.addShape(dot);
this.setRef(r - 1, 0).setViewBox(-r, -r, r + r, r + r).setWidth(r).setHeight(r);
this.dot = dot;
this.node.setAttribute('markerUnits', 'userSpaceOnUse');
});
$(document).ready(function(){ KityMinder.registerConnectProvider('arc', function(node, parent, connection, width, color) {
var box = node.getLayoutBox(),
pBox = parent.getLayoutBox();
var start, end, vector;
var abs = Math.abs;
var pathData = [];
var side = box.x > pBox.x ? 'right' : 'left';
node.getMinder().getPaper().addResource(connectMarker);
start = new kity.Point(pBox.cx, pBox.cy);
end = side == 'left' ?
new kity.Point(box.right + 2, box.cy) :
new kity.Point(box.left - 2, box.cy);
vector = kity.Vector.fromPoints(start, end);
pathData.push('M', start);
pathData.push('A', abs(vector.x), abs(vector.y), 0, 0, (vector.x * vector.y > 0 ? 0 : 1), end);
connection.setMarker(connectMarker);
connectMarker.dot.fill(color);
connection.setPathData(pathData);
}); });
\ No newline at end of file
...@@ -14,7 +14,7 @@ KityMinder.registerConnectProvider('bezier', function(node, parent, connection) ...@@ -14,7 +14,7 @@ KityMinder.registerConnectProvider('bezier', function(node, parent, connection)
pi = node.getLayoutVertexIn(); pi = node.getLayoutVertexIn();
// 连线矢量和方向 // 连线矢量和方向
var v = node.getLayoutVector().normalize(); var v = parent.getLayoutVector().normalize();
var r = Math.round; var r = Math.round;
var abs = Math.abs; var abs = Math.abs;
...@@ -29,7 +29,7 @@ KityMinder.registerConnectProvider('bezier', function(node, parent, connection) ...@@ -29,7 +29,7 @@ KityMinder.registerConnectProvider('bezier', function(node, parent, connection)
} else { } else {
// y - direction // y - direction
var hy = (pi.y + po.y) / 2; var hy = (pi.y + po.y) / 2;
pathData.push('C', po.x, hy, pi.y, hy, pi.x, pi.y); pathData.push('C', po.x, hy, pi.x, hy, pi.x, pi.y);
} }
connection.setMarker(null); connection.setMarker(null);
......
/**
* @fileOverview
*
* "L" 连线
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerConnectProvider('l', function(node, parent, connection) {
var po = parent.getLayoutVertexOut();
var pi = node.getLayoutVertexIn();
var vo = parent.getLayoutVectorOut();
var pathData = [];
var r = Math.round,
abs = Math.abs;
pathData.push('M', po.round());
if (abs(vo.x) > abs(vo.y)) {
pathData.push('H', r(pi.x));
} else {
pathData.push('V', pi.y);
}
pathData.push('L', pi);
connection.setPathData(pathData);
});
\ No newline at end of file
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
* @copyright: Baidu FEX, 2014 * @copyright: Baidu FEX, 2014
*/ */
KityMinder.registerConnectProvider('poly', function(node, parent, connection) { KityMinder.registerConnectProvider('poly', function(node, parent, connection, width) {
// 连线起点和终点 // 连线起点和终点
var po = parent.getLayoutVertexOut(), var po = parent.getLayoutVertexOut(),
pi = node.getLayoutVertexIn(); pi = node.getLayoutVertexIn();
// 连线矢量和方向 // 连线矢量和方向
var v = node.getLayoutVector().normalize(); var v = parent.getLayoutVectorOut().normalize();
var r = Math.round; var r = Math.round;
var abs = Math.abs; var abs = Math.abs;
...@@ -23,29 +23,29 @@ KityMinder.registerConnectProvider('poly', function(node, parent, connection) { ...@@ -23,29 +23,29 @@ KityMinder.registerConnectProvider('poly', function(node, parent, connection) {
pathData.push('M', r(po.x), r(po.y)); pathData.push('M', r(po.x), r(po.y));
switch (true) { switch (true) {
// left
case abs(v.x) > abs(v.y) && v.x < 0: case abs(v.x) > abs(v.y) && v.x < 0:
// left
pathData.push('h', -parent.getStyle('margin-left')); pathData.push('h', -parent.getStyle('margin-left'));
pathData.push('v', pi.y - po.y); pathData.push('v', pi.y - po.y);
pathData.push('H', pi.x); pathData.push('H', pi.x);
break; break;
// right
case abs(v.x) > abs(v.y) && v.x >= 0: case abs(v.x) > abs(v.y) && v.x >= 0:
// right
pathData.push('h', parent.getStyle('margin-right')); pathData.push('h', parent.getStyle('margin-right'));
pathData.push('v', pi.y - po.y); pathData.push('v', pi.y - po.y);
pathData.push('H', pi.x); pathData.push('H', pi.x);
break; break;
// top
case abs(v.x) <= abs(v.y) && v.y < 0: case abs(v.x) <= abs(v.y) && v.y < 0:
// top
pathData.push('v', -parent.getStyle('margin-top')); pathData.push('v', -parent.getStyle('margin-top'));
pathData.push('h', pi.x - po.x); pathData.push('h', pi.x - po.x);
pathData.push('V', pi.y); pathData.push('V', pi.y);
break; break;
// bottom
case abs(v.x) <= abs(v.y) && v.y >= 0: case abs(v.x) <= abs(v.y) && v.y >= 0:
// bottom
pathData.push('v', parent.getStyle('margin-bottom')); pathData.push('v', parent.getStyle('margin-bottom'));
pathData.push('h', pi.x - po.x); pathData.push('h', pi.x - po.x);
pathData.push('V', pi.y); pathData.push('V', pi.y);
......
/**
* @fileOverview
*
* 下划线连线
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerConnectProvider('under', function(node, parent, connection, width, color) {
var box = node.getLayoutBox(),
pBox = parent.getLayoutBox();
var start, end, vector;
var abs = Math.abs;
var pathData = [];
var side = box.x > pBox.x ? 'right' : 'left';
var radius = node.getStyle('connect-radius');
var underY = box.bottom + 3;
var startY = parent.getType() == 'sub' ? pBox.bottom + 3 : pBox.cy;
var p1, p2, p3, mx;
if (side == 'right') {
p1 = new kity.Point(pBox.right + 10, startY);
p2 = new kity.Point(box.left, underY);
p3 = new kity.Point(box.right + 10, underY);
} else {
p1 = new kity.Point(pBox.left - 10, startY);
p2 = new kity.Point(box.right, underY);
p3 = new kity.Point(box.left - 10, underY);
}
mx = (p1.x + p2.x) / 2;
pathData.push('M', p1);
pathData.push('C', mx, p1.y, mx, p2.y, p2);
pathData.push('L', p3);
connection.setMarker(null);
connection.setPathData(pathData);
});
\ No newline at end of file
/**
* 浏览器判断模块
* @file
* @module UE.browser
* @since 1.2.6.1
*/
/** /**
* 提供浏览器检测的模块 * 提供浏览器检测的模块
* @unfile * @unfile
......
...@@ -34,4 +34,86 @@ var Command = kity.createClass( "Command", { ...@@ -34,4 +34,86 @@ var Command = kity.createClass( "Command", {
isNeedUndo: function () { isNeedUndo: function () {
return true; return true;
} }
} ); } );
\ No newline at end of file
kity.extendClass(Minder, {
_getCommand: function (name) {
return this._commands[name.toLowerCase()];
},
_queryCommand: function (name, type, args) {
var cmd = this._getCommand(name);
if (cmd) {
var queryCmd = cmd['query' + type];
if (queryCmd)
return queryCmd.apply(cmd, [this].concat(args));
}
return 0;
},
queryCommandState: function (name) {
return this._queryCommand(name, "State", Utils.argsToArray(1));
},
queryCommandValue: function (name) {
return this._queryCommand(name, "Value", Utils.argsToArray(1));
},
execCommand: function (name) {
name = name.toLowerCase();
var cmdArgs = Utils.argsToArray(arguments, 1),
cmd, stoped, result, eventParams;
var me = this;
cmd = this._getCommand(name);
eventParams = {
command: cmd,
commandName: name.toLowerCase(),
commandArgs: cmdArgs
};
if (!cmd || !~this.queryCommandState(name)) {
return false;
}
if (!this._hasEnterExecCommand && cmd.isNeedUndo()) {
this._hasEnterExecCommand = true;
stoped = this._fire(new MinderEvent('beforeExecCommand', eventParams, true));
if (!stoped) {
//保存场景
this._fire(new MinderEvent('saveScene'));
this._fire(new MinderEvent("preExecCommand", eventParams, false));
result = cmd.execute.apply(cmd, [me].concat(cmdArgs));
this._fire(new MinderEvent('execCommand', eventParams, false));
//保存场景
this._fire(new MinderEvent('saveScene'));
if (cmd.isContentChanged()) {
this._firePharse(new MinderEvent('contentchange'));
}
if (cmd.isSelectionChanged()) {
this._firePharse(new MinderEvent('selectionchange'));
}
this._firePharse(new MinderEvent('interactchange'));
}
this._hasEnterExecCommand = false;
} else {
result = cmd.execute.apply(cmd, [me].concat(cmdArgs));
if (!this._hasEnterExecCommand) {
if (cmd.isSelectionChanged()) {
this._firePharse(new MinderEvent('selectionchange'));
}
this._firePharse(new MinderEvent('interactchange'));
}
}
return result === undefined ? null : result;
}
});
\ No newline at end of file
Utils.extend(KityMinder, { Utils.extend(KityMinder, {
compatibility: function(json) { compatibility: function(json) {
var version = json.version || '1.1.3'; var version = json.version || '1.1.3';
...@@ -10,6 +11,11 @@ Utils.extend(KityMinder, { ...@@ -10,6 +11,11 @@ Utils.extend(KityMinder, {
}); });
} }
/* 脑图数据升级 */
function c_120_130(json) {
}
/** /**
* 脑图数据升级 * 脑图数据升级
* v1.1.3 => v1.2.0 * v1.1.3 => v1.2.0
......
...@@ -21,7 +21,11 @@ utils.extend(KityMinder, { ...@@ -21,7 +21,11 @@ utils.extend(KityMinder, {
kity.extendClass(MinderNode, { kity.extendClass(MinderNode, {
getConnectProvider: function() { getConnectProvider: function() {
return KityMinder.getConnectProvider(); return KityMinder.getConnectProvider(this.getConnect());
},
getConnect: function() {
return null;
} }
}); });
...@@ -63,7 +67,7 @@ kity.extendClass(Minder, { ...@@ -63,7 +67,7 @@ kity.extendClass(Minder, {
} }
connection.setVisible(true); connection.setVisible(true);
var provider = KityMinder.getConnectProvider(parent.getLayout()); var provider = node.getConnectProvider();
var strokeColor = node.getStyle('connect-color') || 'white', var strokeColor = node.getStyle('connect-color') || 'white',
strokeWidth = node.getStyle('connect-width') || 2; strokeWidth = node.getStyle('connect-width') || 2;
...@@ -71,6 +75,12 @@ kity.extendClass(Minder, { ...@@ -71,6 +75,12 @@ kity.extendClass(Minder, {
connection.stroke(strokeColor, strokeWidth); connection.stroke(strokeColor, strokeWidth);
provider(node, parent, connection, strokeWidth, strokeColor); provider(node, parent, connection, strokeWidth, strokeColor);
if (strokeWidth % 2 === 0) {
connection.setTranslate(0.5, 0.5);
} else {
connection.setTranslate(0, 0);
}
} }
}); });
......
/**
* @fileOverview
*
* 添加模块上下文菜单支持
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
kity.extendClass(Minder, {
_initContextMenu: function() {
this.contextmenus = [];
},
addContextMenu: function(item) {
if (utils.isArray(item)) {
this.contextmenus = this.contextmenus.concat(item);
} else {
this.contextmenus.push(item);
}
return this;
},
getContextMenu: function() {
return this.contextmenus;
}
});
\ No newline at end of file
...@@ -91,7 +91,7 @@ kity.extendClass(Minder, { ...@@ -91,7 +91,7 @@ kity.extendClass(Minder, {
importNode(this._root, json, this); importNode(this._root, json, this);
this.setTemplate(json.template || null); this.setTemplate(json.template || 'default');
this.setTheme(json.theme || null); this.setTheme(json.theme || null);
this.refresh(); this.refresh();
......
...@@ -53,4 +53,147 @@ var MinderEvent = kity.createClass('MindEvent', { ...@@ -53,4 +53,147 @@ var MinderEvent = kity.createClass('MindEvent', {
isRightMB = this.originEvent.button == 2; isRightMB = this.originEvent.button == 2;
return isRightMB; return isRightMB;
} }
});
// 事件机制
kity.extendClass(Minder, {
_initEvents: function() {
this._eventCallbacks = {};
},
_bindEvents: function() {
this._bindPaperEvents();
this._bindKeyboardEvents();
},
_resetEvents: function() {
this._initEvents();
this._bindEvents();
},
// TODO: mousemove lazy bind
_bindPaperEvents: function() {
this._paper.on('click dblclick keydown keyup keypress paste mousedown contextmenu mouseup mousemove mousewheel DOMMouseScroll touchstart touchmove touchend dragenter dragleave drop', this._firePharse.bind(this));
if (window) {
window.addEventListener('resize', this._firePharse.bind(this));
window.addEventListener('blur', this._firePharse.bind(this));
}
this._renderTarget.onfocus = function() {
console.log('focus');
};
this._renderTarget.onblur = function() {
console.log('blur');
};
},
_bindKeyboardEvents: function() {
if ((navigator.userAgent.indexOf('iPhone') == -1) && (navigator.userAgent.indexOf('iPod') == -1) && (navigator.userAgent.indexOf('iPad') == -1)) {
//只能在这里做,要不无法触发
Utils.listen(document.body, 'keydown keyup keypress paste', this._firePharse.bind(this));
}
},
_firePharse: function(e) {
// //只读模式下强了所有的事件操作
// if(this.readOnly === true){
// return false;
// }
var beforeEvent, preEvent, executeEvent;
if (e.type == 'DOMMouseScroll') {
e.type = 'mousewheel';
e.wheelDelta = e.originEvent.wheelDelta = e.originEvent.detail * -10;
e.wheelDeltaX = e.originEvent.mozMovementX;
e.wheelDeltaY = e.originEvent.mozMovementY;
}
beforeEvent = new MinderEvent('before' + e.type, e, true);
if (this._fire(beforeEvent)) {
return;
}
preEvent = new MinderEvent('pre' + e.type, e, true);
executeEvent = new MinderEvent(e.type, e, true);
this._fire(preEvent) ||
this._fire(executeEvent) ||
this._fire(new MinderEvent('after' + e.type, e, false));
if (~'mousedown mouseup keydown keyup'.indexOf(e.type)) {
this._interactChange(e);
}
},
_interactChange: function(e) {
var minder = this;
clearTimeout(this._interactTimeout);
this._interactTimeout = setTimeout(function() {
var stoped = minder._fire(new MinderEvent('beforeinteractchange'));
if (stoped) {
return;
}
minder._fire(new MinderEvent('preinteractchange'));
minder._fire(new MinderEvent('interactchange'));
}, 20);
},
_listen: function(type, callback) {
var callbacks = this._eventCallbacks[type] || (this._eventCallbacks[type] = []);
callbacks.push(callback);
},
_fire: function(e) {
var status = this.getStatus();
var callbacks = this._eventCallbacks[e.type.toLowerCase()] || [];
if (status) {
callbacks = callbacks.concat(this._eventCallbacks[status + '.' + e.type.toLowerCase()] || []);
}
if (callbacks.length === 0) {
return;
}
var lastStatus = this.getStatus();
for (var i = 0; i < callbacks.length; i++) {
callbacks[i].call(this, e);
if (this.getStatus() != lastStatus || e.shouldStopPropagationImmediately()) {
break;
}
}
return e.shouldStopPropagation();
},
on: function(name, callback) {
var km = this;
utils.each(name.split(/\s+/), function(i, n) {
km._listen(n.toLowerCase(), callback);
});
return this;
},
off: function(name, callback) {
var types = name.split(/\s+/);
var i, j, callbacks, removeIndex;
for (i = 0; i < types.length; i++) {
callbacks = this._eventCallbacks[types[i].toLowerCase()];
if (callbacks) {
removeIndex = null;
for (j = 0; j < callbacks.length; j++) {
if (callbacks[j] == callback) {
removeIndex = j;
}
}
if (removeIndex !== null) {
callbacks.splice(removeIndex, 1);
}
}
}
},
fire: function(type, params) {
var e = new MinderEvent(type, params);
this._fire(e);
return this;
}
}); });
\ No newline at end of file
/**
* @fileOverview
*
* 添加快捷键支持
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
/**
* 计算包含 meta 键的 keycode
*
* @param {String|KeyEvent} unknown
*/
function getMetaKeyCode(unknown) {
var CTRL_MASK = 0x1000;
var ALT_MASK = 0x2000;
var SHIFT_MASK = 0x4000;
var metaKeyCode = 0;
if (typeof(unknown) == 'string') {
// unknown as string
unknown.toLowerCase().split(/\+\s*/).forEach(function(name) {
switch(name) {
case 'ctrl':
case 'cmd':
metaKeyCode |= CTRL_MASK;
break;
case 'alt':
metaKeyCode |= ALT_MASK;
break;
case 'shift':
metaKeyCode |= SHIFT_MASK;
break;
default:
metaKeyCode |= keymap[name];
}
});
} else {
// unknown as key event
if (unknown.ctrlKey || unknown.metaKey) {
metaKeyCode |= CTRL_MASK;
}
if (unknown.altKey) {
metaKeyCode |= ALT_MASK;
}
if (unknown.shiftKey) {
metaKeyCode |= SHIFT_MASK;
}
metaKeyCode |= unknown.keyCode;
}
return metaKeyCode;
}
kity.extendClass(MinderEvent, {
isShortcutKey: function(keyCombine) {
var keyEvent = this.originEvent;
if (!keyEvent) return false;
return getMetaKeyCode(keyCombine) == getMetaKeyCode(keyEvent);
}
});
kity.extendClass(Minder, {
_initShortcutKey: function() {
this._bindShortcutKeys();
},
_bindShortcutKeys: function() {
var map = this._shortcutKeys = {};
var has = 'hasOwnProperty';
this.on('keydown', function(e) {
for (var keys in map) {
if (!map[has](keys)) break;
if (e.isShortcutKey(keys)) {
map[keys]();
e.preventDefault();
}
}
});
},
addShortcut: function(keys, fn) {
var binds = this._shortcutKeys;
keys.split(/\|\s*/).forEach(function(combine) {
binds[combine] = fn;
});
},
addCommandShortcutKeys: function(cmd, keys) {
var binds = this._commandShortcutKeys || (this._commandShortcutKeys = {});
var obj = {},
km = this;
if (keys) {
obj[cmd] = keys;
} else {
obj = cmd;
}
var minder = this;
utils.each(obj, function(command, keys) {
binds[command] = keys;
minder.addShortcut(keys, function execCommandByShortcut() {
if (minder.queryCommandState(command) === 0) {
minder.execCommand(command);
}
});
});
},
getCommandShortcutKey: function(cmd) {
var binds = this._commandShortcutKeys;
return binds && binds[cmd] || null;
}
});
\ No newline at end of file
...@@ -13,6 +13,13 @@ Utils.extend(KityMinder, { ...@@ -13,6 +13,13 @@ Utils.extend(KityMinder, {
getLayoutList: function() { getLayoutList: function() {
return this._layout; return this._layout;
},
getLayoutInstance: function(name) {
var LayoutClass = KityMinder._layout[name];
var layout = new LayoutClass();
if (!layout) throw new Error('Missing Layout: ' + name);
return layout;
} }
}); });
...@@ -34,12 +41,26 @@ kity.extendClass(MinderNode, { ...@@ -34,12 +41,26 @@ kity.extendClass(MinderNode, {
return layout; return layout;
}, },
getOrder: function() { setLayout: function(name) {
return this.getData('order') || this.getIndex(); if (name) {
if (name == 'inherit') {
this.setData('layout');
} else {
this.setData('layout', name);
}
}
return this;
},
layout: function(name, duration) {
this.setLayout(name).getMinder().layout(duration);
return this;
}, },
setOrder: function(order) { getLayoutInstance: function() {
return this.setData('order', order); return KityMinder.getLayoutInstance(this.getLayout());
}, },
getOrderHint: function(refer) { getOrderHint: function(refer) {
...@@ -50,46 +71,93 @@ kity.extendClass(MinderNode, { ...@@ -50,46 +71,93 @@ kity.extendClass(MinderNode, {
return this.getLayoutInstance().getExpandPosition(); return this.getLayoutInstance().getExpandPosition();
}, },
getLayoutInstance: function() { /**
var LayoutClass = KityMinder._layout[this.getLayout()]; * 获取当前节点相对于父节点的布局变换
var layout = new LayoutClass(); */
return layout; getLayoutTransform: function() {
return this._layoutTransform || new kity.Matrix();
}, },
/** /**
* 设置当前节点相对于父节点的布局变换 * 第一轮布局计算后,获得的全局布局位置
*
* @return {[type]} [description]
*/ */
setLayoutTransform: function(matrix) { getGlobalLayoutTransformPreview: function() {
this._layoutTransform = matrix; var pMatrix = this.parent ? this.parent.getLayoutTransform() : new kity.Matrix();
var matrix = this.getLayoutTransform();
var offset = this.getLayoutOffset();
if (offset) {
matrix.translate(offset.x, offset.y);
}
return pMatrix.merge(matrix);
},
getLayoutPointPreview: function() {
return this.getGlobalLayoutTransformPreview().transformPoint(new kity.Point());
}, },
/** /**
* 获取当前节点相对于父节点的布局变换 * 获取节点相对于全局的布局变换
*/ */
getLayoutTransform: function() { getGlobalLayoutTransform: function() {
return this._layoutTransform || new kity.Matrix(); if (this._globalLayoutTransform) {
return this._globalLayoutTransform;
} else if (this.parent) {
return this.parent.getGlobalLayoutTransform();
} else {
return new kity.Matrix();
}
}, },
/** /**
* 设置当前节点相对于父节点的布局向量 * 设置当前节点相对于父节点的布局变换
*/ */
setLayoutVector: function(vector) { setLayoutTransform: function(matrix) {
this._layoutVector = vector; this._layoutTransform = matrix;
return this; return this;
}, },
/** /**
* 获取当前节点相对于父节点的布局向量 * 设置当前节点相对于全局的布局变换(冗余优化)
*/ */
getLayoutVector: function(vector) { setGlobalLayoutTransform: function(matrix) {
return this._layoutVector || new kity.Vector(); this.getRenderContainer().setMatrix(this._globalLayoutTransform = matrix);
return this;
}, },
/** setVertexIn: function(p) {
* 获取节点相对于全局的布局变换 this._vertexIn = p;
*/ },
getGlobalLayoutTransform: function() {
return this._lastLayoutTransform || new kity.Matrix(); setVertexOut: function(p) {
this._vertexOut = p;
},
getVertexIn: function() {
return this._vertexIn || new kity.Point();
},
getVertexOut: function() {
return this._vertexOut || new kity.Point();
},
setLayoutVectorIn: function(v) {
this._layoutVectorIn = v;
return this;
},
setLayoutVectorOut: function(v) {
this._layoutVectorOut = v;
return this;
},
getLayoutVectorIn: function() {
return this._layoutVectorIn || new kity.Vector();
},
getLayoutVectorOut: function() {
return this._layoutVectorOut || new kity.Vector();
}, },
getLayoutBox: function() { getLayoutBox: function() {
...@@ -103,37 +171,39 @@ kity.extendClass(MinderNode, { ...@@ -103,37 +171,39 @@ kity.extendClass(MinderNode, {
}, },
getLayoutOffset: function() { getLayoutOffset: function() {
var data = this.getData('layout_' + this.getLayout() + '_offset'); if (!this.parent) return new kity.Point();
// 影响当前节点位置的是父节点的布局
var data = this.getData('layout_' + this.parent.getLayout() + '_offset');
if (data) return new kity.Point(data.x, data.y); if (data) return new kity.Point(data.x, data.y);
return new kity.Point(); return new kity.Point();
}, },
setLayoutOffset: function(p) { setLayoutOffset: function(p) {
this.setData('layout_' + this.getLayout() + '_offset', p ? { if (!this.parent) return this;
if (p && !this.hasLayoutOffset()) {
var m = this.getLayoutTransform().m;
p = p.offset(m.e, m.f);
this.setLayoutTransform(null);
}
this.setData('layout_' + this.parent.getLayout() + '_offset', p ? {
x: p.x, x: p.x,
y: p.y y: p.y
} : null); } : null);
return this;
},
resetLayoutOffset: function() {
return this.setLayoutOffset(null);
},
setVertexIn: function(p) {
this._vertexIn = p;
},
setVertexOut: function(p) { return this;
this._vertexOut = p;
}, },
getVertexIn: function() { hasLayoutOffset: function() {
return this._vertexIn || new kity.Point(); return !!this.getData('layout_' + this.parent.getLayout() + '_offset');
}, },
getVertexOut: function() { resetLayoutOffset: function() {
return this._vertexOut || new kity.Point(); return this.setLayoutOffset(null);
}, },
getLayoutVertexIn: function() { getLayoutVertexIn: function() {
...@@ -153,20 +223,6 @@ kity.extendClass(MinderNode, { ...@@ -153,20 +223,6 @@ kity.extendClass(MinderNode, {
isLayoutRoot: function() { isLayoutRoot: function() {
return this.getData('layout') || this.isRoot(); return this.getData('layout') || this.isRoot();
},
layout: function(name, duration) {
if (name) {
if (name == 'inherit') {
this.setData('layout');
} else {
this.setData('layout', name);
}
}
this.getMinder().layout(duration);
return this;
} }
}); });
...@@ -175,6 +231,7 @@ kity.extendClass(Minder, { ...@@ -175,6 +231,7 @@ kity.extendClass(Minder, {
layout: function(duration) { layout: function(duration) {
this.getRoot().traverse(function(node) { this.getRoot().traverse(function(node) {
// clear last results
node.setLayoutTransform(null); node.setLayoutTransform(null);
}); });
...@@ -189,9 +246,15 @@ kity.extendClass(Minder, { ...@@ -189,9 +246,15 @@ kity.extendClass(Minder, {
} }
var layout = node.getLayoutInstance(); var layout = node.getLayoutInstance();
layout.doLayout(node); layout.doLayout(node, node.getChildren().filter(function(child) {
return !child.hasLayoutOffset();
}));
} }
// 第一轮布局
layoutNode(this.getRoot());
// 第二轮布局
layoutNode(this.getRoot()); layoutNode(this.getRoot());
this.applyLayoutResult(this.getRoot(), duration); this.applyLayoutResult(this.getRoot(), duration);
...@@ -208,17 +271,28 @@ kity.extendClass(Minder, { ...@@ -208,17 +271,28 @@ kity.extendClass(Minder, {
applyLayoutResult: function(root, duration) { applyLayoutResult: function(root, duration) {
root = root || this.getRoot(); root = root || this.getRoot();
var me = this; var me = this;
var deffered = {};
var promise = new Promise(function(resolve, reject) {
deffered.resolve = resolve;
deffered.reject = reject;
});
var complex = root.getComplex(); var complex = root.getComplex();
function consume() { function consume() {
if (!--complex) me.fire('layoutallfinish'); if (!--complex) {
me.fire('layoutallfinish');
deffered.resolve();
}
} }
// 节点复杂度大于 100,关闭动画 // 节点复杂度大于 100,关闭动画
if (complex > 300) duration = 0; if (complex > 300) duration = 0;
function applyMatrix(node, matrix) { function applyMatrix(node, matrix) {
node.getRenderContainer().setMatrix(node._lastLayoutTransform = matrix); node.setGlobalLayoutTransform(matrix);
me.fire('layoutapply', { me.fire('layoutapply', {
node: node, node: node,
matrix: matrix matrix: matrix
...@@ -227,7 +301,7 @@ kity.extendClass(Minder, { ...@@ -227,7 +301,7 @@ kity.extendClass(Minder, {
function apply(node, pMatrix) { function apply(node, pMatrix) {
var matrix = node.getLayoutTransform().merge(pMatrix); var matrix = node.getLayoutTransform().merge(pMatrix);
var lastMatrix = node._lastLayoutTransform || new kity.Matrix(); var lastMatrix = node.getGlobalLayoutTransform() || new kity.Matrix();
var offset = node.getLayoutOffset(); var offset = node.getLayoutOffset();
matrix.translate(offset.x, offset.y); matrix.translate(offset.x, offset.y);
...@@ -275,7 +349,7 @@ kity.extendClass(Minder, { ...@@ -275,7 +349,7 @@ kity.extendClass(Minder, {
} }
apply(root, root.parent ? root.parent.getGlobalLayoutTransform() : new kity.Matrix()); apply(root, root.parent ? root.parent.getGlobalLayoutTransform() : new kity.Matrix());
return this; return promise;
}, },
}); });
...@@ -385,19 +459,13 @@ var Layout = kity.createClass('Layout', { ...@@ -385,19 +459,13 @@ var Layout = kity.createClass('Layout', {
* @return {Box} 计算结果 * @return {Box} 计算结果
*/ */
getBranchBox: function(nodes) { getBranchBox: function(nodes) {
var box = { var box = new kity.Box();
x: 0,
y: 0,
height: 0,
width: 0
};
var g = KityMinder.Geometry;
var i, node, matrix, contentBox; var i, node, matrix, contentBox;
for (i = 0; i < nodes.length; i++) { for (i = 0; i < nodes.length; i++) {
node = nodes[i]; node = nodes[i];
matrix = node.getLayoutTransform(); matrix = node.getLayoutTransform();
contentBox = node.getContentBox(); contentBox = node.getContentBox();
box = g.mergeBox(box, matrix.transformBox(contentBox)); box = box.merge(matrix.transformBox(contentBox));
} }
return box; return box;
...@@ -492,5 +560,14 @@ KityMinder.registerModule('LayoutModule', { ...@@ -492,5 +560,14 @@ KityMinder.registerModule('LayoutModule', {
commands: { commands: {
'layout': LayoutCommand, 'layout': LayoutCommand,
'resetlayout': ResetLayoutCommand 'resetlayout': ResetLayoutCommand
},
contextmenu: [{
command: 'resetlayout'
}, {
divider: true
}],
commandShortcutKeys: {
'resetlayout': 'Ctrl+Shift+L'
} }
}); });
\ No newline at end of file
kity.extendClass(Minder, {
_getCommand: function (name) {
return this._commands[name.toLowerCase()];
},
_queryCommand: function (name, type, args) {
var cmd = this._getCommand(name);
if (cmd) {
var queryCmd = cmd['query' + type];
if (queryCmd)
return queryCmd.apply(cmd, [this].concat(args));
}
return 0;
},
queryCommandState: function (name) {
return this._queryCommand(name, "State", Utils.argsToArray(1));
},
queryCommandValue: function (name) {
return this._queryCommand(name, "Value", Utils.argsToArray(1));
},
execCommand: function (name) {
name = name.toLowerCase();
var cmdArgs = Utils.argsToArray(arguments, 1),
cmd, stoped, result, eventParams;
var me = this;
cmd = this._getCommand(name);
eventParams = {
command: cmd,
commandName: name.toLowerCase(),
commandArgs: cmdArgs
};
if (!cmd || !~this.queryCommandState(name)) {
return false;
}
if (!this._hasEnterExecCommand && cmd.isNeedUndo()) {
this._hasEnterExecCommand = true;
stoped = this._fire(new MinderEvent('beforeExecCommand', eventParams, true));
if (!stoped) {
//保存场景
this._fire(new MinderEvent('saveScene'));
this._fire(new MinderEvent("preExecCommand", eventParams, false));
result = cmd.execute.apply(cmd, [me].concat(cmdArgs));
this._fire(new MinderEvent('execCommand', eventParams, false));
//保存场景
this._fire(new MinderEvent('saveScene'));
if (cmd.isContentChanged()) {
this._firePharse(new MinderEvent('contentchange'));
}
if (cmd.isSelectionChanged()) {
this._firePharse(new MinderEvent('selectionchange'));
}
this._firePharse(new MinderEvent('interactchange'));
}
this._hasEnterExecCommand = false;
} else {
result = cmd.execute.apply(cmd, [me].concat(cmdArgs));
if (!this._hasEnterExecCommand) {
if (cmd.isSelectionChanged()) {
this._firePharse(new MinderEvent('selectionchange'));
}
this._firePharse(new MinderEvent('interactchange'));
}
}
return result === undefined ? null : result;
}
});
\ No newline at end of file
// 事件机制
kity.extendClass(Minder, {
_initEvents: function() {
this._eventCallbacks = {};
},
_bindEvents: function() {
this._bindPaperEvents();
this._bindKeyboardEvents();
},
_resetEvents: function() {
this._initEvents();
this._bindEvents();
},
// TODO: mousemove lazy bind
_bindPaperEvents: function() {
this._paper.on('click dblclick keydown keyup keypress paste mousedown contextmenu mouseup mousemove mousewheel DOMMouseScroll touchstart touchmove touchend dragenter dragleave drop', this._firePharse.bind(this));
if (window) {
window.addEventListener('resize', this._firePharse.bind(this));
window.addEventListener('blur', this._firePharse.bind(this));
}
this._renderTarget.onfocus = function() {
console.log('focus');
};
this._renderTarget.onblur = function() {
console.log('blur');
};
},
_bindKeyboardEvents: function() {
if ((navigator.userAgent.indexOf('iPhone') == -1) && (navigator.userAgent.indexOf('iPod') == -1) && (navigator.userAgent.indexOf('iPad') == -1)) {
//只能在这里做,要不无法触发
Utils.listen(document.body, 'keydown keyup keypress paste', this._firePharse.bind(this));
}
},
_firePharse: function(e) {
// //只读模式下强了所有的事件操作
// if(this.readOnly === true){
// return false;
// }
var beforeEvent, preEvent, executeEvent;
if (e.type == 'DOMMouseScroll') {
e.type = 'mousewheel';
e.wheelDelta = e.originEvent.wheelDelta = e.originEvent.detail * -10;
e.wheelDeltaX = e.originEvent.mozMovementX;
e.wheelDeltaY = e.originEvent.mozMovementY;
}
beforeEvent = new MinderEvent('before' + e.type, e, true);
if (this._fire(beforeEvent)) {
return;
}
preEvent = new MinderEvent('pre' + e.type, e, true);
executeEvent = new MinderEvent(e.type, e, true);
this._fire(preEvent) ||
this._fire(executeEvent) ||
this._fire(new MinderEvent('after' + e.type, e, false));
if (~'mousedown mouseup keydown keyup'.indexOf(e.type)) {
this._interactChange(e);
}
},
_interactChange: function(e) {
var minder = this;
clearTimeout(this._interactTimeout);
this._interactTimeout = setTimeout(function() {
var stoped = minder._fire(new MinderEvent('beforeinteractchange'));
if (stoped) {
return;
}
minder._fire(new MinderEvent('preinteractchange'));
minder._fire(new MinderEvent('interactchange'));
}, 20);
},
_listen: function(type, callback) {
var callbacks = this._eventCallbacks[type] || (this._eventCallbacks[type] = []);
callbacks.push(callback);
},
_fire: function(e) {
var status = this.getStatus();
var callbacks = this._eventCallbacks[e.type.toLowerCase()] || [];
if (status) {
callbacks = callbacks.concat(this._eventCallbacks[status + '.' + e.type.toLowerCase()] || []);
}
if (callbacks.length === 0) {
return;
}
var lastStatus = this.getStatus();
for (var i = 0; i < callbacks.length; i++) {
callbacks[i].call(this, e);
if (this.getStatus() != lastStatus || e.shouldStopPropagationImmediately()) {
break;
}
}
return e.shouldStopPropagation();
},
on: function(name, callback) {
var km = this;
utils.each(name.split(/\s+/), function(i, n) {
km._listen(n.toLowerCase(), callback);
});
return this;
},
off: function(name, callback) {
var types = name.split(/\s+/);
var i, j, callbacks, removeIndex;
for (i = 0; i < types.length; i++) {
callbacks = this._eventCallbacks[types[i].toLowerCase()];
if (callbacks) {
removeIndex = null;
for (j = 0; j < callbacks.length; j++) {
if (callbacks[j] == callback) {
removeIndex = j;
}
}
if (removeIndex !== null) {
callbacks.splice(removeIndex, 1);
}
}
}
},
fire: function(type, params) {
var e = new MinderEvent(type, params);
this._fire(e);
return this;
}
});
\ No newline at end of file
var Minder = KityMinder.Minder = kity.createClass('KityMinder', { var Minder = KityMinder.Minder = kity.createClass('KityMinder', {
constructor: function(options) { constructor: function(options) {
this._options = Utils.extend(window.KITYMINDER_CONFIG || {}, options); this._options = Utils.extend(window.KITYMINDER_CONFIG || {}, options);
this.setDefaultOptions(KM.defaultOptions);
this._initEvents(options); this.setDefaultOptions(KM.defaultOptions); // @see option.js
this._initMinder(options);
this._initSelection(options); this._initEvents(options); // @see event.js
this._initStatus(options); this._initStatus(options); // @see status.js
this._initShortcutKey(options); this._initPaper(options); // @see paper.js
this._initContextmenu(options); this._initSelection(options); // @see select.js
this._initModules(options); this._initShortcutKey(options); // @see key.js
this._initProtocols(options); this._initContextMenu(options); // @see contextmenu.js
this._initModules(options); // @see module.js
this._initProtocols(options); // @see data.js
if (this.getOptions('readOnly') === true) { if (this.getOptions('readOnly') === true) {
this.setDisabled(); this.setDisabled(); // @see readonly.js
} }
this.refresh(); this.refresh(); // @see layout.js
this.setTheme(); this.setTheme(); // @see theme.js
this.fire('ready'); this.fire('ready');
},
getOptions: function(key) {
var val;
if (key) {
val = this.getPreferences(key);
return val === null || val === undefined ? this._options[key] : val;
} else {
val = this.getPreferences();
if (val) {
return utils.extend(val, this._options, true);
} else {
return this._options;
}
}
},
setDefaultOptions: function(key, val, cover) {
var obj = {};
if (Utils.isString(key)) {
obj[key] = val;
} else {
obj = key;
}
utils.extend(this._options, obj, !cover);
},
setOptions: function(key, val) {
this.setPreferences(key, val);
},
_initMinder: function() {
this._paper = new kity.Paper();
this._paper.getNode().setAttribute('contenteditable', true);
this._paper.getNode().ondragstart = function(e) {
e.preventDefault();
};
this._paper.shapeNode.setAttribute('transform', 'translate(0.5, 0.5)');
this._addRenderContainer();
this.setRoot(this.createNode(this.getLang().maintopic));
if (this._options.renderTo) {
this.renderTo(this._options.renderTo);
}
},
_addRenderContainer: function() {
this._rc = new kity.Group().setId(KityMinder.uuid('minder'));
this._paper.addShape(this._rc);
},
renderTo: function(target) {
this._paper.renderTo(this._renderTarget = target);
this._bindEvents();
},
getRenderContainer: function() {
return this._rc;
},
getPaper: function() {
return this._paper;
},
getRenderTarget: function() {
return this._renderTarget;
},
_initShortcutKey: function() {
this._shortcutkeys = {};
this._bindshortcutKeys();
},
addShortcutKeys: function(cmd, keys) {
var obj = {},
km = this;
if (keys) {
obj[cmd] = keys;
} else {
obj = cmd;
}
utils.each(obj, function(k, v) {
km._shortcutkeys[k.toLowerCase()] = v;
});
},
getShortcutKey: function(cmdName) {
return this._shortcutkeys[cmdName];
},
_bindshortcutKeys: function() {
var me = this,
shortcutkeys = this._shortcutkeys;
function checkkey(key, keyCode, e) {
switch (key) {
case 'ctrl':
case 'cmd':
if (e.ctrlKey || e.metaKey) {
return true;
}
break;
case 'alt':
if (e.altKey) {
return true;
}
break;
case 'shift':
if (e.shiftKey) {
return true;
}
}
if (keyCode == keymap[key]) {
return true;
}
return false;
}
me.on('keydown', function(e) {
var originEvent = e.originEvent;
var keyCode = originEvent.keyCode || originEvent.which;
for (var i in shortcutkeys) {
var keys = shortcutkeys[i].toLowerCase().split('+');
var current = 0;
utils.each(keys, function(i, k) {
if (checkkey(k, keyCode, originEvent)) {
current++;
}
});
if (current == keys.length) {
if (me.queryCommandState(i) != -1)
me.execCommand(i);
originEvent.preventDefault();
break;
}
}
});
},
_initContextmenu: function() {
this.contextmenus = [];
},
addContextmenu: function(item) {
if (utils.isArray(item)) {
this.contextmenus = this.contextmenus.concat(item);
} else {
this.contextmenus.push(item);
}
return this;
},
getContextmenu: function() {
return this.contextmenus;
},
_initStatus: function() {
this._status = 'normal';
this._rollbackStatus = 'normal';
},
setStatus: (function() {
var sf = ~window.location.href.indexOf('status');
var tf = ~window.location.href.indexOf('trace');
return function(status) {
if (status != this._status) {
this._rollbackStatus = this._status;
this._status = status;
this.fire('statuschange', {
lastStatus: this._rollbackStatus,
currentStatus: this._status
});
if (sf) {
console.log(window.event.type, this._rollbackStatus, '->', this._status);
if (tf) {
console.trace();
}
}
}
return this;
};
})(),
rollbackStatus: function() {
this.setStatus(this._rollbackStatus);
},
getStatus: function() {
return this._status;
},
setDisabled: function() {
var me = this;
//禁用命令
me.bkqueryCommandState = me.queryCommandState;
me.bkqueryCommandValue = me.queryCommandValue;
me.queryCommandState = function(type) {
var cmd = this._getCommand(type);
if (cmd && cmd.enableReadOnly === false) {
return me.bkqueryCommandState.apply(me, arguments);
}
return -1;
};
me.queryCommandValue = function(type) {
var cmd = this._getCommand(type);
if (cmd && cmd.enableReadOnly === false) {
return me.bkqueryCommandValue.apply(me, arguments);
}
return null;
};
this.setStatus('readonly');
me.fire('interactchange');
},
setEnabled: function() {
var me = this;
if (me.bkqueryCommandState) {
me.queryCommandState = me.bkqueryCommandState;
delete me.bkqueryCommandState;
}
if (me.bkqueryCommandValue) {
me.queryCommandValue = me.bkqueryCommandValue;
delete me.bkqueryCommandValue;
}
this.rollbackStatus();
me.fire('interactchange');
} }
}); });
\ No newline at end of file
// 模块声明周期维护
kity.extendClass(Minder, {
_initModules: function() {
var modulesPool = KityMinder.getModules();
var modulesToLoad = this._options.modules || Utils.keys(modulesPool);
this._commands = {};
this._query = {};
this._modules = {};
this._rendererClasses = {};
var i, name, type, module, moduleDeals,
dealCommands, dealEvents, dealRenderers;
var me = this;
for (i = 0; i < modulesToLoad.length; i++) {
name = modulesToLoad[i];
if (!modulesPool[name]) continue;
// 执行模块初始化,抛出后续处理对象
if (typeof(modulesPool[name]) == 'function') {
moduleDeals = modulesPool[name].call(me);
} else {
moduleDeals = modulesPool[name];
}
this._modules[name] = moduleDeals;
if (moduleDeals.init) {
moduleDeals.init.call(me, this._options);
}
// command加入命令池子
dealCommands = moduleDeals.commands;
for (name in dealCommands) {
this._commands[name.toLowerCase()] = new dealCommands[name]();
}
// 绑定事件
dealEvents = moduleDeals.events;
if (dealEvents) {
for (type in dealEvents) {
me.on(type, dealEvents[type]);
}
}
// 渲染器
dealRenderers = moduleDeals.renderers;
if (dealRenderers) {
for (type in dealRenderers) {
this._rendererClasses[type] = this._rendererClasses[type] || [];
if (Utils.isArray(dealRenderers[type])) {
this._rendererClasses[type] = this._rendererClasses[type].concat(dealRenderers[type]);
} else {
this._rendererClasses[type].push(dealRenderers[type]);
}
}
}
if (moduleDeals.defaultOptions) {
this.setDefaultOptions(moduleDeals.defaultOptions);
}
//添加模块的快捷键
if (moduleDeals.addShortcutKeys) {
this.addShortcutKeys(moduleDeals.addShortcutKeys);
}
//添加邮件菜单
if (moduleDeals.contextmenu) {
this.addContextmenu(moduleDeals.contextmenu);
}
}
},
_garbage: function() {
this.clearSelect();
while (this._root.getChildren().length) {
this._root.removeChild(0);
}
},
destroy: function() {
var modules = this._modules;
this._resetEvents();
this._garbage();
for (var key in modules) {
if (!modules[key].destroy) continue;
modules[key].destroy.call(this);
}
},
reset: function() {
var modules = this._modules;
this._garbage();
for (var key in modules) {
if (!modules[key].reset) continue;
modules[key].reset.call(this);
}
}
});
\ No newline at end of file
kity.extendClass(Minder, {
getRoot: function() {
return this._root;
},
setRoot: function(root) {
this._root = root;
root.minder = this;
},
createNode: function(unknown, parent, index) {
var node = new MinderNode(unknown);
this.fire('nodecreate', { node: node });
this.appendNode(node,parent, index);
return node;
},
appendNode: function(node, parent, index) {
if (parent) parent.insertChild(node, index);
this.attachNode(node);
return this;
},
removeNode: function(node) {
if (node.parent) {
node.parent.removeChild(node);
this.detachNode(node);
this.fire('noderemove', { node: node });
}
},
attachNode: function(node) {
var rc = this._rc;
node.traverse(function(current) {
current.attached = true;
rc.addShape(current.getRenderContainer());
});
rc.addShape(node.getRenderContainer());
this.fire('nodeattach', {
node: node
});
},
detachNode: function(node) {
var rc = this._rc;
node.traverse(function(current) {
current.attached = false;
rc.removeShape(current.getRenderContainer());
});
this.fire('nodedetach', {
node: node
});
},
getMinderTitle: function() {
return this.getRoot().getText();
}
});
kity.extendClass(MinderNode, {
getMinder: function() {
return this.getRoot().minder;
}
});
\ No newline at end of file
...@@ -11,4 +11,115 @@ ...@@ -11,4 +11,115 @@
KityMinder.getModules = function () { KityMinder.getModules = function () {
return _modules; return _modules;
}; };
} )(); } )();
\ No newline at end of file
// 模块声明周期维护
kity.extendClass(Minder, {
_initModules: function() {
var modulesPool = KityMinder.getModules();
var modulesToLoad = this._options.modules || Utils.keys(modulesPool);
this._commands = {};
this._query = {};
this._modules = {};
this._rendererClasses = {};
var i, name, type, module, moduleDeals,
dealCommands, dealEvents, dealRenderers;
var me = this;
for (i = 0; i < modulesToLoad.length; i++) {
name = modulesToLoad[i];
if (!modulesPool[name]) continue;
// 执行模块初始化,抛出后续处理对象
if (typeof(modulesPool[name]) == 'function') {
moduleDeals = modulesPool[name].call(me);
} else {
moduleDeals = modulesPool[name];
}
this._modules[name] = moduleDeals;
if (moduleDeals.init) {
moduleDeals.init.call(me, this._options);
}
// command加入命令池子
dealCommands = moduleDeals.commands;
for (name in dealCommands) {
this._commands[name.toLowerCase()] = new dealCommands[name]();
}
// 绑定事件
dealEvents = moduleDeals.events;
if (dealEvents) {
for (type in dealEvents) {
me.on(type, dealEvents[type]);
}
}
// 渲染器
dealRenderers = moduleDeals.renderers;
if (dealRenderers) {
for (type in dealRenderers) {
this._rendererClasses[type] = this._rendererClasses[type] || [];
if (Utils.isArray(dealRenderers[type])) {
this._rendererClasses[type] = this._rendererClasses[type].concat(dealRenderers[type]);
} else {
this._rendererClasses[type].push(dealRenderers[type]);
}
}
}
if (moduleDeals.defaultOptions) {
this.setDefaultOptions(moduleDeals.defaultOptions);
}
//添加模块的快捷键
if (moduleDeals.commandShortcutKeys) {
this.addCommandShortcutKeys(moduleDeals.commandShortcutKeys);
}
//添加邮件菜单
if (moduleDeals.contextmenu) {
this.addContextMenu(moduleDeals.contextmenu);
}
}
},
_garbage: function() {
this.clearSelect();
while (this._root.getChildren().length) {
this._root.removeChild(0);
}
},
destroy: function() {
var modules = this._modules;
this._resetEvents();
this._garbage();
for (var key in modules) {
if (!modules[key].destroy) continue;
modules[key].destroy.call(this);
}
},
reset: function() {
var modules = this._modules;
this._garbage();
for (var key in modules) {
if (!modules[key].reset) continue;
modules[key].reset.call(this);
}
}
});
\ No newline at end of file
...@@ -372,4 +372,71 @@ MinderNode.getCommonAncestor = function(nodeA, nodeB) { ...@@ -372,4 +372,71 @@ MinderNode.getCommonAncestor = function(nodeA, nodeB) {
return MinderNode.getCommonAncestor(prev, current); return MinderNode.getCommonAncestor(prev, current);
}, nodeA); }, nodeA);
} }
}; };
\ No newline at end of file
kity.extendClass(Minder, {
getRoot: function() {
return this._root;
},
setRoot: function(root) {
this._root = root;
root.minder = this;
},
createNode: function(unknown, parent, index) {
var node = new MinderNode(unknown);
this.fire('nodecreate', { node: node, parent: parent, index: index });
this.appendNode(node, parent, index);
return node;
},
appendNode: function(node, parent, index) {
if (parent) parent.insertChild(node, index);
this.attachNode(node);
return this;
},
removeNode: function(node) {
if (node.parent) {
node.parent.removeChild(node);
this.detachNode(node);
this.fire('noderemove', { node: node });
}
},
attachNode: function(node) {
var rc = this._rc;
node.traverse(function(current) {
current.attached = true;
rc.addShape(current.getRenderContainer());
});
rc.addShape(node.getRenderContainer());
this.fire('nodeattach', {
node: node
});
},
detachNode: function(node) {
var rc = this._rc;
node.traverse(function(current) {
current.attached = false;
rc.removeShape(current.getRenderContainer());
});
this.fire('nodedetach', {
node: node
});
},
getMinderTitle: function() {
return this.getRoot().getText();
}
});
kity.extendClass(MinderNode, {
getMinder: function() {
return this.getRoot().minder;
}
});
\ No newline at end of file
/**
* @fileOverview
*
* 提供脑图选项支持
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
kity.extendClass(Minder, {
getOptions: function(key) {
var val;
if (key) {
val = this.getPreferences(key);
return val === null || val === undefined ? this._options[key] : val;
} else {
val = this.getPreferences();
if (val) {
return utils.extend(val, this._options, true);
} else {
return this._options;
}
}
},
setDefaultOptions: function(key, val, cover) {
var obj = {};
if (Utils.isString(key)) {
obj[key] = val;
} else {
obj = key;
}
utils.extend(this._options, obj, !cover);
},
setOptions: function(key, val) {
this.setPreferences(key, val);
}
});
\ No newline at end of file
/**
* @fileOverview
*
* 初始化渲染容器
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
kity.extendClass(Minder, {
_initPaper: function() {
this._paper = new kity.Paper();
this._paper.getNode().setAttribute('contenteditable', true);
this._paper.getNode().ondragstart = function(e) {
e.preventDefault();
};
this._paper.shapeNode.setAttribute('transform', 'translate(0.5, 0.5)');
this._addRenderContainer();
this.setRoot(this.createNode(this.getLang().maintopic));
if (this._options.renderTo) {
this.renderTo(this._options.renderTo);
}
},
_addRenderContainer: function() {
this._rc = new kity.Group().setId(KityMinder.uuid('minder'));
this._paper.addShape(this._rc);
},
renderTo: function(target) {
this._paper.renderTo(this._renderTarget = target);
this._bindEvents();
},
getRenderContainer: function() {
return this._rc;
},
getPaper: function() {
return this._paper;
},
getRenderTarget: function() {
return this._renderTarget;
},
});
\ No newline at end of file
/**
* @fileOverview
*
*
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
kity.extendClass(Minder, {
disable: function() {
var me = this;
//禁用命令
me.bkqueryCommandState = me.queryCommandState;
me.bkqueryCommandValue = me.queryCommandValue;
me.queryCommandState = function(type) {
var cmd = this._getCommand(type);
if (cmd && cmd.enableReadOnly === false) {
return me.bkqueryCommandState.apply(me, arguments);
}
return -1;
};
me.queryCommandValue = function(type) {
var cmd = this._getCommand(type);
if (cmd && cmd.enableReadOnly === false) {
return me.bkqueryCommandValue.apply(me, arguments);
}
return null;
};
this.setStatus('readonly');
me.fire('interactchange');
},
enable: function() {
var me = this;
if (me.bkqueryCommandState) {
me.queryCommandState = me.bkqueryCommandState;
delete me.bkqueryCommandState;
}
if (me.bkqueryCommandValue) {
me.queryCommandValue = me.bkqueryCommandValue;
delete me.bkqueryCommandValue;
}
this.rollbackStatus();
me.fire('interactchange');
}
});
\ No newline at end of file
/**
* @fileOverview
*
* 状态切换控制
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
kity.extendClass(Minder, {
_initStatus: function() {
this._status = 'normal';
this._rollbackStatus = 'normal';
},
setStatus: (function() {
var sf = ~window.location.href.indexOf('status');
var tf = ~window.location.href.indexOf('trace');
return function(status) {
if (status != this._status) {
this._rollbackStatus = this._status;
this._status = status;
this.fire('statuschange', {
lastStatus: this._rollbackStatus,
currentStatus: this._status
});
if (sf) {
console.log(window.event.type, this._rollbackStatus, '->', this._status);
if (tf) {
console.trace();
}
}
}
return this;
};
})(),
rollbackStatus: function() {
this.setStatus(this._rollbackStatus);
},
getStatus: function() {
return this._status;
}
});
\ No newline at end of file
...@@ -8,8 +8,6 @@ utils.extend(KityMinder, { ...@@ -8,8 +8,6 @@ utils.extend(KityMinder, {
} }
}); });
KityMinder.registerTemplate('default', {});
kity.extendClass(Minder, (function() { kity.extendClass(Minder, (function() {
var originGetTheme = Minder.prototype.getTheme; var originGetTheme = Minder.prototype.getTheme;
return { return {
...@@ -26,16 +24,14 @@ kity.extendClass(Minder, (function() { ...@@ -26,16 +24,14 @@ kity.extendClass(Minder, (function() {
this._template = name || null; this._template = name || null;
}, },
getTemplateSupports: function() { getTemplateSupport: function(method) {
return KityMinder._templates[this._template] || null; var supports = KityMinder._templates[this._template];
return supports && supports[method];
}, },
getTheme: function(node) { getTheme: function(node) {
var supports = this.getTemplateSupports(); var support = this.getTemplateSupport('getTheme') || originGetTheme;
if (supports && supports.getTheme) { return support.call(this, node);
return supports.getTheme(node);
}
return originGetTheme.call(this, node);
} }
}; };
})()); })());
...@@ -43,13 +39,16 @@ kity.extendClass(Minder, (function() { ...@@ -43,13 +39,16 @@ kity.extendClass(Minder, (function() {
kity.extendClass(MinderNode, (function() { kity.extendClass(MinderNode, (function() {
var originGetLayout = MinderNode.prototype.getLayout; var originGetLayout = MinderNode.prototype.getLayout;
var originGetConnect = MinderNode.prototype.getConnect;
return { return {
getLayout: function() { getLayout: function() {
var supports = this.getMinder().getTemplateSupports(); var support = this.getMinder().getTemplateSupport('getLayout') || originGetLayout;
if (supports && supports.getLayout) { return support.call(this, this);
return supports.getLayout(this); },
}
return originGetLayout.call(this); getConnect: function() {
var support = this.getMinder().getTemplateSupport('getConnect') || originGetConnect;
return support.call(this, this);
} }
}; };
})()); })());
......
/* global Layout:true */
window.layoutSwitch = true;
KityMinder.registerLayout('bottom', kity.createClass({
base: Layout,
doLayout: function(node) {
var children = node.getChildren();
if (!children.length) {
return false;
}
var nbox = node.getContentBox();
node.setVertexOut(new kity.Point(nbox.cx, nbox.bottom));
node.setLayoutVector(new kity.Vector(0, 1));
children.forEach(function(child) {
var cbox = child.getContentBox();
child.setLayoutTransform(new kity.Matrix());
child.setVertexIn(new kity.Point(cbox.cx, cbox.top));
});
var yDistance = nbox.bottom + node.getStyle('margin-bottom') + children[0].getStyle('margin-top');
this.align(children, 'top', yDistance);
this.stack(children, 'x');
var bbox = this.getBranchBox(children);
this.move(children, nbox.width / 2 + nbox.left - bbox.width / 2, 0);
},
getOrderHint: function(node) {
var hint = [];
var box = node.getLayoutBox();
var offset = 3;
hint.push({
type: 'up',
node: node,
area: {
x: box.left - node.getStyle('margin-left') - offset,
y: box.top,
width: node.getStyle('margin-left'),
height: box.height
},
path: ['M', box.left - offset, box.top, 'L', box.left - offset, box.bottom]
});
hint.push({
type: 'down',
node: node,
area: {
x: box.right + offset,
y: box.top,
width: node.getStyle('margin-right'),
height: box.height
},
path: ['M', box.right + offset, box.top, 'L', box.right + offset, box.bottom]
});
return hint;
}
}));
KityMinder.registerConnectProvider('bottom', function(node, parent, connection) {
var pout = parent.getLayoutVertexOut(),
pin = node.getLayoutVertexIn();
var pathData = [];
var r = Math.round;
pathData.push('M', new kity.Point(r(pout.x), pout.y));
pathData.push('L', new kity.Point(r(pout.x), pout.y + parent.getStyle('margin-bottom')));
pathData.push('L', new kity.Point(r(pin.x), pout.y + parent.getStyle('margin-bottom')));
pathData.push('L', new kity.Point(r(pin.x), pin.y));
connection.setMarker(null);
connection.setPathData(pathData);
});
\ No newline at end of file
/* global Layout:true */
var layouts = ['left', 'right', 'top', 'bottom'];
layouts.forEach(function(name) {
var axis = (name == 'left' || name == 'right') ? 'x' : 'y';
var dir = (name == 'left' || name == 'top') ? -1 : 1;
var oppsite = {
'left': 'right',
'right': 'left',
'top': 'bottom',
'bottom': 'top',
'x': 'y',
'y': 'x'
};
function getOrderHint(node) {
var hint = [];
var box = node.getLayoutBox();
var offset = 5;
if (axis == 'x') {
hint.push({
type: 'up',
node: node,
area: {
x: box.x,
y: box.top - node.getStyle('margin-top') - offset,
width: box.width,
height: node.getStyle('margin-top')
},
path: ['M', box.x, box.top - offset, 'L', box.right, box.top - offset]
});
hint.push({
type: 'down',
node: node,
area: {
x: box.x,
y: box.bottom + offset,
width: box.width,
height: node.getStyle('margin-bottom')
},
path: ['M', box.x, box.bottom + offset, 'L', box.right, box.bottom + offset]
});
} else {
hint.push({
type: 'up',
node: node,
area: {
x: box.left - node.getStyle('margin-left') - offset,
y: box.top,
width: node.getStyle('margin-left'),
height: box.height
},
path: ['M', box.left - offset, box.top, 'L', box.left - offset, box.bottom]
});
hint.push({
type: 'down',
node: node,
area: {
x: box.right + offset,
y: box.top,
width: node.getStyle('margin-right'),
height: box.height
},
path: ['M', box.right + offset, box.top, 'L', box.right + offset, box.bottom]
});
}
return hint;
}
KityMinder.registerLayout(name, kity.createClass({
base: Layout,
doLayout: function(parent, children) {
if (!children.length) {
return false;
}
var pbox = parent.getContentBox();
if (axis == 'x') {
parent.setVertexOut(new kity.Point(pbox[name], pbox.cy));
parent.setLayoutVectorOut(new kity.Vector(dir, 0));
} else {
parent.setVertexOut(new kity.Point(pbox.cx, pbox[name]));
parent.setLayoutVectorOut(new kity.Vector(0, dir));
}
children.forEach(function(child) {
var cbox = child.getContentBox();
child.setLayoutTransform(new kity.Matrix());
if (axis == 'x') {
child.setVertexIn(new kity.Point(cbox[oppsite[name]], cbox.cy));
child.setLayoutVectorIn(new kity.Vector(dir, 0));
} else {
child.setVertexIn(new kity.Point(cbox.cx, cbox[oppsite[name]]));
child.setLayoutVectorIn(new kity.Vector(0, dir));
}
});
this.align(children, oppsite[name]);
this.stack(children, oppsite[axis]);
var bbox = this.getBranchBox(children);
var xAdjust, yAdjust;
if (axis == 'x') {
xAdjust = pbox[name];
xAdjust += dir * parent.getStyle('margin-' + name);
xAdjust += dir * children[0].getStyle('margin-' + oppsite[name]);
yAdjust = pbox.bottom;
yAdjust -= pbox.height / 2;
yAdjust -= bbox.height / 2;
yAdjust -= bbox.y;
} else {
xAdjust = pbox.right;
xAdjust -= pbox.width / 2;
xAdjust -= bbox.width / 2;
xAdjust -= bbox.x;
yAdjust = pbox[name];
yAdjust += dir * parent.getStyle('margin-' + name);
yAdjust += dir * children[0].getStyle('margin-' + oppsite[name]);
}
this.move(children, xAdjust, yAdjust);
},
getOrderHint: getOrderHint
}));
});
\ No newline at end of file
var connectMarker = new kity.Marker().pipe(function() {
var r = 7;
var dot = new kity.Circle(r - 1);
this.addShape(dot);
this.setRef(r - 1, 0).setViewBox(-r, -r, r + r, r + r).setWidth(r).setHeight(r);
this.dot = dot;
this.node.setAttribute('markerUnits', 'userSpaceOnUse');
});
KityMinder.registerConnectProvider('default', function(node, parent, connection, width, color) {
var box = node.getLayoutBox(),
pBox = parent.getLayoutBox();
var start, end, vector;
var abs = Math.abs;
var pathData = [];
var side = box.x > pBox.x ? 'right' : 'left';
node.getMinder().getPaper().addResource(connectMarker);
switch (node.getType()) {
case 'main':
start = new kity.Point(pBox.cx, pBox.cy);
end = side == 'left' ?
new kity.Point(box.right + 2, box.cy) :
new kity.Point(box.left - 2, box.cy);
vector = kity.Vector.fromPoints(start, end);
pathData.push('M', start);
pathData.push('A', abs(vector.x), abs(vector.y), 0, 0, (vector.x * vector.y > 0 ? 0 : 1), end);
connection.setMarker(connectMarker);
connectMarker.dot.fill(color);
break;
case 'sub':
var radius = node.getStyle('connect-radius');
var underY = box.bottom + 3;
var startY = parent.getType() == 'sub' ? pBox.bottom + 3 : pBox.cy;
var p1, p2, p3, mx;
if (side == 'right') {
p1 = new kity.Point(pBox.right + 10, startY);
p2 = new kity.Point(box.left, underY);
p3 = new kity.Point(box.right + 10, underY);
} else {
p1 = new kity.Point(pBox.left - 10, startY);
p2 = new kity.Point(box.right, underY);
p3 = new kity.Point(box.left - 10, underY);
}
mx = (p1.x + p2.x) / 2;
if (width % 2 === 0) {
p1.y += 0.5;
p2.y += 0.5;
p3.y += 0.5;
}
pathData.push('M', p1);
pathData.push('C', mx, p1.y, mx, p2.y, p2);
pathData.push('L', p3);
connection.setMarker(null);
break;
}
connection.setPathData(pathData);
});
\ No newline at end of file
/* global Layout:true */
KityMinder.registerLayout('default', kity.createClass({
base: Layout,
doLayout: function(node) {
var layout = this;
if (node.isLayoutRoot()) {
this.doLayoutRoot(node);
} else {
this.arrange(node, node.children, layout.getSide(node));
}
},
getSide: function(node) {
while (!node.parent.isLayoutRoot()) {
node = node.parent;
}
var mainIndex = node.getIndex();
var length = node.parent.children.length;
return mainIndex < length / 2 ? 'right' : 'left';
},
doLayoutRoot: function(root) {
var mains = root.getChildren();
var group = {
left: [],
right: []
};
var _this = this;
mains.forEach(function(main) {
group[_this.getSide(main)].push(main);
});
this.arrange(root, group.left, 'left');
this.arrange(root, group.right, 'right');
},
arrange: function(parent, children, side) {
if (!children.length) return;
var _this = this;
// children 所占的总树高
var totalTreeHeight = 0;
// 计算每个 child 的树所占的矩形区域
var childTreeBoxes = children.map(function(node, index, children) {
var box = _this.getTreeBox([node]);
// 计算总树高,需要把竖直方向上的 margin 加入计算
totalTreeHeight += box.height;
if (index > 0) {
totalTreeHeight += children[index - 1].getStyle('margin-bottom');
totalTreeHeight += node.getStyle('margin-top');
}
return box;
});
var nodeContentBox = parent.getContentBox();
var i, x, y, child, childTreeBox, childContentBox;
var transform, offset;
y = -totalTreeHeight / 2;
if (side != 'left') {
parent.setVertexOut(new kity.Point(nodeContentBox.right, nodeContentBox.cy));
parent.setLayoutVector(new kity.Vector(1, 0));
} else {
parent.setVertexOut(new kity.Point(nodeContentBox.left, nodeContentBox.cy));
parent.setLayoutVector(new kity.Vector(-1, 0));
}
for (i = 0; i < children.length; i++) {
child = children[i];
childTreeBox = childTreeBoxes[i];
childContentBox = child.getContentBox();
if (!childContentBox.height) continue;
// 水平方向上的布局
if (side == 'right') {
x = nodeContentBox.right - childContentBox.left;
x += parent.getStyle('margin-right') + child.getStyle('margin-left');
} else {
x = nodeContentBox.left - childContentBox.right;
x -= parent.getStyle('margin-left') + child.getStyle('margin-right');
}
if (i > 0) {
y += children[i].getStyle('margin-top');
}
// 竖直方向上的布局
y -= childTreeBox.top;
// 设置布局结果
transform = new kity.Matrix().translate(x, y);
child.setLayoutTransform(transform);
y += childTreeBox.bottom + child.getStyle('margin-bottom');
}
if (parent.isRoot()) {
var branchBox = this.getBranchBox(children);
var dy = branchBox.cy - nodeContentBox.cy;
children.forEach(function(child) {
child.getLayoutTransform().translate(0, -dy);
});
}
},
getOrderHint: function(node) {
var hint = [];
var box = node.getLayoutBox();
var offset = 5;
hint.push({
type: 'up',
node: node,
area: {
x: box.x,
y: box.top - node.getStyle('margin-top') - offset,
width: box.width,
height: node.getStyle('margin-top')
},
path: ['M', box.x, box.top - offset, 'L', box.right, box.top - offset]
});
hint.push({
type: 'down',
node: node,
area: {
x: box.x,
y: box.bottom + offset,
width: box.width,
height: node.getStyle('margin-bottom')
},
path: ['M', box.x, box.bottom + offset, 'L', box.right, box.bottom + offset]
});
return hint;
}
}));
\ No newline at end of file
/* global Layout:true */ /* global Layout:true */
window.layoutSwitch = true;
KityMinder.registerLayout('filetree', kity.createClass({ KityMinder.registerLayout('filetree', kity.createClass({
base: Layout, base: Layout,
doLayout: function(node) { doLayout: function(parent, children) {
var layout = this; var pBox = parent.getContentBox();
var indent = 20;
if (node.isLayoutRoot()) { parent.setVertexOut(new kity.Point(pBox.left + indent, pBox.bottom));
this.doLayoutRoot(node); parent.setLayoutVectorOut(new kity.Vector(0, 1));
} else {
this.arrange(node);
}
},
doLayoutRoot: function(root) {
this.arrange(root);
},
arrange: function(node) {
var children = node.getChildren();
var _this = this;
if (!children.length) {
return false;
} else {
// 计算每个 child 的树所占的矩形区域
var childTreeBoxes = children.map(function(node, index, children) {
var box = _this.getTreeBox([node]);
return box;
});
var nodeContentBox = node.getContentBox();
var i, x, y, child, childTreeBox, childContentBox;
var transform = new kity.Matrix();
node.setVertexOut(new kity.Point(0, nodeContentBox.bottom));
node.setLayoutVector(new kity.Vector(0, 1));
y = nodeContentBox.bottom + node.getStyle('margin-bottom');
for (i = 0; i < children.length; i++) { if (!children.length) return;
child = children[i];
childTreeBox = childTreeBoxes[i];
childContentBox = child.getContentBox();
x = child.getStyle('margin-left') - childContentBox.left; children.forEach(function(child) {
var cbox = child.getContentBox();
child.setLayoutTransform(new kity.Matrix());
if (!childContentBox.width) continue; child.setVertexIn(new kity.Point(cbox.left, cbox.cy));
child.setLayoutVectorIn(new kity.Vector(1, 0));
});
y += child.getStyle('margin-top'); this.align(children, 'left');
y -= childTreeBox.top; this.stack(children, 'y');
// 设置布局结果 var xAdjust = 0;
transform = new kity.Matrix().translate(x, y); xAdjust += pBox.left;
xAdjust += indent;
xAdjust += children[0].getStyle('margin-left');
var yAdjust = 0;
yAdjust += pBox.bottom;
yAdjust += parent.getStyle('margin-bottom');
yAdjust += children[0].getStyle('margin-top');
child.setLayoutTransform(transform); this.move(children, xAdjust, yAdjust);
y += childTreeBox.bottom + child.getStyle('margin-bottom');
}
}
}, },
getOrderHint: function(node) { getOrderHint: function(node) {
var hint = []; var hint = [];
var box = node.getLayoutBox(); var box = node.getLayoutBox();
...@@ -86,16 +65,4 @@ KityMinder.registerLayout('filetree', kity.createClass({ ...@@ -86,16 +65,4 @@ KityMinder.registerLayout('filetree', kity.createClass({
}); });
return hint; return hint;
} }
})); }));
\ No newline at end of file
KityMinder.registerConnectProvider('filetree', function(node, parent, connection) {
var box = node.getLayoutBox(),
pBox = parent.getLayoutBox();
var pathData = [];
var left = parent.getLayoutPoint().x;
var r = Math.round;
pathData.push('M', new kity.Point(r(left), r(pBox.bottom)));
pathData.push('L', new kity.Point(r(left), r(box.cy)));
pathData.push('L', new kity.Point(r(box.left), r(box.cy)));
connection.setPathData(pathData);
});
\ No newline at end of file
/* global Layout:true */ /* global Layout:true */
window.layoutSwitch = true; KityMinder.registerLayout('mind', kity.createClass({
KityMinder.registerLayout('left', kity.createClass({
base: Layout, base: Layout,
doLayout: function(node) { doLayout: function(node, children) {
var children = node.getChildren(); var layout = this;
var half = Math.ceil(children.length / 2);
if (!children.length) { var right = children.slice(0, half);
return false; var left = children.slice(half);
}
var nbox = node.getContentBox();
node.setVertexOut(new kity.Point(nbox.left, nbox.cy));
node.setLayoutVector(new kity.Vector(-1, 0));
children.forEach(function(child) {
var cbox = child.getContentBox();
child.setLayoutTransform(new kity.Matrix());
child.setVertexIn(new kity.Point(cbox.right, cbox.cy)); var leftLayout = KityMinder.getLayoutInstance('left');
}); var rightLayout = KityMinder.getLayoutInstance('right');
this.align(children, 'right');
this.stack(children, 'y');
var bbox = this.getBranchBox(children);
var xAdjuxt = nbox.left - node.getStyle('margin-left') - children[0].getStyle('margin-right');
var yAdjust = nbox.height / 2 + nbox.top - bbox.height / 2;
leftLayout.doLayout(node, left);
rightLayout.doLayout(node, right);
this.move(children, 0, yAdjust); var box = node.getContentBox();
node.setVertexOut(box.cx, box.cy);
node.setLayoutVectorOut(new kity.Vector(0, 0));
}, },
getOrderHint: function(node) { getOrderHint: function(node) {
...@@ -65,17 +49,4 @@ KityMinder.registerLayout('left', kity.createClass({ ...@@ -65,17 +49,4 @@ KityMinder.registerLayout('left', kity.createClass({
}); });
return hint; return hint;
} }
})); }));
\ No newline at end of file
// KityMinder.registerConnectProvider('bottom', function(node, parent, connection) {
// var pout = parent.getLayoutVertexOut(),
// pin = node.getLayoutVertexIn();
// var pathData = [];
// var r = Math.round;
// pathData.push('M', new kity.Point(r(pout.x), pout.y));
// pathData.push('L', new kity.Point(r(pout.x), pout.y + parent.getStyle('margin-bottom')));
// pathData.push('L', new kity.Point(r(pin.x), pout.y + parent.getStyle('margin-bottom')));
// pathData.push('L', new kity.Point(r(pin.x), pin.y));
// connection.setMarker(null);
// connection.setPathData(pathData);
// });
\ No newline at end of file
/* global Layout:true */
window.layoutSwitch = true;
KityMinder.registerLayout('right', kity.createClass({
base: Layout,
doLayout: function(node) {
var children = node.getChildren();
if (!children.length) {
return false;
}
var nbox = node.getContentBox();
node.setVertexOut(new kity.Point(nbox.right, nbox.cy));
node.setLayoutVector(new kity.Vector(1, 0));
children.forEach(function(child) {
var cbox = child.getContentBox();
child.setLayoutTransform(new kity.Matrix());
child.setVertexIn(new kity.Point(cbox.left, cbox.cy));
});
// 所有子节点左对齐到当前节点的 0 点
this.align(children, 'left');
// 所有子节点在 y 方向堆叠
this.stack(children, 'y');
// 获取子节点对齐并堆叠后所占的空间
var bbox = this.getBranchBox(children);
var xAdjust = nbox.right + node.getStyle('margin-right') + children[0].getStyle('margin-left');
var yAdjust = nbox.height / 2 + nbox.top - bbox.height / 2;
this.move(children, xAdjust, yAdjust);
},
getOrderHint: function(node) {
var hint = [];
var box = node.getLayoutBox();
var offset = 5;
hint.push({
type: 'up',
node: node,
area: {
x: box.x,
y: box.top - node.getStyle('margin-top') - offset,
width: box.width,
height: node.getStyle('margin-top')
},
path: ['M', box.x, box.top - offset, 'L', box.right, box.top - offset]
});
hint.push({
type: 'down',
node: node,
area: {
x: box.x,
y: box.bottom + offset,
width: box.width,
height: node.getStyle('margin-bottom')
},
path: ['M', box.x, box.bottom + offset, 'L', box.right, box.bottom + offset]
});
return hint;
}
}));
// KityMinder.registerConnectProvider('bottom', function(node, parent, connection) {
// var pout = parent.getLayoutVertexOut(),
// pin = node.getLayoutVertexIn();
// var pathData = [];
// var r = Math.round;
// pathData.push('M', new kity.Point(r(pout.x), pout.y));
// pathData.push('L', new kity.Point(r(pout.x), pout.y + parent.getStyle('margin-bottom')));
// pathData.push('L', new kity.Point(r(pin.x), pout.y + parent.getStyle('margin-bottom')));
// pathData.push('L', new kity.Point(r(pin.x), pin.y));
// connection.setMarker(null);
// connection.setPathData(pathData);
// });
\ No newline at end of file
...@@ -109,7 +109,14 @@ KityMinder.registerModule('ArrangeModule', { ...@@ -109,7 +109,14 @@ KityMinder.registerModule('ArrangeModule', {
'arrangedown': ArrangeDownCommand, 'arrangedown': ArrangeDownCommand,
'arrange': ArrangeCommand 'arrange': ArrangeCommand
}, },
addShortcutKeys: { contextmenu: [{
command: 'arrangeup'
}, {
command: 'arrangedown'
}, {
divider: true
}],
commandShortcutKeys: {
'arrangeup': 'alt+Up', 'arrangeup': 'alt+Up',
'arrangedown': 'alt+Down' 'arrangedown': 'alt+Down'
} }
......
...@@ -83,7 +83,7 @@ KityMinder.registerModule('basestylemodule', function() { ...@@ -83,7 +83,7 @@ KityMinder.registerModule('basestylemodule', function() {
} }
}) })
}, },
addShortcutKeys: { shortcutKeys: {
'bold': 'ctrl+b', //bold 'bold': 'ctrl+b', //bold
'italic': 'ctrl+i' //italic 'italic': 'ctrl+i' //italic
} }
......
...@@ -90,6 +90,9 @@ var TreeDragger = kity.createClass('TreeDragger', { ...@@ -90,6 +90,9 @@ var TreeDragger = kity.createClass('TreeDragger', {
if (!this._startPosition) return; if (!this._startPosition) return;
var movement = kity.Vector.fromPoints(this._dragPosition || this._startPosition, position);
var minder = this._minder;
this._dragPosition = position; this._dragPosition = position;
if (!this._dragMode) { if (!this._dragMode) {
...@@ -102,14 +105,11 @@ var TreeDragger = kity.createClass('TreeDragger', { ...@@ -102,14 +105,11 @@ var TreeDragger = kity.createClass('TreeDragger', {
} }
} }
var movement = kity.Vector.fromPoints(this._startPosition, this._dragPosition);
var minder = this._minder;
for (var i = 0; i < this._dragSources.length; i++) { for (var i = 0; i < this._dragSources.length; i++) {
this._dragSources[i].setLayoutOffset(this._dragSourceOffsets[i].offset(movement)); this._dragSources[i].setLayoutOffset(this._dragSources[i].getLayoutOffset().offset(movement));
minder.applyLayoutResult(this._dragSources[i]); minder.applyLayoutResult(this._dragSources[i]);
} }
if (!this._dropTest()) { if (!this._dropTest()) {
this._orderTest(); this._orderTest();
} else { } else {
...@@ -119,6 +119,7 @@ var TreeDragger = kity.createClass('TreeDragger', { ...@@ -119,6 +119,7 @@ var TreeDragger = kity.createClass('TreeDragger', {
dragEnd: function() { dragEnd: function() {
this._startPosition = null; this._startPosition = null;
this._dragPosition = null;
if (!this._dragMode) { if (!this._dragMode) {
return; return;
...@@ -131,6 +132,8 @@ var TreeDragger = kity.createClass('TreeDragger', { ...@@ -131,6 +132,8 @@ var TreeDragger = kity.createClass('TreeDragger', {
this._dragSources.forEach(function(source) { this._dragSources.forEach(function(source) {
source.setLayoutOffset(null); source.setLayoutOffset(null);
}); });
this._minder.layout(-1);
this._minder.execCommand('movetoparent', this._dragSources, this._dropSucceedTarget); this._minder.execCommand('movetoparent', this._dragSources, this._dropSucceedTarget);
...@@ -158,6 +161,7 @@ var TreeDragger = kity.createClass('TreeDragger', { ...@@ -158,6 +161,7 @@ var TreeDragger = kity.createClass('TreeDragger', {
} else { } else {
this._minder.fire('savescene'); this._minder.fire('savescene');
} }
this._minder.layout(300);
this._leaveDragMode(); this._leaveDragMode();
this._minder.fire('contentchange'); this._minder.fire('contentchange');
}, },
...@@ -189,9 +193,6 @@ var TreeDragger = kity.createClass('TreeDragger', { ...@@ -189,9 +193,6 @@ var TreeDragger = kity.createClass('TreeDragger', {
// 则排除枚举目标作为拖放源,否则加入拖放源 // 则排除枚举目标作为拖放源,否则加入拖放源
_calcDragSources: function() { _calcDragSources: function() {
this._dragSources = this._minder.getSelectedAncestors(); this._dragSources = this._minder.getSelectedAncestors();
this._dragSourceOffsets = this._dragSources.map(function(src) {
return src.getLayoutOffset();
});
}, },
_fadeDragSources: function(opacity) { _fadeDragSources: function(opacity) {
......
...@@ -70,10 +70,33 @@ KityMinder.registerModule('Expand', function() { ...@@ -70,10 +70,33 @@ KityMinder.registerModule('Expand', function() {
}; };
function setExpandState(node, state, policy) { function setExpandState(node, state, policy) {
var changed = node.isExpanded() ? (state == STATE_COLLAPSE) : (state == STATE_EXPAND);
policy = policy || EXPAND_POLICY.KEEP_STATE; policy = policy || EXPAND_POLICY.KEEP_STATE;
policy(node, state, policy); policy(node, state, policy);
node.renderTree();
node.getMinder().layout(100); if (!changed) return;
if (state == STATE_EXPAND) {
var m = node.getGlobalLayoutTransform();
node.traverse(function(child) {
child.setGlobalLayoutTransform(m);
child.getRenderContainer().fadeIn();
}, true);
node.renderTree().getMinder().layout(30);
} else {
node.traverse(function(child) {
child.setLayoutTransform(null);
child.getRenderContainer().fadeOut();
}, true);
node.getMinder().applyLayoutResult(node, 30).then(function() {
node.renderTree();
});
}
} }
// 将展开的操作和状态读取接口拓展到 MinderNode 上 // 将展开的操作和状态读取接口拓展到 MinderNode 上
...@@ -175,7 +198,7 @@ KityMinder.registerModule('Expand', function() { ...@@ -175,7 +198,7 @@ KityMinder.registerModule('Expand', function() {
var pathData = ['M', 1.5 - this.radius, 0, 'L', this.radius - 1.5, 0]; var pathData = ['M', 1.5 - this.radius, 0, 'L', this.radius - 1.5, 0];
if (state == STATE_COLLAPSE) { if (state == STATE_COLLAPSE) {
pathData.push(['M', 0, 1.5 - this.radius, 'L', 0, this.radius - 1.5]); pathData.push(['M', 0, 1.5 - this.radius, 'L', 0, this.radius - 1.5]);
} }
this.sign.setPathData(pathData); this.sign.setPathData(pathData);
} }
}); });
...@@ -203,7 +226,7 @@ KityMinder.registerModule('Expand', function() { ...@@ -203,7 +226,7 @@ KityMinder.registerModule('Expand', function() {
expander.setState(visible && node.children.length ? node.getData(EXPAND_STATE_DATA) : 'hide'); expander.setState(visible && node.children.length ? node.getData(EXPAND_STATE_DATA) : 'hide');
var vector = node.getLayoutVector().normalize(expander.radius + node.getStyle('stroke-width')); var vector = node.getLayoutVectorOut().normalize(expander.radius + node.getStyle('stroke-width'));
var position = node.getVertexOut().offset(vector); var position = node.getVertexOut().offset(vector);
this.expander.setTranslate(position); this.expander.setTranslate(position);
......
...@@ -90,7 +90,6 @@ KityMinder.registerModule("HistoryModule", function() { ...@@ -90,7 +90,6 @@ KityMinder.registerModule("HistoryModule", function() {
selectedNodes.push(child); selectedNodes.push(child);
} }
km.appendNode(child, parent); km.appendNode(child, parent);
child._lastLayoutTransform = parent._lastLayoutTransform;
child.render(); child.render();
var children = utils.cloneArr(child.children); var children = utils.cloneArr(child.children);
...@@ -219,9 +218,9 @@ KityMinder.registerModule("HistoryModule", function() { ...@@ -219,9 +218,9 @@ KityMinder.registerModule("HistoryModule", function() {
} }
}) })
}, },
addShortcutKeys: { commandShortcutKeys: {
"Undo": "ctrl+z", //undo "undo": "ctrl+z", //undo
"Redo": "ctrl+y" //redo "redo": "ctrl+y" //redo
}, },
"events": { "events": {
"saveScene": function(e) { "saveScene": function(e) {
...@@ -229,7 +228,6 @@ KityMinder.registerModule("HistoryModule", function() { ...@@ -229,7 +228,6 @@ KityMinder.registerModule("HistoryModule", function() {
}, },
"import": function() { "import": function() {
this.historyManager.reset(); this.historyManager.reset();
// this.historyManager.saveScene();
} }
} }
}; };
......
...@@ -127,6 +127,7 @@ KityMinder.registerModule('KeyboardModule', function() { ...@@ -127,6 +127,7 @@ KityMinder.registerModule('KeyboardModule', function() {
km.select(nextNode, true); km.select(nextNode, true);
} }
} }
// 稀释用
var lastFrame; var lastFrame;
return { return {
'events': { 'events': {
...@@ -143,57 +144,12 @@ KityMinder.registerModule('KeyboardModule', function() { ...@@ -143,57 +144,12 @@ KityMinder.registerModule('KeyboardModule', function() {
if (keyEvent.shiftKey && keyEvent.keyCode == KityMinder.keymap.Tab) e.preventDefault(); if (keyEvent.shiftKey && keyEvent.keyCode == KityMinder.keymap.Tab) e.preventDefault();
}, },
'normal.keydown': function(e) { 'normal.keydown': function(e) {
var minder = this;
var keys = KityMinder.keymap; ['left', 'right', 'up', 'down'].forEach(function(key) {
var node = e.getTargetNode(); if (e.isShortcutKey(key)) {
var lang = this.getLang(); navigateTo(minder, key == 'up' ? 'top' : key);
}
if (this.receiver) this.receiver.keydownNode = node; });
var keyEvent = e.originEvent;
if (keyEvent.altKey || keyEvent.ctrlKey || keyEvent.metaKey || keyEvent.shiftKey) {
if ([keys.Tab].indexOf(keyEvent.keyCode)) e.preventDefault;
return;
}
switch (keyEvent.keyCode) {
case keys.Enter:
this.execCommand('AppendSiblingNode', lang.topic);
e.preventDefault();
break;
case keys.Tab:
this.execCommand('AppendChildNode', lang.topic);
e.preventDefault();
break;
case keys.Backspace:
case keys.Del:
e.preventDefault();
this.execCommand('RemoveNode');
break;
case keys.F2:
e.preventDefault();
this.execCommand('EditNode');
break;
case keys.Left:
navigateTo(this, 'left');
e.preventDefault();
break;
case keys.Up:
navigateTo(this, 'top');
e.preventDefault();
break;
case keys.Right:
navigateTo(this, 'right');
e.preventDefault();
break;
case keys.Down:
navigateTo(this, 'down');
e.preventDefault();
break;
}
}, },
'normal.keyup': function(e) { 'normal.keyup': function(e) {
if (browser.ipad) { if (browser.ipad) {
......
...@@ -5,11 +5,11 @@ var AppendChildCommand = kity.createClass('AppendChildCommand', { ...@@ -5,11 +5,11 @@ var AppendChildCommand = kity.createClass('AppendChildCommand', {
if (!parent) { if (!parent) {
return null; return null;
} }
text = text || km.getLang(parent.isRoot() ? 'maintopic' : 'topic');
parent.expand(); parent.expand();
var node = km.createNode(text, parent); var node = km.createNode(text, parent);
km.select(node, true); km.select(node, true);
node.render(); node.render();
node._lastLayoutTransform = parent._lastLayoutTransform;
km.layout(300); km.layout(300);
}, },
queryState: function(km) { queryState: function(km) {
...@@ -26,10 +26,10 @@ var AppendSiblingCommand = kity.createClass('AppendSiblingCommand', { ...@@ -26,10 +26,10 @@ var AppendSiblingCommand = kity.createClass('AppendSiblingCommand', {
if (!parent) { if (!parent) {
return km.execCommand('AppendChildNode', text); return km.execCommand('AppendChildNode', text);
} }
text = text || km.getLang(parent.isRoot() ? 'maintopic' : 'topic');
var node = km.createNode(text, parent, sibling.getIndex() + 1); var node = km.createNode(text, parent, sibling.getIndex() + 1);
km.select(node, true); km.select(node, true);
node.render(); node.render();
node._lastLayoutTransform = sibling._lastLayoutTransform;
km.layout(300); km.layout(300);
}, },
queryState: function(km) { queryState: function(km) {
...@@ -82,45 +82,31 @@ var EditNodeCommand = kity.createClass('EditNodeCommand', { ...@@ -82,45 +82,31 @@ var EditNodeCommand = kity.createClass('EditNodeCommand', {
KityMinder.registerModule('NodeModule', function() { KityMinder.registerModule('NodeModule', function() {
return { return {
commands: { commands: {
'AppendChildNode': AppendChildCommand, 'AppendChildNode': AppendChildCommand,
'AppendSiblingNode': AppendSiblingCommand, 'AppendSiblingNode': AppendSiblingCommand,
'RemoveNode': RemoveNodeCommand, 'RemoveNode': RemoveNodeCommand,
'EditNode': EditNodeCommand 'EditNode': EditNodeCommand
}, },
'contextmenu': [{ 'contextmenu': [{
label: this.getLang('node.appendsiblingnode'), command: 'appendsiblingnode'
exec: function() {
this.execCommand('AppendSiblingNode', this.getLang('topic'));
},
cmdName: 'appendsiblingnode'
}, { }, {
label: this.getLang('node.appendchildnode'), command: 'appendchildnode'
exec: function() {
this.execCommand('AppendChildNode', this.getLang('topic'));
},
cmdName: 'appendchildnode'
}, { }, {
label: this.getLang('node.editnode'), command: 'editnode'
exec: function() {
this.execCommand('EditNode');
},
cmdName: 'editnode'
}, { }, {
label: this.getLang('node.removenode'), command: 'removenode'
cmdName: 'RemoveNode'
}, { }, {
divider: 1 divider: 1
},{ }],
label: this.getLang('insert.topic'),
exec: function() { 'commandShortcutKeys': {
this.select(this.getRoot()); 'appendsiblingnode': 'Enter',
this.execCommand('AppendSiblingNode', this.getLang('topic')); 'appendchildnode': 'Insert|Tab',
}, 'editnode': 'F2',
query:function(){ 'removenode': 'Delete|Backspace'
var nodes = this.getSelectedNodes(); }
return nodes.length === 0 ? 0 : -1;
}
}]
}; };
}); });
\ No newline at end of file
/**
* @fileOverview
*
* 默认模板 - 脑图模板
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerTemplate('default', {
getLayout: function(node) {
if (node.getData('layout')) return node.getData('layout');
var level = node.getLevel();
// 根节点
if (level === 0) {
return 'mind';
}
// 一级节点
if (level === 1) {
return node.getLayoutPointPreview().x > 0 ? 'right': 'left';
}
return node.parent.getLayout();
},
getConnect: function(node) {
if (node.getLevel() == 1) return 'arc';
return 'under';
}
});
\ No newline at end of file
/**
* @fileOverview
*
* 文件夹模板
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerTemplate('filetree', {
getLayout: function(node) {
if (node.getData('layout')) return node.getData('layout');
if (node.isRoot()) return 'bottom';
return 'filetree';
},
getConnect: function(node) {
if (node.getLevel() == 1) {
return 'poly';
}
return 'l';
}
});
\ No newline at end of file
/**
* @fileOverview
*
* 往右布局结构模板
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerTemplate('right', {
getLayout: function(node) {
return node.getData('layout') || 'right';
},
getConnect: function(node) {
if (node.getLevel() == 1) return 'arc';
return 'bezier';
}
});
\ No newline at end of file
/**
* @fileOverview
*
* 组织结构图模板
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerTemplate('structure', { KityMinder.registerTemplate('structure', {
getLayout: function(node) { getLayout: function(node) {
return node.getData('layout') || 'bottom'; return node.getData('layout') || 'bottom';
} },
});
KityMinder.registerTemplate('filetree', {
getLayout: function(node) {
if (node.getData('layout')) return node.getData('layout');
if (node.isRoot()) return 'bottom';
return 'filetree'; getConnect: function(node) {
return 'poly';
} }
}); });
\ No newline at end of file
...@@ -33,6 +33,7 @@ KityMinder.registerTheme('classic', { ...@@ -33,6 +33,7 @@ KityMinder.registerTheme('classic', {
'connect-color': 'white', 'connect-color': 'white',
'connect-width': 2, 'connect-width': 2,
'main-connect-width': 3,
'connect-radius': 5, 'connect-radius': 5,
'selected-background': 'rgb(254, 219, 0)', 'selected-background': 'rgb(254, 219, 0)',
......
...@@ -32,6 +32,7 @@ KityMinder.registerTheme('snow', { ...@@ -32,6 +32,7 @@ KityMinder.registerTheme('snow', {
'connect-color': 'white', 'connect-color': 'white',
'connect-width': 2, 'connect-width': 2,
'main-connect-width': 3,
'connect-radius': 5, 'connect-radius': 5,
'selected-background': 'rgb(254, 219, 0)', 'selected-background': 'rgb(254, 219, 0)',
......
/**
* @fileOverview
*
*
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerUI('contextmenu', function(minder) {
var mac = kity.Browser.mac;
function camel(word) {
return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
}
var $menu = $('<ul>')
.addClass('km-context-menu fui-popup-menu')
.appendTo('#content-wrapper');
$menu.delegate('li', 'click', function(e, info) {
var item = $(e.target).data('menu');
if (item.command) {
minder.execCommand(item.command);
}
});
minder.on('contextmenu', function(e) {
e.preventDefault();
});
$('#content-wrapper').on('click', function(e) {
$menu.hide();
});
minder.on('mouseup', function(e) {
//e.preventDefault();
if (minder.getStatus() == 'hand' || !e.isRightMB()) return;
e = e.originEvent;
$menu.empty();
var ctxmenu = minder.getContextMenu();
var lastDivider = true;
ctxmenu.forEach(function(item) {
if (item.command && minder.queryCommandState(item.command) === 0) {
var label = minder.getLang('ui.command.' + item.command);
var $li = $('<li>')
.addClass('fui-item')
.append(label)
.data('menu', item)
.appendTo($menu);
var shortcuts = minder.getCommandShortcutKey(item.command);
if (shortcuts) {
shortcuts.split('|').forEach(function(shortcut) {
var $shortcut = $('<span>').addClass('shortcut').appendTo($li);
shortcut.split('+').forEach(function(key) {
$('<span>').addClass('shortcut-key ' + key.toLowerCase())
.text(camel(key))
.appendTo($shortcut);
});
if (mac) $shortcut.addClass('mac');
});
}
lastDivider = false;
}
if (item.divider && !lastDivider) {
$('<li>').addClass('divider').appendTo($menu);
lastDivider = true;
}
});
if (ctxmenu.length) {
$menu.show();
var x = e.pageX,
y = e.pageY,
width = $menu.outerWidth(),
height = $menu.outerHeight(),
clientWidth = document.body.clientWidth,
clientHeight = document.body.clientHeight;
if (x + width > clientWidth) x -= width;
if (y + height > clientHeight) y -= height;
$menu.offset({
left: x,
top: y
});
}
});
});
\ No newline at end of file
...@@ -53,7 +53,7 @@ KityMinder.registerUI('doc', function(minder) { ...@@ -53,7 +53,7 @@ KityMinder.registerUI('doc', function(minder) {
})['catch'](function(e) { })['catch'](function(e) {
current = restore; current = restore;
throw e; console.error(e.stack);
}).then(function(doc) { }).then(function(doc) {
loading = false; loading = false;
return doc; return doc;
......
...@@ -291,6 +291,7 @@ KityMinder.registerUI('menu/share/share', function(minder) { ...@@ -291,6 +291,7 @@ KityMinder.registerUI('menu/share/share', function(minder) {
function loadShareList() { function loadShareList() {
return fio.user.check().then(function(user) { return fio.user.check().then(function(user) {
if (!user) return;
$.pajax(BACKEND_URL, { $.pajax(BACKEND_URL, {
type: 'GET', type: 'GET',
......
...@@ -70,75 +70,6 @@ ...@@ -70,75 +70,6 @@
text-shadow: 0 1px black; text-shadow: 0 1px black;
margin: 30px; margin: 30px;
} }
.shortcuts-key {
display: inline-block;
padding: 3px 8px 5px;
font-size: 14px;
font-weight: normal;
line-height: 14px;
color: hsl(0, 0%, 43%);
/* text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); */
white-space: nowrap;
vertical-align: baseline;
background-color: hsl(0, 0%, 99%);
border-radius: 3px;
/* border: 1px solid hsl(0, 0%, 60%); */
text-transform: capitalize;
box-shadow: inset 0 -2px hsl(0, 0%, 92%), inset 0 -3px hsl(0, 100%, 100%), 0 1px 2px rgba(255, 255, 255, 0.3);
}
.mac .shortcuts-key.ctrl,
.mac .shortcuts-key.shift,
.mac .shortcuts-key.alt,
.shortcuts-key.up,
.shortcuts-key.down,
.shortcuts-key.left,
.shortcuts-key.right {
text-indent: -1000px;
position: relative;
width: 9px;
}
.mac .shortcuts-key.ctrl:after,
.mac .shortcuts-key.shift:after,
.mac .shortcuts-key.alt:after,
.shortcuts-key.up:after,
.shortcuts-key.down:after,
.shortcuts-key.left:after,
.shortcuts-key.right:after {
display: block;
position: absolute;
text-align: center;
left: 5px;
top: 4px;
width: 16px;
height: 16px;
text-indent: 0;
}
.mac .shortcuts-key.ctrl:after {
content: '⌘';
}
.mac .shortcuts-key.shift:after {
content: '⇧';
}
.mac .shortcuts-key.alt:after {
content: '⌥';
}
.shortcuts-key.up:after {
content: '↑';
top: 2px;
}
.shortcuts-key.down:after {
content: '↓';
top: 2px;
}
.shortcuts-key.left:after {
content: '←';
top: 2px;
}
.shortcuts-key.right:after {
content: '→';
top: 2px;
}
div.right { div.right {
float: right; float: right;
} }
\ No newline at end of file
...@@ -20,6 +20,14 @@ html, body { ...@@ -20,6 +20,14 @@ html, body {
overflow: hidden; overflow: hidden;
.dock; .dock;
position: fixed; position: fixed;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
cursor: default;
} }
#kityminder { #kityminder {
......
...@@ -172,3 +172,70 @@ input[type=url] { ...@@ -172,3 +172,70 @@ input[type=url] {
from { opacity: 1; } from { opacity: 1; }
to { opacity: 0; } to { opacity: 0; }
} }
.shortcut-key {
display: inline-block;
padding: 3px 8px 5px;
font-size: 14px;
font-weight: normal;
line-height: 14px;
color: hsl(0, 0%, 43%);
/* text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); */
white-space: nowrap;
vertical-align: baseline;
background-color: hsl(0, 0%, 99%);
border-radius: 3px;
/* border: 1px solid hsl(0, 0%, 60%); */
text-transform: capitalize;
box-shadow: inset 0 -2px hsl(0, 0%, 92%), inset 0 -3px hsl(0, 100%, 100%), 0 1px 2px rgba(255, 255, 255, 0.3);
.mac &.ctrl,
.mac &.shift,
.mac &.alt,
&.up,
&.down,
&.left,
&.right {
text-indent: -1000px;
position: relative;
width: 9px;
&:after {
display: block;
position: absolute;
text-align: center;
left: 5px;
top: 4px;
width: 16px;
height: 16px;
text-indent: 0;
}
}
.mac &.ctrl:after {
content: '⌘';
}
.mac &.shift:after {
content: '⇧';
}
.mac &.alt:after {
content: '⌥';
}
&.up:after {
content: '↑';
top: 2px;
}
&.down:after {
content: '↓';
top: 2px;
}
&.left:after {
content: '←';
top: 2px;
}
&.right:after {
content: '→';
top: 2px;
}
}
...@@ -348,4 +348,97 @@ ...@@ -348,4 +348,97 @@
border: 1px solid #ccc; border: 1px solid #ccc;
box-shadow: 3px 3px 6px rgba(0, 0, 0, .3); box-shadow: 3px 3px 6px rgba(0, 0, 0, .3);
} }
}
.fui-popup-menu {
position: absolute;
z-index: 99999999999;
min-width: 160px;
padding: 5px 0;
font-size: 12px;
list-style: none;
background-color: #ffffff;
border-radius: 0;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
background-clip: padding-box;
font-family: Arial, "Heiti SC", "Microsoft Yahei";
&:empty {
display: none !important;
}
.fui-panel-content, .fui-menu {
border: none;
display: block;
}
.fui-item {
.fui-label, .fui-icon {
height: 25px;
line-height: 25px;
}
display: block;
padding: 2px 15px 2px 30px;
height: 25px;
line-height: 25px;
clear: both;
font-weight: normal;
color: #333333;
white-space: nowrap;
text-decoration: none;
font-size: 12px;
transition: none;
&:hover, :focus {
background: #0099f2; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwOTlmMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNDA5NmVlIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwNzZkZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
background: -moz-linear-gradient(top, #0099f2 0%, #4096ee 0%, #0076dd 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#0099f2), color-stop(0%,#4096ee), color-stop(100%,#0076dd)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #0099f2 0%,#4096ee 0%,#0076dd 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #0099f2 0%,#4096ee 0%,#0076dd 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #0099f2 0%,#4096ee 0%,#0076dd 100%); /* IE10+ */
background: hsl(222, 14%, 41%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0099f2', endColorstr='#0076dd',GradientType=0 ); /* IE6-8 */
color: white;
.fui-label {
color: white;
}
}
.shortcut {
float: right;
margin-left: 20px;
.shortcut-key {
font-size: 12px;
border: 1px solid #CCC;
height: 10px;
line-height: 10px;
margin-left: 3px;
}
+ .shortcut:after {
content: 'or';
position: relative;
left: 10px;
}
}
}
.divider, .fui-spliter {
height: 1px;
margin: 5px 0;
overflow: hidden;
background-color: #e5e5e5;
padding: 0;
&:first-child, &:last-child {
display: none;
}
}
} }
\ No newline at end of file
...@@ -754,6 +754,74 @@ input[type=url]:focus { ...@@ -754,6 +754,74 @@ input[type=url]:focus {
opacity: 0; opacity: 0;
} }
} }
.shortcut-key {
display: inline-block;
padding: 3px 8px 5px;
font-size: 14px;
font-weight: normal;
line-height: 14px;
color: #6e6e6e;
/* text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); */
white-space: nowrap;
vertical-align: baseline;
background-color: #fcfcfc;
border-radius: 3px;
/* border: 1px solid hsl(0, 0%, 60%); */
text-transform: capitalize;
box-shadow: inset 0 -2px #ebebeb, inset 0 -3px #ffffff, 0 1px 2px rgba(255, 255, 255, 0.3);
}
.mac .shortcut-key.ctrl,
.mac .shortcut-key.shift,
.mac .shortcut-key.alt,
.shortcut-key.up,
.shortcut-key.down,
.shortcut-key.left,
.shortcut-key.right {
text-indent: -1000px;
position: relative;
width: 9px;
}
.mac .shortcut-key.ctrl:after,
.mac .shortcut-key.shift:after,
.mac .shortcut-key.alt:after,
.shortcut-key.up:after,
.shortcut-key.down:after,
.shortcut-key.left:after,
.shortcut-key.right:after {
display: block;
position: absolute;
text-align: center;
left: 5px;
top: 4px;
width: 16px;
height: 16px;
text-indent: 0;
}
.mac .shortcut-key.ctrl:after {
content: '⌘';
}
.mac .shortcut-key.shift:after {
content: '⇧';
}
.mac .shortcut-key.alt:after {
content: '⌥';
}
.shortcut-key.up:after {
content: '↑';
top: 2px;
}
.shortcut-key.down:after {
content: '↓';
top: 2px;
}
.shortcut-key.left:after {
content: '←';
top: 2px;
}
.shortcut-key.right:after {
content: '→';
top: 2px;
}
.triangle { .triangle {
content: ' '; content: ' ';
display: block; display: block;
...@@ -1133,6 +1201,101 @@ li { ...@@ -1133,6 +1201,101 @@ li {
border: 1px solid #ccc; border: 1px solid #ccc;
box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3); box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3);
} }
.fui-popup-menu {
position: absolute;
z-index: 99999999999;
min-width: 160px;
padding: 5px 0;
font-size: 12px;
list-style: none;
background-color: #ffffff;
border-radius: 0;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
background-clip: padding-box;
font-family: Arial, "Heiti SC", "Microsoft Yahei";
}
.fui-popup-menu:empty {
display: none !important;
}
.fui-popup-menu .fui-panel-content,
.fui-popup-menu .fui-menu {
border: none;
display: block;
}
.fui-popup-menu .fui-item {
display: block;
padding: 2px 15px 2px 30px;
height: 25px;
line-height: 25px;
clear: both;
font-weight: normal;
color: #333333;
white-space: nowrap;
text-decoration: none;
font-size: 12px;
transition: none;
}
.fui-popup-menu .fui-item .fui-label,
.fui-popup-menu .fui-item .fui-icon {
height: 25px;
line-height: 25px;
}
.fui-popup-menu .fui-item:hover,
.fui-popup-menu .fui-item :focus {
background: #0099f2;
/* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwOTlmMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNDA5NmVlIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwNzZkZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
background: -moz-linear-gradient(top, #0099f2 0%, #4096ee 0%, #0076dd 100%);
/* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #0099f2), color-stop(0%, #4096ee), color-stop(100%, #0076dd));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #0099f2 0%, #4096ee 0%, #0076dd 100%);
/* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #0099f2 0%, #4096ee 0%, #0076dd 100%);
/* Opera 11.10+ */
background: -ms-linear-gradient(top, #0099f2 0%, #4096ee 0%, #0076dd 100%);
/* IE10+ */
background: #5a6377;
/* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0099f2', endColorstr='#0076dd', GradientType=0);
/* IE6-8 */
color: white;
}
.fui-popup-menu .fui-item:hover .fui-label,
.fui-popup-menu .fui-item :focus .fui-label {
color: white;
}
.fui-popup-menu .fui-item .shortcut {
float: right;
margin-left: 20px;
}
.fui-popup-menu .fui-item .shortcut .shortcut-key {
font-size: 12px;
border: 1px solid #CCC;
height: 10px;
line-height: 10px;
margin-left: 3px;
}
.fui-popup-menu .fui-item .shortcut + .shortcut:after {
content: 'or';
position: relative;
left: 10px;
}
.fui-popup-menu .divider,
.fui-popup-menu .fui-spliter {
height: 1px;
margin: 5px 0;
overflow: hidden;
background-color: #e5e5e5;
padding: 0;
}
.fui-popup-menu .divider:first-child,
.fui-popup-menu .fui-spliter:first-child,
.fui-popup-menu .divider:last-child,
.fui-popup-menu .fui-spliter:last-child {
display: none;
}
/** /**
* 基本页面样式 * 基本页面样式
*/ */
...@@ -1159,6 +1322,13 @@ body { ...@@ -1159,6 +1322,13 @@ body {
bottom: 0; bottom: 0;
left: 0; left: 0;
position: fixed; position: fixed;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
cursor: default;
} }
#kityminder { #kityminder {
position: absolute; position: absolute;
...@@ -1194,7 +1364,7 @@ body { ...@@ -1194,7 +1364,7 @@ body {
line-height: 40px; line-height: 40px;
padding: 0 30px 0 15px; padding: 0 30px 0 15px;
z-index: 11; z-index: 11;
background-color: hsl(0, 95%, 75%); background-color: #fc8383;
} }
#main-menu-btn:hover { #main-menu-btn:hover {
background-color: #fc9c9c !important; background-color: #fc9c9c !important;
...@@ -2646,74 +2816,6 @@ ul.resource-list li { ...@@ -2646,74 +2816,6 @@ ul.resource-list li {
text-shadow: 0 1px black; text-shadow: 0 1px black;
margin: 30px; margin: 30px;
} }
.shortcuts-key {
display: inline-block;
padding: 3px 8px 5px;
font-size: 14px;
font-weight: normal;
line-height: 14px;
color: #6e6e6e;
/* text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); */
white-space: nowrap;
vertical-align: baseline;
background-color: #fcfcfc;
border-radius: 3px;
/* border: 1px solid hsl(0, 0%, 60%); */
text-transform: capitalize;
box-shadow: inset 0 -2px #ebebeb, inset 0 -3px #ffffff, 0 1px 2px rgba(255, 255, 255, 0.3);
}
.mac .shortcuts-key.ctrl,
.mac .shortcuts-key.shift,
.mac .shortcuts-key.alt,
.shortcuts-key.up,
.shortcuts-key.down,
.shortcuts-key.left,
.shortcuts-key.right {
text-indent: -1000px;
position: relative;
width: 9px;
}
.mac .shortcuts-key.ctrl:after,
.mac .shortcuts-key.shift:after,
.mac .shortcuts-key.alt:after,
.shortcuts-key.up:after,
.shortcuts-key.down:after,
.shortcuts-key.left:after,
.shortcuts-key.right:after {
display: block;
position: absolute;
text-align: center;
left: 5px;
top: 4px;
width: 16px;
height: 16px;
text-indent: 0;
}
.mac .shortcuts-key.ctrl:after {
content: '⌘';
}
.mac .shortcuts-key.shift:after {
content: '⇧';
}
.mac .shortcuts-key.alt:after {
content: '⌥';
}
.shortcuts-key.up:after {
content: '↑';
top: 2px;
}
.shortcuts-key.down:after {
content: '↓';
top: 2px;
}
.shortcuts-key.left:after {
content: '←';
top: 2px;
}
.shortcuts-key.right:after {
content: '→';
top: 2px;
}
div.right { div.right {
float: right; float: right;
} }
......
{"version":3,"sources":["lib/fui/theme/default/fui.all.css","_public.less","_triangle.less","_widgets.less","_kityminder.less","_mainmenu.less","_mainmenu.new.less","_history.less","_tab.less","_search.less","_user.less","_recent.less","_netdisk.less","_localfile.less","_draft.less","_download.less","_priority_panel.less","_progress_panel.less","_resource_panel.less","_themepanel.less","_fontpanel.less","_colorpanel.less","_about.less","_receiver.less","_help.less","_share.less","_icons.less"],"names":[],"mappings":"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"} {"version":3,"sources":["lib/fui/theme/default/fui.all.css","_public.less","_triangle.less","_widgets.less","_kityminder.less","_mainmenu.less","_mainmenu.new.less","_history.less","_tab.less","_search.less","_user.less","_recent.less","_netdisk.less","_localfile.less","_draft.less","_download.less","_priority_panel.less","_progress_panel.less","_resource_panel.less","_themepanel.less","_fontpanel.less","_colorpanel.less","_about.less","_receiver.less","_help.less","_share.less","_icons.less"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -47,6 +47,12 @@ KityMinder.registerUI('topbar/user', function(minder) { ...@@ -47,6 +47,12 @@ KityMinder.registerUI('topbar/user', function(minder) {
$userButton.on('click', function() { $userButton.on('click', function() {
$userMenu.open(); $userMenu.open();
var $dom = $($userMenu.getElement());
var $button = $($userButton.getElement());
$dom.offset({
left: $button.offset().left - $dom.outerWidth() + $button.outerWidth() - 10,
top: $button.offset().top + $button.outerHeight() + 10
});
}); });
menu.on('select', function(e, info) { menu.on('select', function(e, info) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment