mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-25 23:44:54 +01:00
Add support for shink on collapsed nodes.
This commit is contained in:
parent
51bc3e563a
commit
ef2902d724
@ -394,7 +394,7 @@ mindplot.Designer = new Class({
|
||||
|
||||
|
||||
getMindmapProperties : function() {
|
||||
return {zoom:this.getModel().getZoom(), layoutManager:this._layoutManager.getClassName()};
|
||||
return {zoom:this.getModel().getZoom()};
|
||||
},
|
||||
|
||||
loadMap : function(mindmapModel) {
|
||||
|
@ -39,8 +39,8 @@ mindplot.DesignerKeyboard = new Class({
|
||||
var node = model.selectedTopic();
|
||||
if (node) {
|
||||
var model = topic.getModel();
|
||||
var isShrink = !model.areChildrenShrinked();
|
||||
topic.setChildrenShrinked(isShrink);
|
||||
var isShrink = !model.areChildrenShrunken();
|
||||
topic.setChildrenShrunken(isShrink);
|
||||
}
|
||||
}.bind(this),
|
||||
|
||||
@ -141,7 +141,7 @@ mindplot.DesignerKeyboard = new Class({
|
||||
if (node.getPosition().x < 0) {
|
||||
this._goToParent(designer, node);
|
||||
}
|
||||
else if (!node.areChildrenShrinked()) {
|
||||
else if (!node.areChildrenShrunken()) {
|
||||
this._goToChild(designer, node);
|
||||
}
|
||||
}
|
||||
@ -161,7 +161,7 @@ mindplot.DesignerKeyboard = new Class({
|
||||
if (node.getPosition().x > 0) {
|
||||
this._goToParent(designer, node);
|
||||
}
|
||||
else if (!node.areChildrenShrinked()) {
|
||||
else if (!node.areChildrenShrunken()) {
|
||||
this._goToChild(designer, node);
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ mindplot.DragTopic = new Class({
|
||||
$assert(targetTopic, 'parent can not be null');
|
||||
|
||||
var result = true;
|
||||
if (!targetTopic.areChildrenShrinked() && !targetTopic.isCollapsed()) {
|
||||
if (!targetTopic.areChildrenShrunken() && !targetTopic.isCollapsed()) {
|
||||
// Dragged node can not be connected to himself.
|
||||
if (targetTopic == this._draggedNode) {
|
||||
result = false;
|
||||
|
@ -19,14 +19,14 @@
|
||||
mindplot.ShirinkConnector = new Class({
|
||||
initialize: function(topic) {
|
||||
|
||||
var elipse = new web2d.Elipse(mindplot.Topic.prototype.INNER_RECT_ATTRIBUTES);
|
||||
this._elipse = elipse;
|
||||
elipse.setFill('rgb(62,118,179)');
|
||||
var ellipse = new web2d.Elipse(mindplot.Topic.prototype.INNER_RECT_ATTRIBUTES);
|
||||
this._ellipse = ellipse;
|
||||
ellipse.setFill('rgb(62,118,179)');
|
||||
|
||||
elipse.setSize(mindplot.Topic.CONNECTOR_WIDTH, mindplot.Topic.CONNECTOR_WIDTH);
|
||||
elipse.addEvent('click', function(event) {
|
||||
ellipse.setSize(mindplot.Topic.CONNECTOR_WIDTH, mindplot.Topic.CONNECTOR_WIDTH);
|
||||
ellipse.addEvent('click', function(event) {
|
||||
var model = topic.getModel();
|
||||
var collapse = !model.areChildrenShrinked();
|
||||
var collapse = !model.areChildrenShrunken();
|
||||
|
||||
var topicId = topic.getId();
|
||||
var actionDispatcher = mindplot.ActionDispatcher.getInstance();
|
||||
@ -36,34 +36,35 @@ mindplot.ShirinkConnector = new Class({
|
||||
|
||||
});
|
||||
|
||||
elipse.addEvent('mousedown', function(event) {
|
||||
ellipse.addEvent('mousedown', function(event) {
|
||||
// Avoid node creation ...
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
elipse.addEvent('dblclick', function(event) {
|
||||
ellipse.addEvent('dblclick', function(event) {
|
||||
// Avoid node creation ...
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
elipse.addEvent('mouseover', function(event) {
|
||||
ellipse.addEvent('mouseover', function(event) {
|
||||
|
||||
elipse.setFill('rgb(153, 0, 255)');
|
||||
ellipse.setFill('rgb(153, 0, 255)');
|
||||
});
|
||||
|
||||
elipse.addEvent('mouseout', function(event) {
|
||||
ellipse.addEvent('mouseout', function(event) {
|
||||
var color = topic.getBackgroundColor();
|
||||
this.setFill(color);
|
||||
}.bind(this));
|
||||
|
||||
elipse.setCursor('default');
|
||||
ellipse.setCursor('default');
|
||||
this._fillColor = '#f7f7f7';
|
||||
var model = topic.getModel();
|
||||
this.changeRender(model.areChildrenShrinked());
|
||||
this.changeRender(model.areChildrenShrunken());
|
||||
|
||||
},
|
||||
|
||||
changeRender: function(isShrink) {
|
||||
var elipse = this._elipse;
|
||||
var elipse = this._ellipse;
|
||||
if (isShrink) {
|
||||
elipse.setStroke('2', 'solid');
|
||||
} else {
|
||||
@ -72,36 +73,35 @@ mindplot.ShirinkConnector = new Class({
|
||||
},
|
||||
|
||||
setVisibility: function(value) {
|
||||
this._elipse.setVisibility(value);
|
||||
this._ellipse.setVisibility(value);
|
||||
},
|
||||
|
||||
setOpacity: function(opacity) {
|
||||
this._elipse.setOpacity(opacity);
|
||||
this._ellipse.setOpacity(opacity);
|
||||
},
|
||||
|
||||
setFill: function(color) {
|
||||
this._fillColor = color;
|
||||
this._elipse.setFill(color);
|
||||
this._ellipse.setFill(color);
|
||||
},
|
||||
|
||||
setAttribute: function(name, value) {
|
||||
this._elipse.setAttribute(name, value);
|
||||
this._ellipse.setAttribute(name, value);
|
||||
},
|
||||
|
||||
addToWorkspace: function(group) {
|
||||
group.appendChild(this._elipse);
|
||||
group.appendChild(this._ellipse);
|
||||
},
|
||||
|
||||
|
||||
setPosition: function(x, y) {
|
||||
this._elipse.setPosition(x, y);
|
||||
this._ellipse.setPosition(x, y);
|
||||
},
|
||||
|
||||
moveToBack: function() {
|
||||
this._elipse.moveToBack();
|
||||
this._ellipse.moveToBack();
|
||||
},
|
||||
|
||||
moveToFront: function() {
|
||||
this._elipse.moveToFront();
|
||||
this._ellipse.moveToFront();
|
||||
}
|
||||
});
|
@ -220,7 +220,7 @@ mindplot.StandaloneActionDispatcher = new Class({
|
||||
$assert(topicsIds, "topicsIds can not be null");
|
||||
|
||||
var commandFunc = function(topic, isShrink) {
|
||||
topic.setChildrenShrinked(isShrink);
|
||||
topic.setChildrenShrunken(isShrink);
|
||||
return !isShrink;
|
||||
};
|
||||
|
||||
|
@ -696,9 +696,9 @@ mindplot.Topic = new Class({
|
||||
elem.addEvent('mousedown', mouseDown);
|
||||
},
|
||||
|
||||
areChildrenShrinked : function() {
|
||||
areChildrenShrunken : function() {
|
||||
var model = this.getModel();
|
||||
return model.areChildrenShrinked();
|
||||
return model.areChildrenShrunken();
|
||||
},
|
||||
|
||||
isCollapsed : function() {
|
||||
@ -707,16 +707,16 @@ mindplot.Topic = new Class({
|
||||
|
||||
var current = this.getParent();
|
||||
while (current && !result) {
|
||||
result = current.areChildrenShrinked();
|
||||
result = current.areChildrenShrunken();
|
||||
current = current.getParent();
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
setChildrenShrinked : function(value) {
|
||||
setChildrenShrunken : function(value) {
|
||||
// Update Model ...
|
||||
var model = this.getModel();
|
||||
model.setChildrenShrinked(value);
|
||||
model.setChildrenShrunken(value);
|
||||
|
||||
// Change render base on the state.
|
||||
var shrinkConnector = this.getShrinkConnector();
|
||||
@ -724,7 +724,7 @@ mindplot.Topic = new Class({
|
||||
|
||||
// Hide children ...
|
||||
core.Utils.setChildrenVisibilityAnimated(this, !value);
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeShrinkEvent, [this]);
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeShrinkEvent, this.getModel());
|
||||
},
|
||||
|
||||
getShrinkConnector : function() {
|
||||
@ -741,7 +741,6 @@ mindplot.Topic = new Class({
|
||||
handleMouseOver : function() {
|
||||
var outerShape = this.getOuterShape();
|
||||
outerShape.setOpacity(1);
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeMouseOverEvent, [this]);
|
||||
},
|
||||
|
||||
handleMouseOut : function(event) {
|
||||
@ -749,7 +748,6 @@ mindplot.Topic = new Class({
|
||||
if (!this.isOnFocus()) {
|
||||
outerShape.setOpacity(0);
|
||||
}
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeMouseOutEvent, [this]);
|
||||
},
|
||||
|
||||
showTextEditor : function(text) {
|
||||
@ -993,7 +991,7 @@ mindplot.Topic = new Class({
|
||||
var children = this._getChildren();
|
||||
var model = this.getModel();
|
||||
|
||||
isVisible = isVisible ? !model.areChildrenShrinked() : isVisible;
|
||||
isVisible = isVisible ? !model.areChildrenShrunken() : isVisible;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
child.setVisibility(isVisible);
|
||||
@ -1067,7 +1065,6 @@ mindplot.Topic = new Class({
|
||||
outgoingLine.removeFromWorkspace(workspace);
|
||||
|
||||
// Remove from workspace.
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.ONodeDisconnectEvent, [targetTopic, this]);
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeDisconnectEvent, this.getModel());
|
||||
|
||||
// Change text based on the current connection ...
|
||||
@ -1114,9 +1111,6 @@ mindplot.Topic = new Class({
|
||||
var childModel = this.getModel();
|
||||
childModel.connectTo(targetModel);
|
||||
|
||||
// Update topic position based on the state ...
|
||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.ONodeConnectEvent, [targetTopic, this]);
|
||||
|
||||
// Create a connection line ...
|
||||
var outgoingLine = new mindplot.ConnectionLine(this, targetTopic);
|
||||
if ($defined(isVisible))
|
||||
|
@ -67,7 +67,7 @@ mindplot.XMLMindmapSerializer_Beta = new Class({
|
||||
parentTopic.setAttribute('shape', shape);
|
||||
}
|
||||
|
||||
if (topic.areChildrenShrinked()) {
|
||||
if (topic.areChildrenShrunken()) {
|
||||
parentTopic.setAttribute('shrink', true);
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ mindplot.XMLMindmapSerializer_Beta = new Class({
|
||||
|
||||
var isShrink = domElem.getAttribute('shrink');
|
||||
if ($defined(isShrink)) {
|
||||
topic.setChildrenShrinked(isShrink);
|
||||
topic.setChildrenShrunken(isShrink);
|
||||
}
|
||||
|
||||
var fontStyle = domElem.getAttribute('fontStyle');
|
||||
|
@ -85,7 +85,7 @@ mindplot.XMLMindmapSerializer_Pela = new Class({
|
||||
parentTopic.setAttribute('shape', shape);
|
||||
}
|
||||
|
||||
if (topic.areChildrenShrinked()) {
|
||||
if (topic.areChildrenShrunken()) {
|
||||
parentTopic.setAttribute('shrink', true);
|
||||
}
|
||||
|
||||
@ -270,7 +270,7 @@ mindplot.XMLMindmapSerializer_Pela = new Class({
|
||||
|
||||
var isShrink = domElem.getAttribute('shrink');
|
||||
if ($defined(isShrink)) {
|
||||
topic.setChildrenShrinked(isShrink);
|
||||
topic.setChildrenShrunken(isShrink);
|
||||
}
|
||||
|
||||
var fontStyle = domElem.getAttribute('fontStyle');
|
||||
|
@ -27,11 +27,11 @@ mindplot.layout.BaseLayoutManager = new Class({
|
||||
this._createBoard();
|
||||
this._designer = designer;
|
||||
// mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeResizeEvent, this._nodeResizeEvent.bind(this));
|
||||
mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeMoveEvent, this._nodeMoveEvent.bind(this));
|
||||
mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.ONodeDisconnectEvent, this._nodeDisconnectEvent.bind(this));
|
||||
mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.ONodeConnectEvent, this._nodeConnectEvent.bind(this));
|
||||
mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeRepositionateEvent, this._nodeRepositionateEvent.bind(this));
|
||||
mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeShrinkEvent, this._nodeShrinkEvent.bind(this));
|
||||
// mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeMoveEvent, this._nodeMoveEvent.bind(this));
|
||||
// mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.ONodeDisconnectEvent, this._nodeDisconnectEvent.bind(this));
|
||||
// mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.ONodeConnectEvent, this._nodeConnectEvent.bind(this));
|
||||
// mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeRepositionateEvent, this._nodeRepositionateEvent.bind(this));
|
||||
// mindplot.EventBus.instance.addEvent(mindplot.EventBus.events.NodeShrinkEvent, this._nodeShrinkEvent.bind(this));
|
||||
},
|
||||
|
||||
_nodeResizeEvent:function(node) {
|
||||
|
@ -131,7 +131,7 @@ mindplot.layout.boards.original.FixedDistanceBoard = new Class({
|
||||
var entries = this._entries;
|
||||
var height = 0;
|
||||
var model = this._topic.getModel();
|
||||
if (entries.length >= 1 && !model.areChildrenShrinked()) {
|
||||
if (entries.length >= 1 && !model.areChildrenShrunken()) {
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var e = entries[i];
|
||||
if (e && e.getTopic()) {
|
||||
|
@ -163,25 +163,12 @@ mindplot.model.INodeModel = new Class({
|
||||
this.putProperty('backgroundColor', color);
|
||||
},
|
||||
|
||||
areChildrenShrinked : function() {
|
||||
return this.getProperty('childrenShrinked');
|
||||
areChildrenShrunken : function() {
|
||||
return this.getProperty('shrunken');
|
||||
},
|
||||
|
||||
setChildrenShrinked : function(value) {
|
||||
this.putProperty('childrenShrinked', value);
|
||||
},
|
||||
|
||||
setFinalPosition : function(x, y) {
|
||||
$assert(x, "x coordinate must be defined");
|
||||
$assert(y, "y coordinate must be defined");
|
||||
|
||||
this.putProperty('finalPosition', '{x:' + parseInt(x) + ',y:' + parseInt(y) + '}');
|
||||
},
|
||||
|
||||
getFinalPosition : function() {
|
||||
var value = this.getProperty('finalPosition');
|
||||
return eval("(" + value + ")");
|
||||
|
||||
setChildrenShrunken : function(value) {
|
||||
this.putProperty('shrunken', value);
|
||||
},
|
||||
|
||||
isNodeModel : function() {
|
||||
|
@ -26,7 +26,7 @@ mindplot.model.NodeModel = new Class({
|
||||
this.parent(mindmap);
|
||||
this.setId(id);
|
||||
this.setType(type);
|
||||
this.areChildrenShrinked(false);
|
||||
this.areChildrenShrunken(false);
|
||||
this.setSize(50, 20);
|
||||
|
||||
this._children = [];
|
||||
|
@ -29,7 +29,7 @@ mindplot.nlayout.AbstractBasicSorter = new Class({
|
||||
|
||||
var result;
|
||||
var children = treeSet.getChildren(node);
|
||||
if (children.length == 0) {
|
||||
if (children.length == 0 || node.areChildrenShrunken()) {
|
||||
result = height;
|
||||
} else {
|
||||
var childrenHeight = 0;
|
||||
|
@ -33,7 +33,7 @@ mindplot.nlayout.BalancedSorter = new Class({
|
||||
|
||||
var result;
|
||||
var children = treeSet.getChildren(node);
|
||||
if (children.length == 0) {
|
||||
if (children.length == 0 || node.areChildrenShrunken()) {
|
||||
result = height;
|
||||
} else {
|
||||
var childrenHeight = 0;
|
||||
|
@ -24,13 +24,8 @@ mindplot.EventBus = new Class({
|
||||
mindplot.EventBus.events = {
|
||||
NodeResizeEvent:'NodeResizeEvent',
|
||||
NodeMoveEvent:'NodeMoveEvent',
|
||||
ONodeDisconnectEvent:'ONodeDisconnectEvent',
|
||||
ONodeConnectEvent:'ONodeConnectEvent',
|
||||
NodeRepositionateEvent:'NodeRepositionateEvent',
|
||||
NodeShrinkEvent:'NodeShrinkEvent',
|
||||
NodeMouseOverEvent:'NodeMouseOverEvent',
|
||||
NodeMouseOutEvent:'NodeMouseOutEvent',
|
||||
|
||||
NodeConnectEvent:'NodeConnectEvent',
|
||||
NodeDisconnectEvent:'NodeDisconnectEvent',
|
||||
NodeAdded:'NodeAdded',
|
||||
|
@ -70,7 +70,7 @@ mindplot.nlayout.EventBusDispatcher = new Class({
|
||||
},
|
||||
|
||||
_nodeShrinkEvent: function(node) {
|
||||
console.log("mindplot.nlayout.EventBusDispatcher._nodeShrinkEvent: Not Implemented yet");
|
||||
this._layoutManager.updateShrinkState(node.getId(), node.areChildrenShrunken());
|
||||
},
|
||||
|
||||
_nodeAdded: function(node) {
|
||||
|
@ -30,15 +30,19 @@ mindplot.nlayout.LayoutManager = new Class({
|
||||
},
|
||||
|
||||
updateNodeSize: function(id, size) {
|
||||
$assert($defined(id), "id can not be null");
|
||||
|
||||
var node = this._treeSet.find(id);
|
||||
node.setSize(size);
|
||||
console.log("Size:"+size.width);
|
||||
|
||||
// Todo: This must be completed ...
|
||||
},
|
||||
|
||||
updateShirkState: function(id, isShrink) {
|
||||
// @Todo: finish...
|
||||
updateShrinkState: function(id, value) {
|
||||
$assert($defined(id), "id can not be null");
|
||||
|
||||
var node = this._treeSet.find(id);
|
||||
node.setShrunken(value);
|
||||
},
|
||||
|
||||
find: function(id) {
|
||||
@ -46,7 +50,7 @@ mindplot.nlayout.LayoutManager = new Class({
|
||||
},
|
||||
|
||||
move: function() {
|
||||
//TODO(gb): implement
|
||||
//TODO(gb): implement
|
||||
},
|
||||
|
||||
connectNode: function(parentId, childId, order) {
|
||||
@ -101,7 +105,7 @@ mindplot.nlayout.LayoutManager = new Class({
|
||||
size = size || {width:200,height:200};
|
||||
var squaresize = 10;
|
||||
var canvas = Raphael(containerId, size.width, size.height);
|
||||
canvas.drawGrid(0, 0, size.width, size.height, size.width/squaresize, size.height/squaresize);
|
||||
canvas.drawGrid(0, 0, size.width, size.height, size.width / squaresize, size.height / squaresize);
|
||||
this._treeSet.plot(canvas);
|
||||
},
|
||||
|
||||
|
@ -28,15 +28,24 @@ mindplot.nlayout.Node = new Class({
|
||||
|
||||
this.setSize(size);
|
||||
this.setPosition(position);
|
||||
this.setShrunken(false);
|
||||
},
|
||||
|
||||
getId:function() {
|
||||
return this._id;
|
||||
},
|
||||
|
||||
setShrunken: function(value) {
|
||||
this._setProperty('shrink', value);
|
||||
},
|
||||
|
||||
areChildrenShrunken: function() {
|
||||
return this._getProperty('shrink');
|
||||
},
|
||||
|
||||
setOrder: function(order) {
|
||||
$assert(typeof order === 'number' && isFinite(order), "Order can not be null. Value:" + order);
|
||||
this._setProperty('order', order, false);
|
||||
this._setProperty('order', order);
|
||||
},
|
||||
|
||||
resetPositionState : function() {
|
||||
|
@ -130,6 +130,6 @@ mindplot.nlayout.SymmetricSorter = new Class({
|
||||
});
|
||||
|
||||
mindplot.nlayout.SymmetricSorter.INTERNODE_VERTICAL_PADDING = 5;
|
||||
mindplot.nlayout.SymmetricSorter.INTERNODE_HORIZONTAL_PADDING = 5;
|
||||
mindplot.nlayout.SymmetricSorter.INTERNODE_HORIZONTAL_PADDING = 30;
|
||||
|
||||
|
||||
|
@ -61,7 +61,7 @@ TestCase("Model Migration Tests",{
|
||||
assertEquals(position1.x, position2.x);
|
||||
assertEquals(position1.y, position2.y);
|
||||
}
|
||||
assertEquals(node1.areChildrenShrinked(), node2.areChildrenShrinked());
|
||||
assertEquals(node1.areChildrenShrunken(), node2.areChildrenShrunken());
|
||||
assertEquals(node1.getType(), node2.getType());
|
||||
assertEquals(node1.getText(), node2.getText());
|
||||
assertEquals(node1.isConnected(), node2.isConnected());
|
||||
|
Loading…
Reference in New Issue
Block a user