mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-22 22:27:55 +01:00
Extend assert support.
This commit is contained in:
parent
d06275f524
commit
665c070359
@ -59,7 +59,7 @@ objects.extend = function(subClass, baseClass) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
$assert = function(assert, message) {
|
$assert = function(assert, message) {
|
||||||
if (!assert) {
|
if (!$defined(assert) || !assert) {
|
||||||
var stack;
|
var stack;
|
||||||
try {
|
try {
|
||||||
null.eval();
|
null.eval();
|
||||||
|
@ -66,7 +66,7 @@ mindplot.BidirectionalArray = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
get :function(index, sign) {
|
get :function(index, sign) {
|
||||||
$assert($defined(index), 'Illegal argument, index must be passed.');
|
$assert(index, 'Illegal argument, index must be passed.');
|
||||||
if ($defined(sign)) {
|
if ($defined(sign)) {
|
||||||
$assert(index >= 0, 'Illegal absIndex value');
|
$assert(index >= 0, 'Illegal absIndex value');
|
||||||
index = index * sign;
|
index = index * sign;
|
||||||
@ -82,14 +82,14 @@ mindplot.BidirectionalArray = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
set : function(index, elem) {
|
set : function(index, elem) {
|
||||||
$assert($defined(index), 'Illegal index value');
|
$assert(index, 'Illegal index value');
|
||||||
|
|
||||||
var array = (index >= 0) ? this._rightElem : this._leftElem;
|
var array = (index >= 0) ? this._rightElem : this._leftElem;
|
||||||
array[Math.abs(index)] = elem;
|
array[Math.abs(index)] = elem;
|
||||||
},
|
},
|
||||||
|
|
||||||
length : function(index) {
|
length : function(index) {
|
||||||
$assert($defined(index), 'Illegal index value');
|
$assert(index, 'Illegal index value');
|
||||||
return (index >= 0) ? this._rightElem.length : this._leftElem.length;
|
return (index >= 0) ? this._rightElem.length : this._leftElem.length;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ mindplot.BoardEntry = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setUpperLimit : function(value) {
|
setUpperLimit : function(value) {
|
||||||
$assert($defined(value), "upper limit can not be null");
|
$assert(value, "upper limit can not be null");
|
||||||
$assert(!isNaN(value), "illegal value");
|
$assert(!isNaN(value), "illegal value");
|
||||||
this._upperLimit = value;
|
this._upperLimit = value;
|
||||||
},
|
},
|
||||||
@ -56,7 +56,7 @@ mindplot.BoardEntry = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setLowerLimit : function(value) {
|
setLowerLimit : function(value) {
|
||||||
$assert($defined(value), "upper limit can not be null");
|
$assert(value, "upper limit can not be null");
|
||||||
$assert(!isNaN(value), "illegal value");
|
$assert(!isNaN(value), "illegal value");
|
||||||
this._lowerLimit = value;
|
this._lowerLimit = value;
|
||||||
},
|
},
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
mindplot.DragTopic = function(dragShape, draggedNode)
|
mindplot.DragTopic = function(dragShape, draggedNode)
|
||||||
{
|
{
|
||||||
$assert($defined(dragShape), 'Rect can not be null.');
|
$assert(dragShape, 'Rect can not be null.');
|
||||||
$assert($defined(draggedNode), 'draggedNode can not be null.');
|
$assert(draggedNode, 'draggedNode can not be null.');
|
||||||
|
|
||||||
this._elem2d = dragShape;
|
this._elem2d = dragShape;
|
||||||
this._order = null;
|
this._order = null;
|
||||||
@ -68,7 +68,7 @@ mindplot.DragTopic.prototype.disconnect = function(workspace)
|
|||||||
|
|
||||||
mindplot.DragTopic.prototype.canBeConnectedTo = function(targetTopic)
|
mindplot.DragTopic.prototype.canBeConnectedTo = function(targetTopic)
|
||||||
{
|
{
|
||||||
$assert($defined(targetTopic), 'parent can not be null');
|
$assert(targetTopic, 'parent can not be null');
|
||||||
|
|
||||||
var result = true;
|
var result = true;
|
||||||
if (!targetTopic.areChildrenShrinked() && !targetTopic.isCollapsed())
|
if (!targetTopic.areChildrenShrinked() && !targetTopic.isCollapsed())
|
||||||
|
@ -245,7 +245,7 @@ mindplot.FixedDistanceBoard = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
lookupEntryByPosition : function(pos) {
|
lookupEntryByPosition : function(pos) {
|
||||||
$assert($defined(pos), 'position can not be null');
|
$assert(pos, 'position can not be null');
|
||||||
|
|
||||||
var entries = this._entries;
|
var entries = this._entries;
|
||||||
var result = null;
|
var result = null;
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
mindplot.Icon = new Class({
|
mindplot.Icon = new Class({
|
||||||
initialize:function(url) {
|
initialize:function(url) {
|
||||||
|
$assert(url, 'topic can not be null');
|
||||||
this._image = new web2d.Image();
|
this._image = new web2d.Image();
|
||||||
this._image.setHref(url);
|
this._image.setHref(url);
|
||||||
this._image.setSize(12, 12);
|
this._image.setSize(12, 12);
|
||||||
|
@ -1,64 +1,58 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.IconModel = function(iconType, topic)
|
mindplot.IconModel = new Class({
|
||||||
{
|
initialize:function(iconType, topic) {
|
||||||
$assert(iconType, 'Icon id can not be null');
|
$assert(iconType, 'Icon id can not be null');
|
||||||
$assert(topic, 'topic can not be null');
|
$assert(topic, 'topic can not be null');
|
||||||
this._iconType = iconType;
|
|
||||||
this._id = mindplot.IconModel._nextUUID();
|
|
||||||
this._topic = topic;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.IconModel.prototype.getId = function()
|
this._iconType = iconType;
|
||||||
{
|
this._id = mindplot.IconModel._nextUUID();
|
||||||
return this._id;
|
this._topic = topic;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.IconModel.prototype.getIconType = function()
|
getId : function() {
|
||||||
{
|
return this._id;
|
||||||
return this._iconType;
|
},
|
||||||
};
|
|
||||||
|
getIconType : function() {
|
||||||
|
return this._iconType;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
mindplot.IconModel.prototype.setIconType = function(iconType)
|
setIconType : function(iconType) {
|
||||||
{
|
this._iconType = iconType;
|
||||||
this._iconType = iconType;
|
},
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.IconModel.prototype.getTopic = function()
|
getTopic : function() {
|
||||||
{
|
return this._topic;
|
||||||
return this._topic;
|
},
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.IconModel.prototype.isIconModel = function()
|
isIconModel : function() {
|
||||||
{
|
return true;
|
||||||
return true;
|
}});
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo: This method must be implemented.
|
* @todo: This method must be implemented.
|
||||||
*/
|
*/
|
||||||
mindplot.IconModel._nextUUID = function()
|
mindplot.IconModel._nextUUID = function() {
|
||||||
{
|
if (!$defined(this._uuid)) {
|
||||||
if (!$defined(this._uuid))
|
|
||||||
{
|
|
||||||
this._uuid = 0;
|
this._uuid = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,155 +1,170 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.ImageIcon = function(iconModel, topic, designer) {
|
mindplot.ImageIcon = new Class(
|
||||||
|
|
||||||
$assert(iconModel, 'iconModel can not be null');
|
|
||||||
$assert(topic, 'topic can not be null');
|
|
||||||
$assert(designer, 'designer can not be null');
|
|
||||||
this._topic = topic;
|
|
||||||
this._iconModel = iconModel;
|
|
||||||
this._designer = designer;
|
|
||||||
|
|
||||||
// Build graph image representation ...
|
|
||||||
var iconType = iconModel.getIconType();
|
|
||||||
var imgUrl = this._getImageUrl(iconType);
|
|
||||||
mindplot.Icon.call(this, imgUrl);
|
|
||||||
|
|
||||||
//Remove
|
|
||||||
var divContainer = designer.getWorkSpace().getScreenManager().getContainer();
|
|
||||||
var tip = mindplot.Tip.getInstance(divContainer);
|
|
||||||
|
|
||||||
var container = new Element('div');
|
|
||||||
var removeImage = new Element('img');
|
|
||||||
removeImage.src = "../images/bin.png";
|
|
||||||
removeImage.inject(container);
|
|
||||||
|
|
||||||
if (!$defined(designer._viewMode)|| ($defined(designer._viewMode) && !designer._viewMode))
|
|
||||||
{
|
{
|
||||||
|
Extends:mindplot.Icon,
|
||||||
|
initialize:function(iconModel, topic, designer) {
|
||||||
|
$assert(iconModel, 'iconModel can not be null');
|
||||||
|
$assert(topic, 'topic can not be null');
|
||||||
|
$assert(designer, 'designer can not be null');
|
||||||
|
this._topic = topic;
|
||||||
|
this._iconModel = iconModel;
|
||||||
|
this._designer = designer;
|
||||||
|
|
||||||
removeImage.addEvent('click', function(event) {
|
// Build graph image representation ...
|
||||||
var actionRunner = designer._actionRunner;
|
|
||||||
var command = new mindplot.commands.RemoveIconFromTopicCommand(this._topic.getId(), iconModel);
|
|
||||||
actionRunner.execute(command);
|
|
||||||
tip.forceClose();
|
|
||||||
}.bindWithEvent(this));
|
|
||||||
|
|
||||||
//Icon
|
|
||||||
var image = this.getImage();
|
|
||||||
image.addEventListener('click', function(event) {
|
|
||||||
var iconType = iconModel.getIconType();
|
var iconType = iconModel.getIconType();
|
||||||
var newIconType = this._getNextFamilyIconId(iconType);
|
var imgUrl = this._getImageUrl(iconType);
|
||||||
iconModel.setIconType(newIconType);
|
|
||||||
|
|
||||||
var imgUrl = this._getImageUrl(newIconType);
|
this.parent(imgUrl);
|
||||||
this._image.setHref(imgUrl);
|
|
||||||
|
|
||||||
// // @Todo: Support revert of change icon ...
|
//Remove
|
||||||
// var actionRunner = designer._actionRunner;
|
var divContainer = designer.getWorkSpace().getScreenManager().getContainer();
|
||||||
// var command = new mindplot.commands.ChangeIconFromTopicCommand(this._topic.getId());
|
var tip = mindplot.Tip.getInstance(divContainer);
|
||||||
// this._actionRunner.execute(command);
|
|
||||||
|
var container = new Element('div');
|
||||||
|
var removeImage = new Element('img');
|
||||||
|
removeImage.src = "../images/bin.png";
|
||||||
|
removeImage.inject(container);
|
||||||
|
|
||||||
|
if (!$defined(designer._viewMode) || ($defined(designer._viewMode) && !designer._viewMode)) {
|
||||||
|
|
||||||
|
removeImage.addEvent('click', function(event) {
|
||||||
|
var actionRunner = designer._actionRunner;
|
||||||
|
var command = new mindplot.commands.RemoveIconFromTopicCommand(this._topic.getId(), iconModel);
|
||||||
|
actionRunner.execute(command);
|
||||||
|
tip.forceClose();
|
||||||
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
|
//Icon
|
||||||
|
var image = this.getImage();
|
||||||
|
image.addEventListener('click', function(event) {
|
||||||
|
var iconType = iconModel.getIconType();
|
||||||
|
var newIconType = this._getNextFamilyIconId(iconType);
|
||||||
|
iconModel.setIconType(newIconType);
|
||||||
|
|
||||||
|
var imgUrl = this._getImageUrl(newIconType);
|
||||||
|
this._image.setHref(imgUrl);
|
||||||
|
|
||||||
|
// // @Todo: Support revert of change icon ...
|
||||||
|
// var actionRunner = designer._actionRunner;
|
||||||
|
// var command = new mindplot.commands.ChangeIconFromTopicCommand(this._topic.getId());
|
||||||
|
// this._actionRunner.execute(command);
|
||||||
|
|
||||||
|
|
||||||
}.bindWithEvent(this));
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
var imageIcon = this;
|
var imageIcon = this;
|
||||||
image.addEventListener('mouseover', function(event) {
|
image.addEventListener('mouseover', function(event) {
|
||||||
tip.open(event, container, imageIcon);
|
tip.open(event, container, imageIcon);
|
||||||
});
|
});
|
||||||
image.addEventListener('mouseout', function(event) {
|
image.addEventListener('mouseout', function(event) {
|
||||||
tip.close(event);
|
tip.close(event);
|
||||||
});
|
});
|
||||||
image.addEventListener('mousemove', function(event) {
|
image.addEventListener('mousemove', function(event) {
|
||||||
tip.updatePosition(event);
|
tip.updatePosition(event);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
objects.extend(mindplot.ImageIcon, mindplot.Icon);
|
|
||||||
|
|
||||||
mindplot.ImageIcon.prototype.initialize = function() {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ImageIcon.prototype._getImageUrl = function(iconId) {
|
|
||||||
return "../icons/"+iconId+".png";
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ImageIcon.prototype.getModel = function() {
|
|
||||||
return this._iconModel;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
mindplot.ImageIcon.prototype._getNextFamilyIconId = function(iconId) {
|
|
||||||
|
|
||||||
var familyIcons = this._getFamilyIcons(iconId);
|
|
||||||
$assert(familyIcons != null, "Family Icon not found!");
|
|
||||||
|
|
||||||
var result = null;
|
|
||||||
for (var i = 0; i < familyIcons.length && result == null; i++)
|
|
||||||
{
|
|
||||||
if (familyIcons[i] == iconId) {
|
|
||||||
var nextIconId;
|
|
||||||
//Is last one?
|
|
||||||
if (i == (familyIcons.length - 1)) {
|
|
||||||
result = familyIcons[0];
|
|
||||||
} else {
|
|
||||||
result = familyIcons[i + 1];
|
|
||||||
}
|
}
|
||||||
break;
|
},
|
||||||
|
|
||||||
|
_getImageUrl : function(iconId) {
|
||||||
|
return "../icons/" + iconId + ".png";
|
||||||
|
},
|
||||||
|
|
||||||
|
getModel : function() {
|
||||||
|
return this._iconModel;
|
||||||
|
},
|
||||||
|
|
||||||
|
_getNextFamilyIconId : function(iconId) {
|
||||||
|
|
||||||
|
var familyIcons = this._getFamilyIcons(iconId);
|
||||||
|
$assert(familyIcons != null, "Family Icon not found!");
|
||||||
|
|
||||||
|
var result = null;
|
||||||
|
for (var i = 0; i < familyIcons.length && result == null; i++) {
|
||||||
|
if (familyIcons[i] == iconId) {
|
||||||
|
var nextIconId;
|
||||||
|
//Is last one?
|
||||||
|
if (i == (familyIcons.length - 1)) {
|
||||||
|
result = familyIcons[0];
|
||||||
|
} else {
|
||||||
|
result = familyIcons[i + 1];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
_getFamilyIcons : function(iconId) {
|
||||||
|
$assert(iconId != null, "id must not be null");
|
||||||
|
$assert(iconId.indexOf("_") != -1, "Invalid icon id (it must contain '_')");
|
||||||
|
|
||||||
|
var result = null;
|
||||||
|
for (var i = 0; i < mindplot.ImageIcon.prototype.ICON_FAMILIES.length; i++) {
|
||||||
|
var family = mindplot.ImageIcon.prototype.ICON_FAMILIES[i];
|
||||||
|
var iconFamilyId = iconId.substr(0, iconId.indexOf("_"));
|
||||||
|
|
||||||
|
if (family.id == iconFamilyId) {
|
||||||
|
result = family.icons;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
getId : function() {
|
||||||
|
return this._iconType;
|
||||||
|
},
|
||||||
|
|
||||||
|
getUiId : function() {
|
||||||
|
return this._uiId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ImageIcon.prototype._getFamilyIcons = function(iconId) {
|
mindplot.ImageIcon.prototype.ICON_FAMILIES = [
|
||||||
$assert(iconId != null, "id must not be null");
|
{"id": "face", "icons" : ["face_plain","face_sad","face_crying","face_smile","face_surprise","face_wink"]},
|
||||||
$assert(iconId.indexOf("_") != -1, "Invalid icon id (it must contain '_')");
|
{"id": "funy", "icons" : ["funy_angel","funy_devilish","funy_glasses","funy_grin","funy_kiss","funy_monkey"]},
|
||||||
|
{"id": "conn", "icons" : ["conn_connect","conn_disconnect"]},
|
||||||
var result = null;
|
{"id": "sport", "icons" : ["sport_basketball","sport_football","sport_golf","sport_raquet","sport_shuttlecock","sport_soccer","sport_tennis"]},
|
||||||
for (var i = 0; i < mindplot.ImageIcon.prototype.ICON_FAMILIES.length; i++)
|
{"id": "bulb", "icons" : ["bulb_light_on","bulb_light_off"]},
|
||||||
{
|
{"id": "thumb", "icons" : ["thumb_thumb_up","thumb_thumb_down"]},
|
||||||
var family = mindplot.ImageIcon.prototype.ICON_FAMILIES[i];
|
{"id": "tick", "icons" : ["tick_tick","tick_cross"]},
|
||||||
var iconFamilyId = iconId.substr(0, iconId.indexOf("_"));
|
{"id": "onoff", "icons" : ["onoff_clock","onoff_clock_red","onoff_add","onoff_delete","onoff_status_offline","onoff_status_online"]},
|
||||||
|
{"id": "money", "icons" : ["money_money","money_dollar","money_euro","money_pound","money_yen","money_coins","money_ruby"]},
|
||||||
if (family.id == iconFamilyId) {
|
{"id": "time", "icons" : ["time_calendar","time_clock","time_hourglass"]},
|
||||||
result = family.icons;
|
{"id": "chart", "icons" : ["chart_bar","chart_line","chart_curve","chart_pie","chart_organisation"]},
|
||||||
break;
|
{"id": "sign", "icons" : ["sign_warning","sign_info","sign_stop","sign_help","sign_cancel"]},
|
||||||
}
|
{"id": "hard", "icons" : ["hard_cd","hard_computer","hard_controller","hard_driver_disk","hard_ipod","hard_keyboard","hard_mouse","hard_printer"]},
|
||||||
}
|
{"id": "soft", "icons" : ["soft_bug","soft_cursor","soft_database_table","soft_database","soft_feed","soft_folder_explore","soft_rss","soft_penguin"]},
|
||||||
return result;
|
{"id": "arrow", "icons" : ["arrow_up","arrow_down","arrow_left","arrow_right"]},
|
||||||
};
|
{"id": "arrowc", "icons" : ["arrowc_rotate_anticlockwise","arrowc_rotate_clockwise","arrowc_turn_left","arrowc_turn_right"]},
|
||||||
|
{"id": "people", "icons" : ["people_group","people_male1","people_male2","people_female1","people_female2"]},
|
||||||
mindplot.ImageIcon.prototype.getId = function()
|
{"id": "mail", "icons" : ["mail_envelop","mail_mailbox","mail_edit","mail_list"]},
|
||||||
{
|
{"id": "flag", "icons" : ["flag_blue","flag_green","flag_orange","flag_pink","flag_purple","flag_yellow"]},
|
||||||
return this._iconType;
|
{"id": "bullet", "icons" : ["bullet_black","bullet_blue","bullet_green","bullet_orange","bullet_red","bullet_pink","bullet_purple"]},
|
||||||
};
|
{"id": "tag", "icons" : ["tag_blue","tag_green","tag_orange","tag_red","tag_pink","tag_yellow"]},
|
||||||
|
{"id": "object", "icons" : ["object_bell","object_clanbomber","object_key","object_pencil","object_phone","object_magnifier","object_clip","object_music","object_star","object_wizard","object_house","object_cake","object_camera","object_palette","object_rainbow"]}
|
||||||
mindplot.ImageIcon.prototype.getUiId = function()
|
]
|
||||||
{
|
|
||||||
return this._uiId;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mindplot.ImageIcon.prototype.ICON_FAMILIES = [{"id": "face", "icons" : ["face_plain","face_sad","face_crying","face_smile","face_surprise","face_wink"]},{"id": "funy", "icons" : ["funy_angel","funy_devilish","funy_glasses","funy_grin","funy_kiss","funy_monkey"]},{"id": "conn", "icons" : ["conn_connect","conn_disconnect"]},{"id": "sport", "icons" : ["sport_basketball","sport_football","sport_golf","sport_raquet","sport_shuttlecock","sport_soccer","sport_tennis"]},{"id": "bulb", "icons" : ["bulb_light_on","bulb_light_off"]},{"id": "thumb", "icons" : ["thumb_thumb_up","thumb_thumb_down"]},{"id": "tick", "icons" : ["tick_tick","tick_cross"]},{"id": "onoff", "icons" : ["onoff_clock","onoff_clock_red","onoff_add","onoff_delete","onoff_status_offline","onoff_status_online"]},{"id": "money", "icons" : ["money_money","money_dollar","money_euro","money_pound","money_yen","money_coins","money_ruby"]},{"id": "time", "icons" : ["time_calendar","time_clock","time_hourglass"]},{"id": "chart", "icons" : ["chart_bar","chart_line","chart_curve","chart_pie","chart_organisation"]},{"id": "sign", "icons" : ["sign_warning","sign_info","sign_stop","sign_help","sign_cancel"]},{"id": "hard", "icons" : ["hard_cd","hard_computer","hard_controller","hard_driver_disk","hard_ipod","hard_keyboard","hard_mouse","hard_printer"]},{"id": "soft", "icons" : ["soft_bug","soft_cursor","soft_database_table","soft_database","soft_feed","soft_folder_explore","soft_rss","soft_penguin"]},{"id": "arrow", "icons" : ["arrow_up","arrow_down","arrow_left","arrow_right"]},{"id": "arrowc", "icons" : ["arrowc_rotate_anticlockwise","arrowc_rotate_clockwise","arrowc_turn_left","arrowc_turn_right"]},{"id": "people", "icons" : ["people_group","people_male1","people_male2","people_female1","people_female2"]},{"id": "mail", "icons" : ["mail_envelop","mail_mailbox","mail_edit","mail_list"]},{"id": "flag", "icons" : ["flag_blue","flag_green","flag_orange","flag_pink","flag_purple","flag_yellow"]},{"id": "bullet", "icons" : ["bullet_black","bullet_blue","bullet_green","bullet_orange","bullet_red","bullet_pink","bullet_purple"]},{"id": "tag", "icons" : ["tag_blue","tag_green","tag_orange","tag_red","tag_pink","tag_yellow"]},{"id": "object", "icons" : ["object_bell","object_clanbomber","object_key","object_pencil","object_phone","object_magnifier","object_clip","object_music","object_star","object_wizard","object_house","object_cake","object_camera","object_palette","object_rainbow"]}]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,3 +17,9 @@ Later
|
|||||||
nodos en vez de borrarlos.
|
nodos en vez de borrarlos.
|
||||||
* Menu contextual para agregar nodos.
|
* Menu contextual para agregar nodos.
|
||||||
* Es necesario manejar para los central topic to main topic correctamente el concepto de height.
|
* Es necesario manejar para los central topic to main topic correctamente el concepto de height.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
From: RelationshipLine
|
||||||
|
- Falta topic...
|
||||||
|
XMLMindmapSerializer_Beta
|
@ -1,160 +1,161 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.LinkIcon = function(urlModel, topic, designer) {
|
mindplot.LinkIcon = new Class({
|
||||||
var divContainer=designer.getWorkSpace().getScreenManager().getContainer();
|
|
||||||
var bubbleTip = mindplot.BubbleTip.getInstance(divContainer);
|
|
||||||
mindplot.Icon.call(this, mindplot.LinkIcon.IMAGE_URL);
|
|
||||||
this._linkModel = urlModel;
|
|
||||||
this._topic = topic;
|
|
||||||
this._designer = designer;
|
|
||||||
var image = this.getImage();
|
|
||||||
var imgContainer = new Element('div').setStyles({textAlign:'center', cursor:'pointer'});
|
|
||||||
this._img = new Element('img');
|
|
||||||
var url = urlModel.getUrl();
|
|
||||||
this._img.src = 'http://open.thumbshots.org/image.pxf?url=' + url;
|
|
||||||
|
|
||||||
if (url.indexOf('http:') == -1)
|
Extends:mindplot.Icon,
|
||||||
{
|
initialize:function(urlModel, topic, designer) {
|
||||||
url = 'http://' + url;
|
$assert(urlModel, "urlModel can not be null");
|
||||||
|
$assert(designer, "designer can not be null");
|
||||||
|
$assert(topic, "topic can not be null");
|
||||||
|
|
||||||
|
this.parent(mindplot.LinkIcon.IMAGE_URL);
|
||||||
|
|
||||||
|
var divContainer = designer.getWorkSpace().getScreenManager().getContainer();
|
||||||
|
var bubbleTip = mindplot.BubbleTip.getInstance(divContainer);
|
||||||
|
|
||||||
|
this._linkModel = urlModel;
|
||||||
|
this._topic = topic;
|
||||||
|
this._designer = designer;
|
||||||
|
var image = this.getImage();
|
||||||
|
var imgContainer = new Element('div').setStyles({textAlign:'center', cursor:'pointer'});
|
||||||
|
this._img = new Element('img');
|
||||||
|
var url = urlModel.getUrl();
|
||||||
|
this._img.src = 'http://open.thumbshots.org/image.pxf?url=' + url;
|
||||||
|
|
||||||
|
if (url.indexOf('http:') == -1) {
|
||||||
|
url = 'http://' + url;
|
||||||
|
}
|
||||||
|
this._img.alt = url;
|
||||||
|
this._url = url;
|
||||||
|
var openWindow = function() {
|
||||||
|
var wOpen;
|
||||||
|
var sOptions;
|
||||||
|
|
||||||
|
sOptions = 'status=yes,menubar=yes,scrollbars=yes,resizable=yes,toolbar=yes';
|
||||||
|
sOptions = sOptions + ',width=' + (screen.availWidth - 10).toString();
|
||||||
|
sOptions = sOptions + ',height=' + (screen.availHeight - 122).toString();
|
||||||
|
sOptions = sOptions + ',screenX=0,screenY=0,left=0,top=0';
|
||||||
|
var url = this._img.alt;
|
||||||
|
wOpen = window.open(url, "link", "width=100px, height=100px");
|
||||||
|
wOpen.focus();
|
||||||
|
wOpen.moveTo(0, 0);
|
||||||
|
wOpen.resizeTo(screen.availWidth, screen.availHeight);
|
||||||
|
};
|
||||||
|
|
||||||
|
this._img.addEvent('click', openWindow.bindWithEvent(this));
|
||||||
|
this._img.inject(imgContainer);
|
||||||
|
|
||||||
|
var attribution = new Element('div').setStyles({fontSize:10, textAlign:"center"});
|
||||||
|
attribution.innerHTML = "<a href='http://www.thumbshots.org' target='_blank' title='About Thumbshots thumbnails' style='color:#08468F'>About Thumbshots thumbnails</a>";
|
||||||
|
|
||||||
|
var container = new Element('div');
|
||||||
|
var element = new Element('div').setStyles({borderBottom:'1px solid #e5e5e5'});
|
||||||
|
|
||||||
|
var title = new Element('div').setStyles({fontSize:12, textAlign:'center'});
|
||||||
|
this._link = new Element('span');
|
||||||
|
this._link.href = url;
|
||||||
|
this._link.innerHTML = url;
|
||||||
|
this._link.setStyle("text-decoration", "underline");
|
||||||
|
this._link.setStyle("cursor", "pointer");
|
||||||
|
this._link.inject(title);
|
||||||
|
this._link.addEvent('click', openWindow.bindWithEvent(this));
|
||||||
|
title.inject(element);
|
||||||
|
|
||||||
|
imgContainer.inject(element);
|
||||||
|
attribution.inject(element);
|
||||||
|
element.inject(container);
|
||||||
|
|
||||||
|
if (!$defined(designer._viewMode) || ($defined(designer._viewMode) && !designer._viewMode)) {
|
||||||
|
var buttonContainer = new Element('div').setStyles({paddingTop:5, textAlign:'center'});
|
||||||
|
var editBtn = new Element('input', {type:'button', 'class':'btn-primary', value:'Edit'}).addClass('button').inject(buttonContainer);
|
||||||
|
var removeBtn = new Element('input', {type:'button', value:'Remove','class':'btn-primary'}).addClass('button').inject(buttonContainer);
|
||||||
|
|
||||||
|
editBtn.setStyle("margin-right", "3px");
|
||||||
|
removeBtn.setStyle("margin-left", "3px");
|
||||||
|
|
||||||
|
removeBtn.addEvent('click', function(event) {
|
||||||
|
var command = new mindplot.commands.RemoveLinkFromTopicCommand(this._topic.getId());
|
||||||
|
designer._actionRunner.execute(command);
|
||||||
|
bubbleTip.forceClose();
|
||||||
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
|
var okButtonId = 'okLinkButtonId';
|
||||||
|
editBtn.addEvent('click', function(event) {
|
||||||
|
var topic = this._topic;
|
||||||
|
var designer = this._designer;
|
||||||
|
var link = this;
|
||||||
|
var okFunction = function(e) {
|
||||||
|
var result = false;
|
||||||
|
var url = urlInput.value;
|
||||||
|
if ("" != url.trim()) {
|
||||||
|
link._img.src = 'http://open.thumbshots.org/image.pxf?url=' + url;
|
||||||
|
link._img.alt = url;
|
||||||
|
link._link.href = url;
|
||||||
|
link._link.innerHTML = url;
|
||||||
|
this._linkModel.setUrl(url);
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
var msg = new Element('div');
|
||||||
|
var urlText = new Element('div').inject(msg);
|
||||||
|
urlText.innerHTML = "URL:";
|
||||||
|
|
||||||
|
var formElem = new Element('form', {'action': 'none', 'id':'linkFormId'});
|
||||||
|
var urlInput = new Element('input', {'type': 'text', 'size':30,'value':url});
|
||||||
|
urlInput.inject(formElem);
|
||||||
|
formElem.inject(msg);
|
||||||
|
|
||||||
|
formElem.addEvent('submit', function(e) {
|
||||||
|
$(okButtonId).fireEvent('click', e);
|
||||||
|
e = new Event(e);
|
||||||
|
e.stop();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var dialog = mindplot.LinkIcon.buildDialog(designer, okFunction, okButtonId);
|
||||||
|
dialog.adopt(msg).show();
|
||||||
|
|
||||||
|
}.bindWithEvent(this));
|
||||||
|
buttonContainer.inject(container);
|
||||||
|
}
|
||||||
|
|
||||||
|
var linkIcon = this;
|
||||||
|
image.addEventListener('mouseover', function(event) {
|
||||||
|
bubbleTip.open(event, container, linkIcon);
|
||||||
|
});
|
||||||
|
image.addEventListener('mousemove', function(event) {
|
||||||
|
bubbleTip.updatePosition(event);
|
||||||
|
});
|
||||||
|
image.addEventListener('mouseout', function(event) {
|
||||||
|
bubbleTip.close(event);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
getUrl : function() {
|
||||||
|
return this._url;
|
||||||
|
},
|
||||||
|
|
||||||
|
getModel : function() {
|
||||||
|
return this._linkModel;
|
||||||
}
|
}
|
||||||
this._img.alt = url;
|
});
|
||||||
this._url=url;
|
|
||||||
var openWindow = function() {
|
|
||||||
var wOpen;
|
|
||||||
var sOptions;
|
|
||||||
|
|
||||||
sOptions = 'status=yes,menubar=yes,scrollbars=yes,resizable=yes,toolbar=yes';
|
|
||||||
sOptions = sOptions + ',width=' + (screen.availWidth - 10).toString();
|
|
||||||
sOptions = sOptions + ',height=' + (screen.availHeight - 122).toString();
|
|
||||||
sOptions = sOptions + ',screenX=0,screenY=0,left=0,top=0';
|
|
||||||
var url = this._img.alt;
|
|
||||||
wOpen = window.open(url, "link", "width=100px, height=100px");
|
|
||||||
wOpen.focus();
|
|
||||||
wOpen.moveTo(0, 0);
|
|
||||||
wOpen.resizeTo(screen.availWidth, screen.availHeight);
|
|
||||||
};
|
|
||||||
this._img.addEvent('click', openWindow.bindWithEvent(this));
|
|
||||||
this._img.inject(imgContainer);
|
|
||||||
|
|
||||||
var attribution = new Element('div').setStyles({fontSize:10, textAlign:"center"});
|
|
||||||
attribution.innerHTML = "<a href='http://www.thumbshots.org' target='_blank' title='About Thumbshots thumbnails' style='color:#08468F'>About Thumbshots thumbnails</a>";
|
|
||||||
|
|
||||||
var container = new Element('div');
|
|
||||||
var element = new Element('div').setStyles({borderBottom:'1px solid #e5e5e5'});
|
|
||||||
|
|
||||||
var title = new Element('div').setStyles({fontSize:12, textAlign:'center'});
|
|
||||||
this._link = new Element('span');
|
|
||||||
this._link.href = url;
|
|
||||||
this._link.innerHTML = url;
|
|
||||||
this._link.setStyle("text-decoration", "underline");
|
|
||||||
this._link.setStyle("cursor", "pointer");
|
|
||||||
this._link.inject(title);
|
|
||||||
this._link.addEvent('click', openWindow.bindWithEvent(this));
|
|
||||||
title.inject(element);
|
|
||||||
|
|
||||||
imgContainer.inject(element);
|
|
||||||
attribution.inject(element);
|
|
||||||
element.inject(container);
|
|
||||||
|
|
||||||
if(!$defined(designer._viewMode)|| ($defined(designer._viewMode) && !designer._viewMode)){
|
|
||||||
var buttonContainer = new Element('div').setStyles({paddingTop:5, textAlign:'center'});
|
|
||||||
var editBtn = new Element('input', {type:'button', 'class':'btn-primary', value:'Edit','class':'btn-primary'}).addClass('button').inject(buttonContainer);
|
|
||||||
var removeBtn = new Element('input', {type:'button', value:'Remove','class':'btn-primary'}).addClass('button').inject(buttonContainer);
|
|
||||||
|
|
||||||
editBtn.setStyle("margin-right", "3px");
|
|
||||||
removeBtn.setStyle("margin-left", "3px");
|
|
||||||
|
|
||||||
removeBtn.addEvent('click', function(event) {
|
|
||||||
var command = new mindplot.commands.RemoveLinkFromTopicCommand(this._topic.getId());
|
|
||||||
designer._actionRunner.execute(command);
|
|
||||||
bubbleTip.forceClose();
|
|
||||||
}.bindWithEvent(this));
|
|
||||||
|
|
||||||
var okButtonId = 'okLinkButtonId'
|
|
||||||
editBtn.addEvent('click', function(event) {
|
|
||||||
var topic = this._topic;
|
|
||||||
var designer = this._designer;
|
|
||||||
var link = this;
|
|
||||||
var okFunction = function(e) {
|
|
||||||
var result = false;
|
|
||||||
var url = urlInput.value;
|
|
||||||
if ("" != url.trim())
|
|
||||||
{
|
|
||||||
link._img.src = 'http://open.thumbshots.org/image.pxf?url=' + url;
|
|
||||||
link._img.alt = url;
|
|
||||||
link._link.href = url;
|
|
||||||
link._link.innerHTML = url;
|
|
||||||
this._linkModel.setUrl(url);
|
|
||||||
result = true;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
var msg = new Element('div');
|
|
||||||
var urlText = new Element('div').inject(msg);
|
|
||||||
urlText.innerHTML = "URL:"
|
|
||||||
|
|
||||||
var formElem = new Element('form', {'action': 'none', 'id':'linkFormId'});
|
|
||||||
var urlInput = new Element('input', {'type': 'text', 'size':30,'value':url});
|
|
||||||
urlInput.inject(formElem);
|
|
||||||
formElem.inject(msg)
|
|
||||||
|
|
||||||
formElem.addEvent('submit', function(e)
|
|
||||||
{
|
|
||||||
$(okButtonId).fireEvent('click', e);
|
|
||||||
e = new Event(e);
|
|
||||||
e.stop();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
var dialog = mindplot.LinkIcon.buildDialog(designer, okFunction, okButtonId);
|
|
||||||
dialog.adopt(msg).show();
|
|
||||||
|
|
||||||
}.bindWithEvent(this));
|
|
||||||
buttonContainer.inject(container);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var linkIcon = this;
|
|
||||||
image.addEventListener('mouseover', function(event) {
|
|
||||||
bubbleTip.open(event, container, linkIcon);
|
|
||||||
});
|
|
||||||
image.addEventListener('mousemove', function(event) {
|
|
||||||
bubbleTip.updatePosition(event);
|
|
||||||
});
|
|
||||||
image.addEventListener('mouseout', function(event) {
|
|
||||||
bubbleTip.close(event);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
objects.extend(mindplot.LinkIcon, mindplot.Icon);
|
|
||||||
|
|
||||||
mindplot.LinkIcon.prototype.initialize = function() {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.LinkIcon.prototype.getUrl=function(){
|
|
||||||
return this._url;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.LinkIcon.prototype.getModel=function(){
|
|
||||||
return this._linkModel;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.LinkIcon.buildDialog = function(designer, okFunction, okButtonId) {
|
mindplot.LinkIcon.buildDialog = function(designer, okFunction, okButtonId) {
|
||||||
var windoo = new Windoo({
|
var windoo = new Windoo({
|
||||||
@ -166,18 +167,17 @@ mindplot.LinkIcon.buildDialog = function(designer, okFunction, okButtonId) {
|
|||||||
height:130
|
height:130
|
||||||
});
|
});
|
||||||
|
|
||||||
var cancel = new Element('input', {'type': 'button', 'class':'btn-primary', 'value': 'Cancel','class':'btn-primary'}).setStyle('margin-right', "5px");
|
var cancel = new Element('input', {'type': 'button', 'class':'btn-primary', 'value': 'Cancel'}).setStyle('margin-right', "5px");
|
||||||
cancel.setStyle('margin-left', "5px");
|
cancel.setStyle('margin-left', "5px");
|
||||||
cancel.addEvent('click', function(event) {
|
cancel.addEvent('click', function(event) {
|
||||||
$(document).addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
|
$(document).addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
|
||||||
windoo.close();
|
windoo.close();
|
||||||
}.bindWithEvent(this));
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
var ok = new Element('input', {'type': 'button', 'class':'btn-primary','value': 'Ok','class':'btn-primary','id':okButtonId}).setStyle('marginRight', 10);
|
var ok = new Element('input', {'type': 'button', 'class':'btn-primary','value': 'Ok','id':okButtonId}).setStyle('marginRight', 10);
|
||||||
ok.addEvent('click', function(event) {
|
ok.addEvent('click', function(event) {
|
||||||
var couldBeUpdated = okFunction.attempt();
|
var couldBeUpdated = okFunction.attempt();
|
||||||
if (couldBeUpdated)
|
if (couldBeUpdated) {
|
||||||
{
|
|
||||||
$(document).addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
|
$(document).addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
|
||||||
windoo.close();
|
windoo.close();
|
||||||
}
|
}
|
||||||
|
@ -1,44 +1,44 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.LinkModel = function(url, topic)
|
mindplot.LinkModel = new Class({
|
||||||
{
|
initialize : function(url, topic) {
|
||||||
$assert(url, 'link url can not be null');
|
$assert(url, 'url can not be null');
|
||||||
$assert(topic, 'mindmap can not be null');
|
$assert(topic, 'mindmap can not be null');
|
||||||
this._url = url;
|
|
||||||
this._topic = topic;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.LinkModel.prototype.getUrl = function()
|
this._url = url;
|
||||||
{
|
this._topic = topic;
|
||||||
return this._url;
|
},
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.LinkModel.prototype.setUrl = function(url){
|
getUrl : function() {
|
||||||
this._url = url;
|
return this._url;
|
||||||
}
|
},
|
||||||
|
|
||||||
mindplot.LinkModel.prototype.getTopic = function()
|
setUrl : function(url) {
|
||||||
{
|
$assert(url, 'url can not be null');
|
||||||
return this._topic;
|
this._url = url;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.LinkModel.prototype.isLinkModel = function()
|
getTopic : function() {
|
||||||
{
|
return this._topic;
|
||||||
return true;
|
},
|
||||||
};
|
|
||||||
|
isLinkModel : function() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
@ -89,7 +89,7 @@ mindplot.MainTopicBoard = new Class({
|
|||||||
|
|
||||||
addBranch : function(topic) {
|
addBranch : function(topic) {
|
||||||
var order = topic.getOrder();
|
var order = topic.getOrder();
|
||||||
$assert($defined(order), "Order must be defined");
|
$assert(order, "Order must be defined");
|
||||||
|
|
||||||
// If the entry is not available, I must swap the the entries...
|
// If the entry is not available, I must swap the the entries...
|
||||||
var board = this._getBoard();
|
var board = this._getBoard();
|
||||||
|
@ -41,7 +41,6 @@ mindplot.Mindmap = new Class({
|
|||||||
this._iconType = id;
|
this._iconType = id;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
getVersion : function() {
|
getVersion : function() {
|
||||||
return this._version;
|
return this._version;
|
||||||
},
|
},
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -183,8 +183,8 @@ mindplot.NodeModel = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setPosition : function(x, y) {
|
setPosition : function(x, y) {
|
||||||
$assert($defined(x), "x coordinate must be defined");
|
$assert(x, "x coordinate must be defined");
|
||||||
$assert($defined(y), "y coordinate must be defined");
|
$assert(y, "y coordinate must be defined");
|
||||||
|
|
||||||
if (!$defined(this._position)) {
|
if (!$defined(this._position)) {
|
||||||
this._position = new core.Point();
|
this._position = new core.Point();
|
||||||
@ -198,8 +198,8 @@ mindplot.NodeModel = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setFinalPosition : function(x, y) {
|
setFinalPosition : function(x, y) {
|
||||||
$assert($defined(x), "x coordinate must be defined");
|
$assert(x, "x coordinate must be defined");
|
||||||
$assert($defined(y), "y coordinate must be defined");
|
$assert(y, "y coordinate must be defined");
|
||||||
|
|
||||||
if (!$defined(this._finalPosition)) {
|
if (!$defined(this._finalPosition)) {
|
||||||
this._finalPosition = new core.Point();
|
this._finalPosition = new core.Point();
|
||||||
@ -253,7 +253,7 @@ mindplot.NodeModel = new Class({
|
|||||||
canBeConnected : function(sourceModel, sourcePosition, targetTopicHeight) {
|
canBeConnected : function(sourceModel, sourcePosition, targetTopicHeight) {
|
||||||
$assert(sourceModel != this, 'The same node can not be parent and child if itself.');
|
$assert(sourceModel != this, 'The same node can not be parent and child if itself.');
|
||||||
$assert(sourcePosition, 'childPosition can not be null.');
|
$assert(sourcePosition, 'childPosition can not be null.');
|
||||||
$assert($defined(targetTopicHeight), 'childrenWidth can not be null.');
|
$assert(targetTopicHeight, 'childrenWidth can not be null.');
|
||||||
|
|
||||||
// Only can be connected if the node is in the left or rigth.
|
// Only can be connected if the node is in the left or rigth.
|
||||||
var targetModel = this;
|
var targetModel = this;
|
||||||
|
@ -1,283 +1,275 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
mindplot.RelationshipLine = function(sourceNode, targetNode, lineType)
|
mindplot.RelationshipLine = new Class({
|
||||||
{
|
Extends: mindplot.ConnectionLine,
|
||||||
mindplot.ConnectionLine.call(this,sourceNode, targetNode, lineType);
|
initialize:function(sourceNode, targetNode, lineType) {
|
||||||
this._line2d.setIsSrcControlPointCustom(false);
|
this.parent(sourceNode, targetNode, lineType);
|
||||||
this._line2d.setIsDestControlPointCustom(false);
|
|
||||||
this._isOnfocus = false;
|
|
||||||
this._focusShape = this._createLine(this.getLineType(), mindplot.ConnectionLine.SIMPLE_CURVED);
|
|
||||||
this._focusShape.setStroke(2, "solid", "#3f96ff");
|
|
||||||
var ctrlPoints = this._line2d.getControlPoints();
|
|
||||||
this._focusShape.setSrcControlPoint(ctrlPoints[0]);
|
|
||||||
this._focusShape.setDestControlPoint(ctrlPoints[1]);
|
|
||||||
this._focusShape.setVisibility(false);
|
|
||||||
this._onFocus = false;
|
|
||||||
this._isInWorkspace = false;
|
|
||||||
this._controlPointsController = new mindplot.ControlPoint();
|
|
||||||
|
|
||||||
var strokeColor = mindplot.RelationshipLine.getStrokeColor();
|
this._line2d.setIsSrcControlPointCustom(false);
|
||||||
this._startArrow = new web2d.Arrow();
|
this._line2d.setIsDestControlPointCustom(false);
|
||||||
this._endArrow = new web2d.Arrow();
|
this._isOnfocus = false;
|
||||||
this._startArrow.setStrokeColor(strokeColor);
|
this._focusShape = this._createLine(this.getLineType(), mindplot.ConnectionLine.SIMPLE_CURVED);
|
||||||
this._startArrow.setStrokeWidth(2);
|
this._focusShape.setStroke(2, "solid", "#3f96ff");
|
||||||
this._endArrow.setStrokeColor(strokeColor);
|
var ctrlPoints = this._line2d.getControlPoints();
|
||||||
this._endArrow.setStrokeWidth(2);
|
this._focusShape.setSrcControlPoint(ctrlPoints[0]);
|
||||||
this._line2d.setStroke(1, 'solid', strokeColor);
|
this._focusShape.setDestControlPoint(ctrlPoints[1]);
|
||||||
|
this._focusShape.setVisibility(false);
|
||||||
|
this._onFocus = false;
|
||||||
|
this._isInWorkspace = false;
|
||||||
|
this._controlPointsController = new mindplot.ControlPoint();
|
||||||
|
|
||||||
};
|
var strokeColor = mindplot.RelationshipLine.getStrokeColor();
|
||||||
|
this._startArrow = new web2d.Arrow();
|
||||||
|
this._endArrow = new web2d.Arrow();
|
||||||
|
this._startArrow.setStrokeColor(strokeColor);
|
||||||
|
this._startArrow.setStrokeWidth(2);
|
||||||
|
this._endArrow.setStrokeColor(strokeColor);
|
||||||
|
this._endArrow.setStrokeWidth(2);
|
||||||
|
this._line2d.setStroke(1, 'solid', strokeColor);
|
||||||
|
|
||||||
objects.extend(mindplot.RelationshipLine, mindplot.ConnectionLine);
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.getStrokeColor = function()
|
setStroke : function(color, style, opacity) {
|
||||||
{
|
// @Todo: How this is supported in mootools ?
|
||||||
return '#9b74e6';
|
mindplot.ConnectionLine.prototype.setStroke.call(this, color, style, opacity);
|
||||||
};
|
this._startArrow.setStrokeColor(color);
|
||||||
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setStroke = function(color, style, opacity)
|
redraw : function() {
|
||||||
{
|
var line2d = this._line2d;
|
||||||
mindplot.RelationshipLine.superClass.setStroke.call(this, color, style, opacity);
|
var sourceTopic = this._sourceTopic;
|
||||||
this._startArrow.setStrokeColor(color);
|
var sourcePosition = sourceTopic.getPosition();
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.redraw = function()
|
var targetTopic = this._targetTopic;
|
||||||
{
|
var targetPosition = targetTopic.getPosition();
|
||||||
var line2d = this._line2d;
|
|
||||||
var sourceTopic = this._sourceTopic;
|
|
||||||
var sourcePosition = sourceTopic.getPosition();
|
|
||||||
|
|
||||||
var targetTopic = this._targetTopic;
|
var sPos,tPos;
|
||||||
var targetPosition = targetTopic.getPosition();
|
this._line2d.setStroke(2);
|
||||||
|
var ctrlPoints = this._line2d.getControlPoints();
|
||||||
|
if (!this._line2d.isDestControlPointCustom() && !this._line2d.isSrcControlPointCustom()) {
|
||||||
|
var defaultPoints = core.Utils.calculateDefaultControlPoints(sourcePosition, targetPosition);
|
||||||
|
ctrlPoints[0].x = defaultPoints[0].x;
|
||||||
|
ctrlPoints[0].y = defaultPoints[0].y;
|
||||||
|
ctrlPoints[1].x = defaultPoints[1].x;
|
||||||
|
ctrlPoints[1].y = defaultPoints[1].y;
|
||||||
|
}
|
||||||
|
var spoint = new core.Point();
|
||||||
|
spoint.x = parseInt(ctrlPoints[0].x) + parseInt(sourcePosition.x);
|
||||||
|
spoint.y = parseInt(ctrlPoints[0].y) + parseInt(sourcePosition.y);
|
||||||
|
var tpoint = new core.Point();
|
||||||
|
tpoint.x = parseInt(ctrlPoints[1].x) + parseInt(targetPosition.x);
|
||||||
|
tpoint.y = parseInt(ctrlPoints[1].y) + parseInt(targetPosition.y);
|
||||||
|
sPos = core.Utils.calculateRelationShipPointCoordinates(sourceTopic, spoint);
|
||||||
|
tPos = core.Utils.calculateRelationShipPointCoordinates(targetTopic, tpoint);
|
||||||
|
|
||||||
var sPos,tPos;
|
line2d.setFrom(sPos.x, sPos.y);
|
||||||
this._line2d.setStroke(2);
|
line2d.setTo(tPos.x, tPos.y);
|
||||||
var ctrlPoints = this._line2d.getControlPoints();
|
|
||||||
if(!this._line2d.isDestControlPointCustom() && !this._line2d.isSrcControlPointCustom()){
|
|
||||||
var defaultPoints = core.Utils.calculateDefaultControlPoints(sourcePosition, targetPosition);
|
|
||||||
ctrlPoints[0].x=defaultPoints[0].x;
|
|
||||||
ctrlPoints[0].y=defaultPoints[0].y;
|
|
||||||
ctrlPoints[1].x=defaultPoints[1].x;
|
|
||||||
ctrlPoints[1].y=defaultPoints[1].y;
|
|
||||||
}
|
|
||||||
var spoint = new core.Point();
|
|
||||||
spoint.x=parseInt(ctrlPoints[0].x)+parseInt(sourcePosition.x);
|
|
||||||
spoint.y=parseInt(ctrlPoints[0].y)+parseInt(sourcePosition.y);
|
|
||||||
var tpoint = new core.Point();
|
|
||||||
tpoint.x=parseInt(ctrlPoints[1].x)+parseInt(targetPosition.x);
|
|
||||||
tpoint.y=parseInt(ctrlPoints[1].y)+parseInt(targetPosition.y);
|
|
||||||
sPos = core.Utils.calculateRelationShipPointCoordinates(sourceTopic,spoint);
|
|
||||||
tPos = core.Utils.calculateRelationShipPointCoordinates(targetTopic,tpoint);
|
|
||||||
|
|
||||||
line2d.setFrom(sPos.x, sPos.y);
|
line2d.moveToFront();
|
||||||
line2d.setTo(tPos.x, tPos.y);
|
|
||||||
|
|
||||||
line2d.moveToFront();
|
//Positionate Arrows
|
||||||
|
this._positionateArrows();
|
||||||
|
|
||||||
//Positionate Arrows
|
// Add connector ...
|
||||||
this._positionateArrows();
|
this._positionateConnector(targetTopic);
|
||||||
|
|
||||||
// Add connector ...
|
if (this.isOnFocus()) {
|
||||||
this._positionateConnector(targetTopic);
|
this._refreshSelectedShape();
|
||||||
|
}
|
||||||
|
this._focusShape.moveToBack();
|
||||||
|
this._controlPointsController.redraw();
|
||||||
|
},
|
||||||
|
|
||||||
if(this.isOnFocus()){
|
_positionateArrows : function() {
|
||||||
this._refreshSelectedShape();
|
this._endArrow.setVisibility(this.isVisible() && this._showEndArrow);
|
||||||
}
|
this._startArrow.setVisibility(this.isVisible() && this._showStartArrow);
|
||||||
this._focusShape.moveToBack();
|
|
||||||
this._controlPointsController.redraw();
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype._positionateArrows = function()
|
var tpos = this._line2d.getTo();
|
||||||
{
|
this._endArrow.setFrom(tpos.x, tpos.y);
|
||||||
this._endArrow.setVisibility(this.isVisible() && this._showEndArrow);
|
var spos = this._line2d.getFrom();
|
||||||
this._startArrow.setVisibility(this.isVisible() && this._showStartArrow);
|
this._startArrow.setFrom(spos.x, spos.y);
|
||||||
|
this._endArrow.moveToBack();
|
||||||
|
this._startArrow.moveToBack();
|
||||||
|
|
||||||
var tpos = this._line2d.getTo();
|
if (this._line2d.getType() == "CurvedLine") {
|
||||||
this._endArrow.setFrom(tpos.x, tpos.y);
|
var controlPoints = this._line2d.getControlPoints();
|
||||||
var spos = this._line2d.getFrom();
|
this._startArrow.setControlPoint(controlPoints[0]);
|
||||||
this._startArrow.setFrom(spos.x, spos.y);
|
this._endArrow.setControlPoint(controlPoints[1]);
|
||||||
this._endArrow.moveToBack();
|
} else {
|
||||||
this._startArrow.moveToBack();
|
this._startArrow.setControlPoint(this._line2d.getTo());
|
||||||
|
this._endArrow.setControlPoint(this._line2d.getFrom());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
if(this._line2d.getType() == "CurvedLine"){
|
addToWorkspace : function(workspace) {
|
||||||
var controlPoints = this._line2d.getControlPoints();
|
workspace.appendChild(this._focusShape);
|
||||||
this._startArrow.setControlPoint(controlPoints[0]);
|
workspace.appendChild(this._controlPointsController);
|
||||||
this._endArrow.setControlPoint(controlPoints[1]);
|
this._controlPointControllerListener = this._initializeControlPointController.bindWithEvent(this, workspace);
|
||||||
} else {
|
this._line2d.addEventListener('click', this._controlPointControllerListener);
|
||||||
this._startArrow.setControlPoint(this._line2d.getTo());
|
this._isInWorkspace = true;
|
||||||
this._endArrow.setControlPoint(this._line2d.getFrom());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.addToWorkspace = function(workspace)
|
workspace.appendChild(this._startArrow);
|
||||||
{
|
workspace.appendChild(this._endArrow);
|
||||||
workspace.appendChild(this._focusShape);
|
|
||||||
workspace.appendChild(this._controlPointsController);
|
|
||||||
this._controlPointControllerListener =this._initializeControlPointController.bindWithEvent(this,workspace);
|
|
||||||
this._line2d.addEventListener('click', this._controlPointControllerListener);
|
|
||||||
this._isInWorkspace = true;
|
|
||||||
|
|
||||||
workspace.appendChild(this._startArrow);
|
mindplot.ConnectionLine.prototype.addToWorkspace.call(this, workspace);
|
||||||
workspace.appendChild(this._endArrow);
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.superClass.addToWorkspace.call(this, workspace);
|
_initializeControlPointController : function(event, workspace) {
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype._initializeControlPointController = function(event,workspace){
|
|
||||||
this.setOnFocus(true);
|
this.setOnFocus(true);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.removeFromWorkspace = function(workspace){
|
removeFromWorkspace : function(workspace) {
|
||||||
workspace.removeChild(this._focusShape);
|
workspace.removeChild(this._focusShape);
|
||||||
workspace.removeChild(this._controlPointsController);
|
workspace.removeChild(this._controlPointsController);
|
||||||
this._line2d.removeEventListener('click',this._controlPointControllerListener);
|
this._line2d.removeEventListener('click', this._controlPointControllerListener);
|
||||||
this._isInWorkspace = false;
|
this._isInWorkspace = false;
|
||||||
workspace.removeChild(this._startArrow);
|
workspace.removeChild(this._startArrow);
|
||||||
workspace.removeChild(this._endArrow);
|
workspace.removeChild(this._endArrow);
|
||||||
|
|
||||||
mindplot.RelationshipLine.superClass.removeFromWorkspace.call(this,workspace);
|
mindplot.ConnectionLine.prototype.removeFromWorkspace.call(this, workspace);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.getType = function(){
|
getType : function() {
|
||||||
return mindplot.RelationshipLine.type;
|
return mindplot.RelationshipLine.type;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setOnFocus = function(focus){
|
setOnFocus : function(focus) {
|
||||||
// Change focus shape
|
// Change focus shape
|
||||||
if(focus){
|
if (focus) {
|
||||||
this._refreshSelectedShape();
|
this._refreshSelectedShape();
|
||||||
this._controlPointsController.setLine(this);
|
this._controlPointsController.setLine(this);
|
||||||
}
|
}
|
||||||
this._focusShape.setVisibility(focus);
|
this._focusShape.setVisibility(focus);
|
||||||
|
|
||||||
this._controlPointsController.setVisibility(focus);
|
this._controlPointsController.setVisibility(focus);
|
||||||
this._onFocus = focus;
|
this._onFocus = focus;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype._refreshSelectedShape = function () {
|
_refreshSelectedShape : function () {
|
||||||
var sPos = this._line2d.getFrom();
|
var sPos = this._line2d.getFrom();
|
||||||
var tPos = this._line2d.getTo();
|
var tPos = this._line2d.getTo();
|
||||||
var ctrlPoints = this._line2d.getControlPoints();
|
var ctrlPoints = this._line2d.getControlPoints();
|
||||||
this._focusShape.setFrom(sPos.x, sPos.y);
|
this._focusShape.setFrom(sPos.x, sPos.y);
|
||||||
this._focusShape.setTo(tPos.x, tPos.y);
|
this._focusShape.setTo(tPos.x, tPos.y);
|
||||||
var shapeCtrlPoints = this._focusShape.getControlPoints();
|
var shapeCtrlPoints = this._focusShape.getControlPoints();
|
||||||
shapeCtrlPoints[0].x = ctrlPoints[0].x;
|
shapeCtrlPoints[0].x = ctrlPoints[0].x;
|
||||||
shapeCtrlPoints[0].y = ctrlPoints[0].y;
|
shapeCtrlPoints[0].y = ctrlPoints[0].y;
|
||||||
shapeCtrlPoints[1].x = ctrlPoints[1].x;
|
shapeCtrlPoints[1].x = ctrlPoints[1].x;
|
||||||
shapeCtrlPoints[1].y = ctrlPoints[1].y;
|
shapeCtrlPoints[1].y = ctrlPoints[1].y;
|
||||||
this._focusShape.updateLine();
|
this._focusShape.updateLine();
|
||||||
//this._focusShape.setSrcControlPoint(ctrlPoints[0]);
|
//this._focusShape.setSrcControlPoint(ctrlPoints[0]);
|
||||||
//this._focusShape.setDestControlPoint(ctrlPoints[1]);
|
//this._focusShape.setDestControlPoint(ctrlPoints[1]);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.addEventListener = function(type, listener){
|
addEventListener : function(type, listener) {
|
||||||
// Translate to web 2d events ...
|
// Translate to web 2d events ...
|
||||||
if (type == 'onfocus')
|
if (type == 'onfocus') {
|
||||||
{
|
type = 'mousedown';
|
||||||
type = 'mousedown';
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var line = this._line2d;
|
var line = this._line2d;
|
||||||
line.addEventListener(type, listener);
|
line.addEventListener(type, listener);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.isOnFocus = function()
|
isOnFocus : function() {
|
||||||
{
|
return this._onFocus;
|
||||||
return this._onFocus;
|
},
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.isInWorkspace = function(){
|
isInWorkspace : function() {
|
||||||
return this._isInWorkspace;
|
return this._isInWorkspace;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setVisibility = function(value)
|
setVisibility : function(value) {
|
||||||
{
|
mindplot.ConnectionLine.prototype.setVisibility.call(this, value);
|
||||||
mindplot.RelationshipLine.superClass.setVisibility.call(this,value);
|
this._endArrow.setVisibility(this._showEndArrow && value);
|
||||||
this._endArrow.setVisibility(this._showEndArrow && value);
|
this._startArrow.setVisibility(this._showStartArrow && value);
|
||||||
this._startArrow.setVisibility(this._showStartArrow && value);
|
},
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setOpacity = function(opacity){
|
setOpacity : function(opacity) {
|
||||||
mindplot.RelationshipLine.superClass.setOpacity.call(this,opacity);
|
mindplot.ConnectionLine.prototype.setOpacity.call(this, opacity);
|
||||||
if(this._showEndArrow)
|
if (this._showEndArrow)
|
||||||
this._endArrow.setOpacity(opacity);
|
this._endArrow.setOpacity(opacity);
|
||||||
if(this._showStartArrow)
|
if (this._showStartArrow)
|
||||||
this._startArrow.setOpacity(opacity);
|
this._startArrow.setOpacity(opacity);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setShowEndArrow = function(visible){
|
setShowEndArrow : function(visible) {
|
||||||
this._showEndArrow = visible;
|
this._showEndArrow = visible;
|
||||||
if(this._isInWorkspace)
|
if (this._isInWorkspace)
|
||||||
this.redraw();
|
this.redraw();
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setShowStartArrow = function(visible){
|
setShowStartArrow : function(visible) {
|
||||||
this._showStartArrow = visible;
|
this._showStartArrow = visible;
|
||||||
if(this._isInWorkspace)
|
if (this._isInWorkspace)
|
||||||
this.redraw();
|
this.redraw();
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.isShowEndArrow = function(){
|
isShowEndArrow : function() {
|
||||||
return this._showEndArrow;
|
return this._showEndArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.isShowStartArrow = function(){
|
isShowStartArrow : function() {
|
||||||
return this._showStartArrow;
|
return this._showStartArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setFrom = function(x,y){
|
setFrom : function(x, y) {
|
||||||
this._line2d.setFrom(x,y);
|
this._line2d.setFrom(x, y);
|
||||||
this._startArrow.setFrom(x,y);
|
this._startArrow.setFrom(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setTo = function(x,y){
|
setTo : function(x, y) {
|
||||||
this._line2d.setTo(x,y);
|
this._line2d.setTo(x, y);
|
||||||
this._endArrow.setFrom(x,y);
|
this._endArrow.setFrom(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setSrcControlPoint = function(control){
|
setSrcControlPoint : function(control) {
|
||||||
this._line2d.setSrcControlPoint(control);
|
this._line2d.setSrcControlPoint(control);
|
||||||
this._startArrow.setControlPoint(control);
|
this._startArrow.setControlPoint(control);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setDestControlPoint = function(control){
|
setDestControlPoint : function(control) {
|
||||||
this._line2d.setDestControlPoint(control);
|
this._line2d.setDestControlPoint(control);
|
||||||
this._endArrow.setControlPoint(control);
|
this._endArrow.setControlPoint(control);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.getControlPoints = function(){
|
getControlPoints : function() {
|
||||||
return this._line2d.getControlPoints();
|
return this._line2d.getControlPoints();
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.isSrcControlPointCustom = function(){
|
isSrcControlPointCustom : function() {
|
||||||
return this._line2d.isSrcControlPointCustom();
|
return this._line2d.isSrcControlPointCustom();
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.isDestControlPointCustom = function(){
|
isDestControlPointCustom : function() {
|
||||||
return this._line2d.isDestControlPointCustom();
|
return this._line2d.isDestControlPointCustom();
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setIsSrcControlPointCustom = function(isCustom){
|
setIsSrcControlPointCustom : function(isCustom) {
|
||||||
this._line2d.setIsSrcControlPointCustom(isCustom);
|
this._line2d.setIsSrcControlPointCustom(isCustom);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipLine.prototype.setIsDestControlPointCustom = function(isCustom){
|
setIsDestControlPointCustom : function(isCustom) {
|
||||||
this._line2d.setIsDestControlPointCustom(isCustom);
|
this._line2d.setIsDestControlPointCustom(isCustom);
|
||||||
};
|
}});
|
||||||
|
|
||||||
|
|
||||||
mindplot.RelationshipLine.type = "RelationshipLine";
|
mindplot.RelationshipLine.type = "RelationshipLine";
|
||||||
|
mindplot.RelationshipLine.getStrokeColor = function() {
|
||||||
|
return '#9b74e6';
|
||||||
|
}
|
||||||
|
@ -1,116 +1,113 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
mindplot.RelationshipModel = function(fromNode, toNode)
|
mindplot.RelationshipModel = new Class({
|
||||||
{
|
initialize:function(fromNode, toNode) {
|
||||||
$assert(fromNode, 'from node type can not be null');
|
$assert(fromNode, 'from node type can not be null');
|
||||||
$assert(toNode, 'to node type can not be null');
|
$assert(toNode, 'to node type can not be null');
|
||||||
|
|
||||||
this._id = mindplot.RelationshipModel._nextUUID();
|
this._id = mindplot.RelationshipModel._nextUUID();
|
||||||
this._fromNode = fromNode;
|
this._fromNode = fromNode;
|
||||||
this._toNode = toNode;
|
this._toNode = toNode;
|
||||||
this._lineType=mindplot.ConnectionLine.SIMPLE_CURVED;
|
this._lineType = mindplot.ConnectionLine.SIMPLE_CURVED;
|
||||||
this._srcCtrlPoint=null;
|
this._srcCtrlPoint = null;
|
||||||
this._destCtrlPoint=null;
|
this._destCtrlPoint = null;
|
||||||
this._endArrow=true;
|
this._endArrow = true;
|
||||||
this._startArrow=false;
|
this._startArrow = false;
|
||||||
this._ctrlPointRelative=false;
|
},
|
||||||
|
|
||||||
};
|
getFromNode : function() {
|
||||||
|
return this._fromNode;
|
||||||
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getFromNode=function(){
|
getToNode : function() {
|
||||||
return this._fromNode;
|
return this._toNode;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getToNode=function(){
|
getId : function() {
|
||||||
return this._toNode;
|
return this._id;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getId=function(){
|
getLineType : function() {
|
||||||
return this._id;
|
return this._lineType;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getLineType = function(){
|
setLineType : function(lineType) {
|
||||||
return this._lineType;
|
this._lineType = lineType;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.setLineType = function(lineType){
|
getSrcCtrlPoint : function() {
|
||||||
this._lineType = lineType;
|
return this._srcCtrlPoint;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getSrcCtrlPoint= function(){
|
setSrcCtrlPoint : function(srcCtrlPoint) {
|
||||||
return this._srcCtrlPoint;
|
this._srcCtrlPoint = srcCtrlPoint;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.setSrcCtrlPoint= function(srcCtrlPoint){
|
getDestCtrlPoint : function() {
|
||||||
this._srcCtrlPoint = srcCtrlPoint;
|
return this._destCtrlPoint;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getDestCtrlPoint= function(){
|
setDestCtrlPoint : function(destCtrlPoint) {
|
||||||
return this._destCtrlPoint;
|
this._destCtrlPoint = destCtrlPoint;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.setDestCtrlPoint= function(destCtrlPoint){
|
getEndArrow : function() {
|
||||||
this._destCtrlPoint = destCtrlPoint;
|
return this._endArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getEndArrow= function(){
|
setEndArrow : function(endArrow) {
|
||||||
return this._endArrow;
|
this._endArrow = endArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.setEndArrow= function(endArrow){
|
getStartArrow : function() {
|
||||||
this._endArrow = endArrow;
|
return this._startArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.getStartArrow= function(){
|
setStartArrow : function(startArrow) {
|
||||||
return this._startArrow;
|
this._startArrow = startArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.setStartArrow= function(startArrow){
|
clone : function(model) {
|
||||||
this._startArrow = startArrow;
|
var result = new mindplot.RelationshipModel(this._fromNode, this._toNode);
|
||||||
};
|
result._id = this._id;
|
||||||
|
result._lineType = this._lineType;
|
||||||
|
result._srcCtrlPoint = this._srcCtrlPoint;
|
||||||
|
result._destCtrlPoint = this._destCtrlPoint;
|
||||||
|
result._endArrow = this._endArrow;
|
||||||
|
result._startArrow = this._startArrow;
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
inspect : function() {
|
||||||
|
return '(fromNode:' + this.getFromNode().getId() + ' , toNode: ' + this.getToNode().getId() + ')';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.clone = function(model){
|
|
||||||
var result = new mindplot.RelationshipModel(this._fromNode, this._toNode);
|
|
||||||
result._id = this._id;
|
|
||||||
result._lineType = this._lineType;
|
|
||||||
result._srcCtrlPoint = this._srcCtrlPoint;
|
|
||||||
result._destCtrlPoint = this._destCtrlPoint;
|
|
||||||
result._endArrow = this._endArrow;
|
|
||||||
result._startArrow = this._startArrow;
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo: This method must be implemented.
|
* @todo: This method must be implemented.
|
||||||
*/
|
*/
|
||||||
mindplot.RelationshipModel._nextUUID = function()
|
mindplot.RelationshipModel._nextUUID = function() {
|
||||||
{
|
if (!$defined(this._uuid)) {
|
||||||
if (!$defined(this._uuid))
|
|
||||||
{
|
|
||||||
this._uuid = 0;
|
this._uuid = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._uuid = this._uuid + 1;
|
this._uuid = this._uuid + 1;
|
||||||
return this._uuid;
|
return this._uuid;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
mindplot.RelationshipModel.prototype.inspect = function()
|
|
||||||
{
|
|
||||||
return '(fromNode:' + this.getFromNode().getId() + ' , toNode: ' + this.getToNode().getId() + ')';
|
|
||||||
};
|
|
||||||
|
@ -1,140 +1,134 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
|
||||||
|
|
||||||
mindplot.ScreenManager = function(width, height, divElement)
|
|
||||||
{
|
|
||||||
this._divContainer = divElement;
|
|
||||||
this._offset = {x:0,y:0};
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.setScale = function(scale)
|
|
||||||
{
|
|
||||||
$assert($defined(scale), 'Screen scale can not be null');
|
|
||||||
this._workspaceScale = scale;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.addEventListener=function(event, listener){
|
|
||||||
$(this._divContainer).addEvent(event, listener);
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.removeEventListener=function(event, listener){
|
|
||||||
$(this._divContainer).removeEvent(event, listener);
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.getWorkspaceElementPosition = function(e)
|
|
||||||
{
|
|
||||||
// Retrive current element position.
|
|
||||||
var elementPosition = e.getPosition();
|
|
||||||
var x = elementPosition.x;
|
|
||||||
var y = elementPosition.y;
|
|
||||||
|
|
||||||
// Add workspace offset.
|
|
||||||
x = x - this._offset.x;
|
|
||||||
y = y - this._offset.y;
|
|
||||||
|
|
||||||
// Scale coordinate in order to be relative to the workspace. That's coordSize/size;
|
|
||||||
x = x / this._workspaceScale;
|
|
||||||
y = y / this._workspaceScale;
|
|
||||||
|
|
||||||
// Subtract div position.
|
|
||||||
/* var containerElem = this.getContainer();
|
|
||||||
var containerPosition = core.Utils.workOutDivElementPosition(containerElem);
|
|
||||||
x = x + containerPosition.x;
|
|
||||||
y = y + containerPosition.y;*/
|
|
||||||
|
|
||||||
// Remove decimal part..
|
|
||||||
return {x:x,y:y};
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.getWorkspaceIconPosition = function(e)
|
|
||||||
{
|
|
||||||
// Retrive current icon position.
|
|
||||||
var image = e.getImage();
|
|
||||||
var elementPosition = image.getPosition();
|
|
||||||
var imageSize = e.getSize();
|
|
||||||
|
|
||||||
//Add group offset
|
|
||||||
var iconGroup = e.getGroup();
|
|
||||||
var group = iconGroup.getNativeElement();
|
|
||||||
var coordOrigin=group.getCoordOrigin();
|
|
||||||
var groupSize = group.getSize();
|
|
||||||
var coordSize = group.getCoordSize();
|
|
||||||
|
|
||||||
var scale={x:coordSize.width/parseInt(groupSize.width), y:coordSize.height/parseInt(groupSize.height)};
|
|
||||||
|
|
||||||
var x = (elementPosition.x - coordOrigin.x-(parseInt(imageSize.width)/2))/scale.x;
|
|
||||||
var y = (elementPosition.y - coordOrigin.y-(parseInt(imageSize.height)/2))/scale.y;
|
|
||||||
|
|
||||||
//Retrieve iconGroup Position
|
|
||||||
var groupPosition = iconGroup.getPosition();
|
|
||||||
x = x + groupPosition.x;
|
|
||||||
y = y + groupPosition.y;
|
|
||||||
|
|
||||||
//Retrieve topic Position
|
|
||||||
var topic = iconGroup.getTopic();
|
|
||||||
var topicPosition = this.getWorkspaceElementPosition(topic);
|
|
||||||
topicPosition.x = topicPosition.x - (parseInt(topic.getSize().width)/2);
|
|
||||||
|
|
||||||
|
|
||||||
// Remove decimal part..
|
|
||||||
return {x:x+topicPosition.x,y:y+topicPosition.y};
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.getWorkspaceMousePosition = function(e)
|
|
||||||
{
|
|
||||||
// Retrive current mouse position.
|
|
||||||
var mousePosition = this._getMousePosition(e);
|
|
||||||
var x = mousePosition.x;
|
|
||||||
var y = mousePosition.y;
|
|
||||||
|
|
||||||
// Subtract div position.
|
|
||||||
var containerElem = this.getContainer();
|
|
||||||
var containerPosition = core.Utils.workOutDivElementPosition(containerElem);
|
|
||||||
x = x - containerPosition.x;
|
|
||||||
y = y - containerPosition.y;
|
|
||||||
|
|
||||||
// Scale coordinate in order to be relative to the workspace. That's coordSize/size;
|
|
||||||
x = x * this._workspaceScale;
|
|
||||||
y = y * this._workspaceScale;
|
|
||||||
|
|
||||||
// Add workspace offset.
|
|
||||||
x = x + this._offset.x;
|
|
||||||
y = y + this._offset.y;
|
|
||||||
|
|
||||||
// Remove decimal part..
|
|
||||||
return new core.Point(x, y);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* http://www.howtocreate.co.uk/tutorials/javascript/eventinfo
|
|
||||||
*/
|
*/
|
||||||
mindplot.ScreenManager.prototype._getMousePosition = function(event)
|
|
||||||
{
|
|
||||||
return core.Utils.getMousePosition(event);
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.getContainer = function()
|
mindplot.ScreenManager = new Class({
|
||||||
{
|
initialize:function(width, height, divElement) {
|
||||||
return this._divContainer;
|
$assert(divElement, "can not be null");
|
||||||
};
|
this._divContainer = divElement;
|
||||||
|
this._offset = {x:0,y:0};
|
||||||
|
},
|
||||||
|
|
||||||
mindplot.ScreenManager.prototype.setOffset = function(x, y)
|
setScale : function(scale) {
|
||||||
{
|
$assert(scale, 'Screen scale can not be null');
|
||||||
this._offset.x = x;
|
this._workspaceScale = scale;
|
||||||
this._offset.y = y;
|
},
|
||||||
};
|
|
||||||
|
addEventListener : function(event, listener) {
|
||||||
|
$(this._divContainer).addEvent(event, listener);
|
||||||
|
},
|
||||||
|
|
||||||
|
removeEventListener : function(event, listener) {
|
||||||
|
$(this._divContainer).removeEvent(event, listener);
|
||||||
|
},
|
||||||
|
|
||||||
|
getWorkspaceElementPosition : function(e) {
|
||||||
|
// Retrive current element position.
|
||||||
|
var elementPosition = e.getPosition();
|
||||||
|
var x = elementPosition.x;
|
||||||
|
var y = elementPosition.y;
|
||||||
|
|
||||||
|
// Add workspace offset.
|
||||||
|
x = x - this._offset.x;
|
||||||
|
y = y - this._offset.y;
|
||||||
|
|
||||||
|
// Scale coordinate in order to be relative to the workspace. That's coordSize/size;
|
||||||
|
x = x / this._workspaceScale;
|
||||||
|
y = y / this._workspaceScale;
|
||||||
|
|
||||||
|
// Subtract div position.
|
||||||
|
/* var containerElem = this.getContainer();
|
||||||
|
var containerPosition = core.Utils.workOutDivElementPosition(containerElem);
|
||||||
|
x = x + containerPosition.x;
|
||||||
|
y = y + containerPosition.y;*/
|
||||||
|
|
||||||
|
// Remove decimal part..
|
||||||
|
return {x:x,y:y};
|
||||||
|
},
|
||||||
|
|
||||||
|
getWorkspaceIconPosition : function(e) {
|
||||||
|
// Retrieve current icon position.
|
||||||
|
var image = e.getImage();
|
||||||
|
var elementPosition = image.getPosition();
|
||||||
|
var imageSize = e.getSize();
|
||||||
|
|
||||||
|
//Add group offset
|
||||||
|
var iconGroup = e.getGroup();
|
||||||
|
var group = iconGroup.getNativeElement();
|
||||||
|
var coordOrigin = group.getCoordOrigin();
|
||||||
|
var groupSize = group.getSize();
|
||||||
|
var coordSize = group.getCoordSize();
|
||||||
|
|
||||||
|
var scale = {x:coordSize.width / parseInt(groupSize.width), y:coordSize.height / parseInt(groupSize.height)};
|
||||||
|
|
||||||
|
var x = (elementPosition.x - coordOrigin.x - (parseInt(imageSize.width) / 2)) / scale.x;
|
||||||
|
var y = (elementPosition.y - coordOrigin.y - (parseInt(imageSize.height) / 2)) / scale.y;
|
||||||
|
|
||||||
|
//Retrieve iconGroup Position
|
||||||
|
var groupPosition = iconGroup.getPosition();
|
||||||
|
x = x + groupPosition.x;
|
||||||
|
y = y + groupPosition.y;
|
||||||
|
|
||||||
|
//Retrieve topic Position
|
||||||
|
var topic = iconGroup.getTopic();
|
||||||
|
var topicPosition = this.getWorkspaceElementPosition(topic);
|
||||||
|
topicPosition.x = topicPosition.x - (parseInt(topic.getSize().width) / 2);
|
||||||
|
|
||||||
|
|
||||||
|
// Remove decimal part..
|
||||||
|
return {x:x + topicPosition.x,y:y + topicPosition.y};
|
||||||
|
},
|
||||||
|
|
||||||
|
getWorkspaceMousePosition : function(e) {
|
||||||
|
// Retrive current mouse position.
|
||||||
|
var mousePosition = this._getMousePosition(e);
|
||||||
|
var x = mousePosition.x;
|
||||||
|
var y = mousePosition.y;
|
||||||
|
|
||||||
|
// Subtract div position.
|
||||||
|
var containerElem = this.getContainer();
|
||||||
|
var containerPosition = core.Utils.workOutDivElementPosition(containerElem);
|
||||||
|
x = x - containerPosition.x;
|
||||||
|
y = y - containerPosition.y;
|
||||||
|
|
||||||
|
// Scale coordinate in order to be relative to the workspace. That's coordSize/size;
|
||||||
|
x = x * this._workspaceScale;
|
||||||
|
y = y * this._workspaceScale;
|
||||||
|
|
||||||
|
// Add workspace offset.
|
||||||
|
x = x + this._offset.x;
|
||||||
|
y = y + this._offset.y;
|
||||||
|
|
||||||
|
// Remove decimal part..
|
||||||
|
return new core.Point(x, y);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* http://www.howtocreate.co.uk/tutorials/javascript/eventinfo
|
||||||
|
*/
|
||||||
|
_getMousePosition : function(event) {
|
||||||
|
return core.Utils.getMousePosition(event);
|
||||||
|
},
|
||||||
|
|
||||||
|
getContainer : function() {
|
||||||
|
return this._divContainer;
|
||||||
|
},
|
||||||
|
|
||||||
|
setOffset : function(x, y) {
|
||||||
|
this._offset.x = x;
|
||||||
|
this._offset.y = y;
|
||||||
|
}});
|
||||||
|
@ -16,10 +16,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.SingleCommandDispatcher = new Class({
|
mindplot.SingleCommandDispatcher = new Class(
|
||||||
|
{
|
||||||
Extends:mindplot.BaseCommandDispatcher,
|
Extends:mindplot.BaseCommandDispatcher,
|
||||||
initialize: function()
|
initialize: function() {
|
||||||
{
|
|
||||||
|
|
||||||
},
|
},
|
||||||
addIconToTopic: function() {
|
addIconToTopic: function() {
|
||||||
|
@ -17,13 +17,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.TextEditor = new Class({
|
mindplot.TextEditor = new Class({
|
||||||
initialize:function(designer,actionRunner)
|
initialize:function(designer, actionRunner) {
|
||||||
{
|
|
||||||
this._designer = designer;
|
this._designer = designer;
|
||||||
this._screenManager = designer.getWorkSpace().getScreenManager();
|
this._screenManager = designer.getWorkSpace().getScreenManager();
|
||||||
this._container = this._screenManager.getContainer();
|
this._container = this._screenManager.getContainer();
|
||||||
this._actionRunner = actionRunner;
|
this._actionRunner = actionRunner;
|
||||||
this._isVisible=false;
|
this._isVisible = false;
|
||||||
|
|
||||||
//Create editor ui
|
//Create editor ui
|
||||||
this._createUI();
|
this._createUI();
|
||||||
@ -31,7 +30,8 @@ mindplot.TextEditor = new Class({
|
|||||||
this._addListeners();
|
this._addListeners();
|
||||||
|
|
||||||
},
|
},
|
||||||
_createUI:function(){
|
|
||||||
|
_createUI:function() {
|
||||||
this._size = {width:500, height:100};
|
this._size = {width:500, height:100};
|
||||||
this._myOverlay = new Element('div').setStyles({position:"absolute", display: "none", zIndex: "8", top: 0, left:0, width:"500px", height:"100px"});
|
this._myOverlay = new Element('div').setStyles({position:"absolute", display: "none", zIndex: "8", top: 0, left:0, width:"500px", height:"100px"});
|
||||||
var inputContainer = new Element('div').setStyles({border:"none", overflow:"auto"}).inject(this._myOverlay);
|
var inputContainer = new Element('div').setStyles({border:"none", overflow:"auto"}).inject(this._myOverlay);
|
||||||
@ -40,21 +40,19 @@ mindplot.TextEditor = new Class({
|
|||||||
this._spanText = new Element('span').setProperties({id: "spanText", tabindex:"-1"}).setStyle('white-space', "nowrap").setStyle('nowrap', 'nowrap').inject(spanContainer);
|
this._spanText = new Element('span').setProperties({id: "spanText", tabindex:"-1"}).setStyle('white-space', "nowrap").setStyle('nowrap', 'nowrap').inject(spanContainer);
|
||||||
this._myOverlay.inject(this._container);
|
this._myOverlay.inject(this._container);
|
||||||
},
|
},
|
||||||
_addListeners:function(){
|
|
||||||
|
_addListeners:function() {
|
||||||
var elem = this;
|
var elem = this;
|
||||||
this.applyChanges=true;
|
this.applyChanges = true;
|
||||||
this.inputText.onkeyup = function (evt) {
|
this.inputText.onkeyup = function (evt) {
|
||||||
var event = new Event(evt);
|
var event = new Event(evt);
|
||||||
var key = event.key;
|
var key = event.key;
|
||||||
switch(key)
|
switch (key) {
|
||||||
{
|
|
||||||
case 'esc':
|
case 'esc':
|
||||||
elem.applyChanges=false;
|
elem.applyChanges = false;
|
||||||
case 'enter':
|
case 'enter':
|
||||||
var executor = function(editor)
|
var executor = function(editor) {
|
||||||
{
|
return function() {
|
||||||
return function()
|
|
||||||
{
|
|
||||||
elem.lostFocus(true);
|
elem.lostFocus(true);
|
||||||
$(document.documentElement).fireEvent('focus');
|
$(document.documentElement).fireEvent('focus');
|
||||||
};
|
};
|
||||||
@ -63,13 +61,12 @@ mindplot.TextEditor = new Class({
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
var span =$('spanText');
|
var span = $('spanText');
|
||||||
var input = $('inputText');
|
var input = $('inputText');
|
||||||
span.innerHTML = input.value;
|
span.innerHTML = input.value;
|
||||||
var size = input.value.length + 1;
|
var size = input.value.length + 1;
|
||||||
input.size= size;
|
input.size = size;
|
||||||
if (span.offsetWidth > (parseInt(elem._myOverlay.style.width) - 100))
|
if (span.offsetWidth > (parseInt(elem._myOverlay.style.width) - 100)) {
|
||||||
{
|
|
||||||
elem._myOverlay.style.width = (span.offsetWidth + 100) + "px";
|
elem._myOverlay.style.width = (span.offsetWidth + 100) + "px";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -84,18 +81,16 @@ mindplot.TextEditor = new Class({
|
|||||||
var elem = this;
|
var elem = this;
|
||||||
var onComplete = function() {
|
var onComplete = function() {
|
||||||
this._myOverlay.setStyle('display', "none");
|
this._myOverlay.setStyle('display', "none");
|
||||||
this._isVisible=false;
|
this._isVisible = false;
|
||||||
this.inputText.setStyle('opacity', 1);
|
this.inputText.setStyle('opacity', 1);
|
||||||
|
|
||||||
this.setPosition(0, 0);
|
this.setPosition(0, 0);
|
||||||
if (elem._currentNode != null)
|
if (elem._currentNode != null) {
|
||||||
{
|
|
||||||
this._currentNode.getTextShape().setVisibility(true);
|
this._currentNode.getTextShape().setVisibility(true);
|
||||||
if(this.applyChanges)
|
if (this.applyChanges) {
|
||||||
{
|
|
||||||
this._updateNode();
|
this._updateNode();
|
||||||
}
|
}
|
||||||
this.applyChanges=true;
|
this.applyChanges = true;
|
||||||
this._currentNode = null;
|
this._currentNode = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,76 +99,69 @@ mindplot.TextEditor = new Class({
|
|||||||
this.fx = new Fx.Tween(this.inputText, {property: 'opacity', duration: 10});
|
this.fx = new Fx.Tween(this.inputText, {property: 'opacity', duration: 10});
|
||||||
this.fx.addEvent('onComplete', onComplete.bind(this));
|
this.fx.addEvent('onComplete', onComplete.bind(this));
|
||||||
},
|
},
|
||||||
lostFocusEvent : function ()
|
|
||||||
{
|
lostFocusEvent : function () {
|
||||||
this.fx.options.duration = 10;
|
this.fx.options.duration = 10;
|
||||||
this.fx.start(1, 0);
|
this.fx.start(1, 0);
|
||||||
//myAnim.animate();
|
//myAnim.animate();
|
||||||
},
|
},
|
||||||
isVisible : function ()
|
|
||||||
{
|
isVisible : function () {
|
||||||
return this._isVisible;
|
return this._isVisible;
|
||||||
},
|
},
|
||||||
getFocusEvent: function (node)
|
|
||||||
{
|
getFocusEvent: function (node) {
|
||||||
//console.log('focus event');
|
//console.log('focus event');
|
||||||
if (this.isVisible())
|
if (this.isVisible()) {
|
||||||
{
|
|
||||||
this.getFocusEvent.delay(10, this);
|
this.getFocusEvent.delay(10, this);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
//console.log('calling init');
|
//console.log('calling init');
|
||||||
this.init(node);
|
this.init(node);
|
||||||
}
|
}
|
||||||
//console.log('focus event done');
|
//console.log('focus event done');
|
||||||
},
|
},
|
||||||
setInitialText : function (text)
|
|
||||||
{
|
|
||||||
this.initialText=text;
|
|
||||||
},
|
|
||||||
_updateNode : function ()
|
|
||||||
{
|
|
||||||
|
|
||||||
if ($defined(this._currentNode) && this._currentNode.getText() != this.getText())
|
setInitialText : function (text) {
|
||||||
{
|
this.initialText = text;
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateNode : function () {
|
||||||
|
|
||||||
|
if ($defined(this._currentNode) && this._currentNode.getText() != this.getText()) {
|
||||||
var text = this.getText();
|
var text = this.getText();
|
||||||
var topicId = this._currentNode.getId();
|
var topicId = this._currentNode.getId();
|
||||||
|
|
||||||
var commandFunc = function(topic,value)
|
var commandFunc = function(topic, value) {
|
||||||
{
|
|
||||||
var result = topic.getText();
|
var result = topic.getText();
|
||||||
topic.setText(value);
|
topic.setText(value);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc,text,[topicId]);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, text, [topicId]);
|
||||||
this._actionRunner.execute(command);
|
this._actionRunner.execute(command);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
listenEventOnNode : function(topic, eventName, stopPropagation)
|
|
||||||
{
|
listenEventOnNode : function(topic, eventName, stopPropagation) {
|
||||||
var elem = this;
|
var elem = this;
|
||||||
topic.addEventListener(eventName, function (event) {
|
topic.addEventListener(eventName, function (event) {
|
||||||
if(elem._designer.getWorkSpace().isWorkspaceEventsEnabled()){
|
if (elem._designer.getWorkSpace().isWorkspaceEventsEnabled()) {
|
||||||
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeMouseOutEvent,[topic ]);
|
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeMouseOutEvent, [topic ]);
|
||||||
elem.lostFocus();
|
elem.lostFocus();
|
||||||
elem.getFocusEvent.attempt(topic, elem);
|
elem.getFocusEvent.attempt(topic, elem);
|
||||||
|
|
||||||
if (stopPropagation)
|
if (stopPropagation) {
|
||||||
{
|
if ($defined(event.stopPropagation)) {
|
||||||
if ($defined(event.stopPropagation))
|
|
||||||
{
|
|
||||||
event.stopPropagation(true);
|
event.stopPropagation(true);
|
||||||
} else
|
} else {
|
||||||
{
|
|
||||||
event.cancelBubble = true;
|
event.cancelBubble = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
init : function (nodeGraph)
|
|
||||||
{
|
init : function (nodeGraph) {
|
||||||
//console.log('init method');
|
//console.log('init method');
|
||||||
nodeGraph.getTextShape().setVisibility(false);
|
nodeGraph.getTextShape().setVisibility(false);
|
||||||
this._currentNode = nodeGraph;
|
this._currentNode = nodeGraph;
|
||||||
@ -181,12 +169,11 @@ mindplot.TextEditor = new Class({
|
|||||||
//set Editor Style
|
//set Editor Style
|
||||||
var nodeText = nodeGraph.getTextShape();
|
var nodeText = nodeGraph.getTextShape();
|
||||||
var text;
|
var text;
|
||||||
var selectText=true;
|
var selectText = true;
|
||||||
if(this.initialText && this.initialText!="")
|
if (this.initialText && this.initialText != "") {
|
||||||
{
|
|
||||||
text = this.initialText;
|
text = this.initialText;
|
||||||
this.initialText=null;
|
this.initialText = null;
|
||||||
selectText=false;
|
selectText = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
text = nodeText.getText();
|
text = nodeText.getText();
|
||||||
@ -202,10 +189,8 @@ mindplot.TextEditor = new Class({
|
|||||||
|
|
||||||
//set editor's initial size
|
//set editor's initial size
|
||||||
var editor = this;
|
var editor = this;
|
||||||
var executor = function(editor)
|
var executor = function(editor) {
|
||||||
{
|
return function() {
|
||||||
return function()
|
|
||||||
{
|
|
||||||
//console.log('setting editor in init thread');
|
//console.log('setting editor in init thread');
|
||||||
var scale = web2d.peer.utils.TransformUtil.workoutScale(editor._currentNode.getTextShape()._peer);
|
var scale = web2d.peer.utils.TransformUtil.workoutScale(editor._currentNode.getTextShape()._peer);
|
||||||
var elemSize = editor._currentNode.getSize();
|
var elemSize = editor._currentNode.getSize();
|
||||||
@ -216,17 +201,15 @@ mindplot.TextEditor = new Class({
|
|||||||
var textHeight = editor._currentNode.getTextShape().getHeight();
|
var textHeight = editor._currentNode.getTextShape().getHeight();
|
||||||
var iconGroup = editor._currentNode.getIconGroup();
|
var iconGroup = editor._currentNode.getIconGroup();
|
||||||
var iconGroupSize;
|
var iconGroupSize;
|
||||||
if($chk(iconGroup))
|
if ($chk(iconGroup)) {
|
||||||
{
|
|
||||||
iconGroupSize = editor._currentNode.getIconGroup().getSize();
|
iconGroupSize = editor._currentNode.getIconGroup().getSize();
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
iconGroupSize = {width:0, height:0};
|
iconGroupSize = {width:0, height:0};
|
||||||
}
|
}
|
||||||
var position = {x:0,y:0};
|
var position = {x:0,y:0};
|
||||||
position.x = pos.x - ((textWidth * scale.width) / 2) + (((iconGroupSize.width) * scale.width)/2);
|
position.x = pos.x - ((textWidth * scale.width) / 2) + (((iconGroupSize.width) * scale.width) / 2);
|
||||||
var fixError =1;
|
var fixError = 1;
|
||||||
position.y = pos.y - ((textHeight * scale.height) / 2) - fixError;
|
position.y = pos.y - ((textHeight * scale.height) / 2) - fixError;
|
||||||
|
|
||||||
editor.setEditorSize(elemSize.width, elemSize.height, scale);
|
editor.setEditorSize(elemSize.width, elemSize.height, scale);
|
||||||
@ -240,24 +223,20 @@ mindplot.TextEditor = new Class({
|
|||||||
setTimeout(executor(this), 10);
|
setTimeout(executor(this), 10);
|
||||||
//console.log('init done');
|
//console.log('init done');
|
||||||
},
|
},
|
||||||
setStyle : function (fontStyle)
|
|
||||||
{
|
setStyle : function (fontStyle) {
|
||||||
var inputField = $("inputText");
|
var inputField = $("inputText");
|
||||||
var spanField = $("spanText");
|
var spanField = $("spanText");
|
||||||
if (!$defined(fontStyle.font))
|
if (!$defined(fontStyle.font)) {
|
||||||
{
|
|
||||||
fontStyle.font = "Arial";
|
fontStyle.font = "Arial";
|
||||||
}
|
}
|
||||||
if (!$defined(fontStyle.style))
|
if (!$defined(fontStyle.style)) {
|
||||||
{
|
|
||||||
fontStyle.style = "normal";
|
fontStyle.style = "normal";
|
||||||
}
|
}
|
||||||
if (!$defined(fontStyle.weight))
|
if (!$defined(fontStyle.weight)) {
|
||||||
{
|
|
||||||
fontStyle.weight = "normal";
|
fontStyle.weight = "normal";
|
||||||
}
|
}
|
||||||
if (!$defined(fontStyle.size))
|
if (!$defined(fontStyle.size)) {
|
||||||
{
|
|
||||||
fontStyle.size = 12;
|
fontStyle.size = 12;
|
||||||
}
|
}
|
||||||
inputField.style.fontSize = fontStyle.size + "px";
|
inputField.style.fontSize = fontStyle.size + "px";
|
||||||
@ -270,8 +249,8 @@ mindplot.TextEditor = new Class({
|
|||||||
spanField.style.fontWeight = fontStyle.weight;
|
spanField.style.fontWeight = fontStyle.weight;
|
||||||
spanField.style.fontSize = fontStyle.size + "px";
|
spanField.style.fontSize = fontStyle.size + "px";
|
||||||
},
|
},
|
||||||
setText : function(text)
|
|
||||||
{
|
setText : function(text) {
|
||||||
var inputField = $("inputText");
|
var inputField = $("inputText");
|
||||||
inputField.size = text.length + 1;
|
inputField.size = text.length + 1;
|
||||||
//this._myOverlay.cfg.setProperty("width", (inputField.size * parseInt(inputField.style.fontSize) + 100) + "px");
|
//this._myOverlay.cfg.setProperty("width", (inputField.size * parseInt(inputField.style.fontSize) + 100) + "px");
|
||||||
@ -280,12 +259,12 @@ mindplot.TextEditor = new Class({
|
|||||||
spanField.innerHTML = text;
|
spanField.innerHTML = text;
|
||||||
inputField.value = text;
|
inputField.value = text;
|
||||||
},
|
},
|
||||||
getText : function()
|
|
||||||
{
|
getText : function() {
|
||||||
return $('inputText').value;
|
return $('inputText').value;
|
||||||
},
|
},
|
||||||
setEditorSize : function (width, height, scale)
|
|
||||||
{
|
setEditorSize : function (width, height, scale) {
|
||||||
//var scale = web2d.peer.utils.TransformUtil.workoutScale(this._currentNode.getTextShape()._peer);
|
//var scale = web2d.peer.utils.TransformUtil.workoutScale(this._currentNode.getTextShape()._peer);
|
||||||
this._size = {width:width * scale.width, height:height * scale.height};
|
this._size = {width:width * scale.width, height:height * scale.height};
|
||||||
//this._myOverlay.cfg.setProperty("width",this._size.width*2+"px");
|
//this._myOverlay.cfg.setProperty("width",this._size.width*2+"px");
|
||||||
@ -293,17 +272,17 @@ mindplot.TextEditor = new Class({
|
|||||||
//this._myOverlay.cfg.setProperty("height",this._size.height+"px");
|
//this._myOverlay.cfg.setProperty("height",this._size.height+"px");
|
||||||
this._myOverlay.style.height = this._size.height + "px";
|
this._myOverlay.style.height = this._size.height + "px";
|
||||||
},
|
},
|
||||||
getSize : function ()
|
|
||||||
{
|
getSize : function () {
|
||||||
return {width:$("spanText").offsetWidth,height:$("spanText").offsetHeight};
|
return {width:$("spanText").offsetWidth,height:$("spanText").offsetHeight};
|
||||||
},
|
},
|
||||||
setPosition : function (x, y, scale)
|
|
||||||
{
|
setPosition : function (x, y, scale) {
|
||||||
$(this._myOverlay).setStyles({top : y + "px", left: x + "px"});
|
$(this._myOverlay).setStyles({top : y + "px", left: x + "px"});
|
||||||
//this._myOverlay.style.left = x + "px";
|
//this._myOverlay.style.left = x + "px";
|
||||||
},
|
},
|
||||||
showTextEditor : function(selectText)
|
|
||||||
{
|
showTextEditor : function(selectText) {
|
||||||
//this._myOverlay.show();
|
//this._myOverlay.show();
|
||||||
//var myAnim = new YAHOO.util.Anim('inputText',{opacity: {to:1}}, 0.10, YAHOO.util.Easing.easeOut);
|
//var myAnim = new YAHOO.util.Anim('inputText',{opacity: {to:1}}, 0.10, YAHOO.util.Easing.easeOut);
|
||||||
//$('inputText').style.opacity='1';
|
//$('inputText').style.opacity='1';
|
||||||
@ -311,7 +290,7 @@ mindplot.TextEditor = new Class({
|
|||||||
//myAnim.onComplete.subscribe(function(){
|
//myAnim.onComplete.subscribe(function(){
|
||||||
//elem._myOverlay.show();
|
//elem._myOverlay.show();
|
||||||
elem._myOverlay.setStyle('display', "block");
|
elem._myOverlay.setStyle('display', "block");
|
||||||
this._isVisible=true;
|
this._isVisible = true;
|
||||||
//elem.cfg.setProperty("visible", false);
|
//elem.cfg.setProperty("visible", false);
|
||||||
//elem._myOverlay.cfg.setProperty("xy", [0, 0]);
|
//elem._myOverlay.cfg.setProperty("xy", [0, 0]);
|
||||||
//elem._myOverlay.cfg.setProperty("visible", true);
|
//elem._myOverlay.cfg.setProperty("visible", true);
|
||||||
@ -322,31 +301,25 @@ mindplot.TextEditor = new Class({
|
|||||||
{
|
{
|
||||||
var range = $('inputText').createTextRange();
|
var range = $('inputText').createTextRange();
|
||||||
var pos = $('inputText').value.length;
|
var pos = $('inputText').value.length;
|
||||||
if(selectText)
|
if (selectText) {
|
||||||
{
|
|
||||||
range.select();
|
range.select();
|
||||||
range.move("character", pos);
|
range.move("character", pos);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
range.move("character", pos);
|
range.move("character", pos);
|
||||||
range.select();
|
range.select();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(selectText)
|
else if (selectText) {
|
||||||
{
|
|
||||||
$('inputText').setSelectionRange(0, $('inputText').value.length);
|
$('inputText').setSelectionRange(0, $('inputText').value.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
var executor = function(editor)
|
var executor = function(editor) {
|
||||||
{
|
return function() {
|
||||||
return function()
|
|
||||||
{
|
|
||||||
try {
|
try {
|
||||||
$('inputText').focus();
|
$('inputText').focus();
|
||||||
}
|
}
|
||||||
catch (e)
|
catch (e) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -356,35 +329,30 @@ mindplot.TextEditor = new Class({
|
|||||||
//myAnim.animate();
|
//myAnim.animate();
|
||||||
|
|
||||||
},
|
},
|
||||||
lostFocus : function(bothBrowsers)
|
|
||||||
{
|
lostFocus : function(bothBrowsers) {
|
||||||
if (this.isVisible())
|
if (this.isVisible()) {
|
||||||
{
|
|
||||||
//the editor is opened in another node. lets Finish it.
|
//the editor is opened in another node. lets Finish it.
|
||||||
var fireOnThis = $('inputText');
|
var fireOnThis = $('inputText');
|
||||||
fireOnThis.fireEvent('blur');
|
fireOnThis.fireEvent('blur');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clickEvent : function(event){
|
clickEvent : function(event) {
|
||||||
if(this.isVisible()){
|
if (this.isVisible()) {
|
||||||
if ($defined(event.stopPropagation))
|
if ($defined(event.stopPropagation)) {
|
||||||
{
|
|
||||||
event.stopPropagation(true);
|
event.stopPropagation(true);
|
||||||
} else
|
} else {
|
||||||
{
|
|
||||||
event.cancelBubble = true;
|
event.cancelBubble = true;
|
||||||
}
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
mouseDownEvent : function(event){
|
mouseDownEvent : function(event) {
|
||||||
if(this.isVisible()){
|
if (this.isVisible()) {
|
||||||
if ($defined(event.stopPropagation))
|
if ($defined(event.stopPropagation)) {
|
||||||
{
|
|
||||||
event.stopPropagation(true);
|
event.stopPropagation(true);
|
||||||
} else
|
} else {
|
||||||
{
|
|
||||||
event.cancelBubble = true;
|
event.cancelBubble = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
mindplot.TextEditorFactory={};
|
mindplot.TextEditorFactory = {};
|
||||||
|
|
||||||
mindplot.TextEditorFactory.getTextEditorFromName = function(name){
|
mindplot.TextEditorFactory.getTextEditorFromName = function(name) {
|
||||||
var editorClass = null;
|
var editorClass = null;
|
||||||
if(name == "RichTextEditor"){
|
if (name == "RichTextEditor") {
|
||||||
editorClass = mindplot.RichTextEditor;
|
editorClass = mindplot.RichTextEditor;
|
||||||
}else {
|
} else {
|
||||||
editorClass = mindplot.TextEditor;
|
editorClass = mindplot.TextEditor;
|
||||||
}
|
}
|
||||||
return editorClass;
|
return editorClass;
|
||||||
|
@ -1,114 +1,115 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.Tip = function(divContainer){
|
mindplot.Tip = new Class({
|
||||||
this.initialize(divContainer);
|
initialize:function(divContainer) {
|
||||||
};
|
this.options = {
|
||||||
|
panel:null,
|
||||||
mindplot.Tip.prototype.initialize=function(divContainer){
|
container:null,
|
||||||
this.options={
|
divContainer:divContainer,
|
||||||
panel:null,
|
content:null,
|
||||||
container:null,
|
onShowComplete:Class.empty,
|
||||||
divContainer:divContainer,
|
onHideComplete:Class.empty,
|
||||||
content:null,
|
width:null,
|
||||||
onShowComplete:Class.empty,
|
height:null,
|
||||||
onHideComplete:Class.empty,
|
form:null
|
||||||
width:null,
|
};
|
||||||
height:null,
|
|
||||||
form:null
|
|
||||||
};
|
|
||||||
this.buildTip();
|
this.buildTip();
|
||||||
this._isMouseOver=false;
|
this._isMouseOver = false;
|
||||||
this._open=false;
|
this._open = false;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.buildTip=function(){
|
buildTip : function() {
|
||||||
var opts = this.options;
|
var opts = this.options;
|
||||||
var panel = new Element('div').addClass('bubbleContainer');
|
var panel = new Element('div').addClass('bubbleContainer');
|
||||||
if($chk(opts.height))
|
if ($chk(opts.height))
|
||||||
panel.setStyle('height', opts.height);
|
panel.setStyle('height', opts.height);
|
||||||
if($chk(opts.width))
|
if ($chk(opts.width))
|
||||||
panel.setStyle('width', opts.width);
|
panel.setStyle('width', opts.width);
|
||||||
if(!$chk(opts.divContainer))
|
if (!$chk(opts.divContainer)) {
|
||||||
{
|
opts.divContainer = document.body;
|
||||||
opts.divContainer=document.body;
|
|
||||||
}
|
}
|
||||||
panel.injectTop(opts.divContainer);
|
panel.injectTop(opts.divContainer);
|
||||||
opts.panel = $(panel);
|
opts.panel = $(panel);
|
||||||
opts.panel.setStyle('opacity',0);
|
opts.panel.setStyle('opacity', 0);
|
||||||
opts.panel.addEvent('mouseover',function(){this._isMouseOver=true;}.bind(this));
|
opts.panel.addEvent('mouseover', function() {
|
||||||
opts.panel.addEvent('mouseleave',function(event){this.close(event);}.bindWithEvent(this));//this.close.bindWithEvent(this)
|
this._isMouseOver = true;
|
||||||
|
}.bind(this));
|
||||||
|
opts.panel.addEvent('mouseleave', function(event) {
|
||||||
|
this.close(event);
|
||||||
|
}.bindWithEvent(this));//this.close.bindWithEvent(this)
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.click= function(event, el) {
|
click : function(event, el) {
|
||||||
return this.open(event, el);
|
return this.open(event, el);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.open= function(event, content, source){
|
open : function(event, content, source) {
|
||||||
this._isMouseOver=true;
|
this._isMouseOver = true;
|
||||||
this._evt = new Event(event);
|
this._evt = new Event(event);
|
||||||
this.doOpen.delay(500, this,[content,source]);
|
this.doOpen.delay(500, this, [content,source]);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.doOpen= function(content, source){
|
doOpen : function(content, source) {
|
||||||
if($chk(this._isMouseOver) &&!$chk(this._open) && !$chk(this._opening))
|
if ($chk(this._isMouseOver) && !$chk(this._open) && !$chk(this._opening)) {
|
||||||
{
|
this._opening = true;
|
||||||
this._opening=true;
|
|
||||||
var container = new Element('div');
|
var container = new Element('div');
|
||||||
$(content).inject(container);
|
$(content).inject(container);
|
||||||
this.options.content=content;
|
this.options.content = content;
|
||||||
this.options.container=container;
|
this.options.container = container;
|
||||||
$(this.options.container).inject(this.options.panel);
|
$(this.options.container).inject(this.options.panel);
|
||||||
this.init(this._evt,source);
|
this.init(this._evt, source);
|
||||||
$(this.options.panel).effect('opacity',{duration:500, onComplete:function(){this._open=true; this._opening = false;}.bind(this)}).start(0,100);
|
$(this.options.panel).effect('opacity', {duration:500, onComplete:function() {
|
||||||
|
this._open = true;
|
||||||
|
this._opening = false;
|
||||||
|
}.bind(this)}).start(0, 100);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.updatePosition=function(event){
|
updatePosition : function(event) {
|
||||||
this._evt = new Event(event);
|
this._evt = new Event(event);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.close=function(event){
|
close : function(event) {
|
||||||
this._isMouseOver=false;
|
this._isMouseOver = false;
|
||||||
this.doClose.delay(50,this,new Event(event));
|
this.doClose.delay(50, this, new Event(event));
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.doClose=function(event){
|
doClose : function(event) {
|
||||||
|
|
||||||
if(!$chk(this._isMouseOver) && $chk(this._opening))
|
if (!$chk(this._isMouseOver) && $chk(this._opening))
|
||||||
this.doClose.delay(500,this,this._evt);
|
this.doClose.delay(500, this, this._evt);
|
||||||
|
|
||||||
if(!$chk(this._isMouseOver) && $chk(this._open))
|
if (!$chk(this._isMouseOver) && $chk(this._open)) {
|
||||||
{
|
|
||||||
this.forceClose();
|
this.forceClose();
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.forceClose=function(){
|
forceClose : function() {
|
||||||
this.options.panel.effect('opacity',{duration:100, onComplete:function(){
|
this.options.panel.effect('opacity', {duration:100, onComplete:function() {
|
||||||
this._open=false;
|
this._open = false;
|
||||||
$(this.options.panel).setStyles({left:0,top:0});
|
$(this.options.panel).setStyles({left:0,top:0});
|
||||||
$(this.options.container).dispose();
|
$(this.options.container).dispose();
|
||||||
}.bind(this)}).start(100,0);
|
}.bind(this)}).start(100, 0);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.init=function(event,source){
|
init : function(event, source) {
|
||||||
var opts = this.options;
|
var opts = this.options;
|
||||||
var coordinates = $(opts.panel).getCoordinates();
|
var coordinates = $(opts.panel).getCoordinates();
|
||||||
var width = coordinates.width; //not total width, but close enough
|
var width = coordinates.width; //not total width, but close enough
|
||||||
@ -124,21 +125,21 @@ mindplot.Tip.prototype.init=function(event,source){
|
|||||||
this.buildTip();
|
this.buildTip();
|
||||||
$(this.options.container).inject(this.options.panel);
|
$(this.options.container).inject(this.options.panel);
|
||||||
this.moveTopic(offset, $(opts.panel).getCoordinates().height);
|
this.moveTopic(offset, $(opts.panel).getCoordinates().height);
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.Tip.prototype.moveTopic=function(offset, panelHeight){
|
moveTopic : function(offset, panelHeight) {
|
||||||
var opts = this.options;
|
var opts = this.options;
|
||||||
var width = $(opts.panel).getCoordinates().width;
|
var width = $(opts.panel).getCoordinates().width;
|
||||||
$(opts.panel).setStyles({left:offset.x - (width/2), top:offset.y - (panelHeight*2) + 35});
|
$(opts.panel).setStyles({left:offset.x - (width / 2), top:offset.y - (panelHeight * 2) + 35});
|
||||||
};
|
}
|
||||||
|
|
||||||
mindplot.Tip.getInstance = function(divContainer)
|
});
|
||||||
{
|
|
||||||
|
mindplot.Tip.getInstance = function(divContainer) {
|
||||||
var result = mindplot.Tip.instance;
|
var result = mindplot.Tip.instance;
|
||||||
if(!$defined(result))
|
if (!$defined(result)) {
|
||||||
{
|
|
||||||
mindplot.Tip.instance = new mindplot.Tip(divContainer);
|
mindplot.Tip.instance = new mindplot.Tip(divContainer);
|
||||||
result = mindplot.Tip.instance;
|
result = mindplot.Tip.instance;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
};
|
}
|
@ -17,197 +17,197 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.VariableDistanceBoard = new Class({
|
mindplot.VariableDistanceBoard = new Class({
|
||||||
Extends: mindplot.Board,
|
Extends: mindplot.Board,
|
||||||
initialize: function(defaultHeight, referencePoint) {
|
initialize: function(defaultHeight, referencePoint) {
|
||||||
this.parent(defaultHeight, referencePoint);
|
this.parent(defaultHeight, referencePoint);
|
||||||
var zeroEntryCoordinate = referencePoint.y;
|
var zeroEntryCoordinate = referencePoint.y;
|
||||||
var entry = this.createBoardEntry(zeroEntryCoordinate - (defaultHeight / 2), zeroEntryCoordinate + (defaultHeight / 2), 0);
|
var entry = this.createBoardEntry(zeroEntryCoordinate - (defaultHeight / 2), zeroEntryCoordinate + (defaultHeight / 2), 0);
|
||||||
this._entries.set(0, entry);
|
this._entries.set(0, entry);
|
||||||
},
|
},
|
||||||
|
|
||||||
lookupEntryByOrder:function(order) {
|
lookupEntryByOrder:function(order) {
|
||||||
var entries = this._entries;
|
var entries = this._entries;
|
||||||
var index = this._orderToIndex(order);
|
var index = this._orderToIndex(order);
|
||||||
|
|
||||||
var result = entries.get(index);
|
var result = entries.get(index);
|
||||||
if (!$defined(result)) {
|
if (!$defined(result)) {
|
||||||
// I've not found a entry. I have to create a new one.
|
// I've not found a entry. I have to create a new one.
|
||||||
var i = 1;
|
var i = 1;
|
||||||
var zeroEntry = entries.get(0);
|
var zeroEntry = entries.get(0);
|
||||||
var distance = zeroEntry.getWidth() / 2;
|
var distance = zeroEntry.getWidth() / 2;
|
||||||
var indexSign = Math.sign(index);
|
var indexSign = Math.sign(index);
|
||||||
var absIndex = Math.abs(index);
|
var absIndex = Math.abs(index);
|
||||||
while (i < absIndex) {
|
while (i < absIndex) {
|
||||||
// Move to the next entry ...
|
// Move to the next entry ...
|
||||||
var entry = entries.get(i, indexSign);
|
var entry = entries.get(i, indexSign);
|
||||||
if (entry != null) {
|
if (entry != null) {
|
||||||
distance += entry.getWidth();
|
distance += entry.getWidth();
|
||||||
} else {
|
|
||||||
distance += this._defaultWidth;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate limits ...
|
|
||||||
var upperLimit = -1;
|
|
||||||
var lowerLimit = -1;
|
|
||||||
var offset = zeroEntry.workoutEntryYCenter();
|
|
||||||
if (index >= 0) {
|
|
||||||
lowerLimit = offset + distance;
|
|
||||||
upperLimit = lowerLimit + this._defaultWidth;
|
|
||||||
} else {
|
} else {
|
||||||
upperLimit = offset - distance;
|
distance += this._defaultWidth;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate limits ...
|
||||||
|
var upperLimit = -1;
|
||||||
|
var lowerLimit = -1;
|
||||||
|
var offset = zeroEntry.workoutEntryYCenter();
|
||||||
|
if (index >= 0) {
|
||||||
|
lowerLimit = offset + distance;
|
||||||
|
upperLimit = lowerLimit + this._defaultWidth;
|
||||||
|
} else {
|
||||||
|
upperLimit = offset - distance;
|
||||||
|
lowerLimit = upperLimit - this._defaultWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = this.createBoardEntry(lowerLimit, upperLimit, order);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
createBoardEntry:function(lowerLimit, upperLimit, order) {
|
||||||
|
return new mindplot.BoardEntry(lowerLimit, upperLimit, order);
|
||||||
|
},
|
||||||
|
|
||||||
|
updateReferencePoint:function(position) {
|
||||||
|
var entries = this._entries;
|
||||||
|
var referencePoint = this._referencePoint;
|
||||||
|
|
||||||
|
// Update zero entry current position.
|
||||||
|
this._referencePoint = position.clone();
|
||||||
|
var yOffset = position.y - referencePoint.y;
|
||||||
|
|
||||||
|
var i = -entries.lowerLength();
|
||||||
|
for (; i <= entries.length(1); i++) {
|
||||||
|
var entry = entries.get(i);
|
||||||
|
if (entry != null) {
|
||||||
|
var upperLimit = entry.getUpperLimit() + yOffset;
|
||||||
|
var lowerLimit = entry.getLowerLimit() + yOffset;
|
||||||
|
entry.setUpperLimit(upperLimit);
|
||||||
|
entry.setLowerLimit(lowerLimit);
|
||||||
|
|
||||||
|
// Update topic position ...
|
||||||
|
if (!entry.isAvailable()) {
|
||||||
|
var topic = entry.getTopic();
|
||||||
|
var topicPosition = topic.getPosition();
|
||||||
|
topicPosition.y = topicPosition.y + yOffset;
|
||||||
|
|
||||||
|
// MainTopicToCentral must be positioned based on the referencePoint.
|
||||||
|
var xOffset = position.x - referencePoint.x;
|
||||||
|
topicPosition.x = topicPosition.x + xOffset;
|
||||||
|
|
||||||
|
topic.setPosition(topicPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
lookupEntryByPosition:function(pos) {
|
||||||
|
$assert(pos, 'position can not be null');
|
||||||
|
var entries = this._entries;
|
||||||
|
var zeroEntry = entries.get(0);
|
||||||
|
if (zeroEntry.isCoordinateIn(pos.y)) {
|
||||||
|
return zeroEntry;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Is Upper or lower ?
|
||||||
|
var sign = -1;
|
||||||
|
if (pos.y >= zeroEntry.getUpperLimit()) {
|
||||||
|
sign = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
var i = 1;
|
||||||
|
var tempEntry = this.createBoardEntry();
|
||||||
|
var currentEntry = zeroEntry;
|
||||||
|
while (true) {
|
||||||
|
// Move to the next entry ...
|
||||||
|
var index = i * sign;
|
||||||
|
var entry = entries.get(index);
|
||||||
|
if ($defined(entry)) {
|
||||||
|
currentEntry = entry;
|
||||||
|
} else {
|
||||||
|
// Calculate boundaries...
|
||||||
|
var lowerLimit, upperLimit;
|
||||||
|
if (sign > 0) {
|
||||||
|
lowerLimit = currentEntry.getUpperLimit();
|
||||||
|
upperLimit = lowerLimit + this._defaultWidth;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
upperLimit = currentEntry.getLowerLimit();
|
||||||
lowerLimit = upperLimit - this._defaultWidth;
|
lowerLimit = upperLimit - this._defaultWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = this.createBoardEntry(lowerLimit, upperLimit, order);
|
// Update current entry.
|
||||||
|
currentEntry = tempEntry;
|
||||||
|
currentEntry.setLowerLimit(lowerLimit);
|
||||||
|
currentEntry.setUpperLimit(upperLimit);
|
||||||
|
|
||||||
|
var order = this._indexToOrder(index);
|
||||||
|
currentEntry.setOrder(order);
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
},
|
|
||||||
|
|
||||||
createBoardEntry:function(lowerLimit, upperLimit, order) {
|
// Have I found the item?
|
||||||
return new mindplot.BoardEntry(lowerLimit, upperLimit, order);
|
if (currentEntry.isCoordinateIn(pos.y)) {
|
||||||
},
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return currentEntry;
|
||||||
|
},
|
||||||
|
|
||||||
updateReferencePoint:function(position) {
|
update:function(entry) {
|
||||||
var entries = this._entries;
|
$assert(entry, 'Entry can not be null');
|
||||||
var referencePoint = this._referencePoint;
|
var order = entry.getOrder();
|
||||||
|
var index = this._orderToIndex(order);
|
||||||
|
|
||||||
// Update zero entry current position.
|
this._entries.set(index, entry);
|
||||||
this._referencePoint = position.clone();
|
|
||||||
var yOffset = position.y - referencePoint.y;
|
|
||||||
|
|
||||||
var i = -entries.lowerLength();
|
},
|
||||||
for (; i <= entries.length(1); i++) {
|
freeEntry:function(entry) {
|
||||||
var entry = entries.get(i);
|
var order = entry.getOrder();
|
||||||
if (entry != null) {
|
var entries = this._entries;
|
||||||
var upperLimit = entry.getUpperLimit() + yOffset;
|
|
||||||
var lowerLimit = entry.getLowerLimit() + yOffset;
|
|
||||||
entry.setUpperLimit(upperLimit);
|
|
||||||
entry.setLowerLimit(lowerLimit);
|
|
||||||
|
|
||||||
// Update topic position ...
|
var index = this._orderToIndex(order);
|
||||||
if (!entry.isAvailable()) {
|
var indexSign = Math.sign(index);
|
||||||
var topic = entry.getTopic();
|
|
||||||
var topicPosition = topic.getPosition();
|
|
||||||
topicPosition.y = topicPosition.y + yOffset;
|
|
||||||
|
|
||||||
// MainTopicToCentral must be positioned based on the referencePoint.
|
var currentTopic = entry.getTopic();
|
||||||
var xOffset = position.x - referencePoint.x;
|
var i = Math.abs(index) + 1;
|
||||||
topicPosition.x = topicPosition.x + xOffset;
|
while (currentTopic) {
|
||||||
|
var e = entries.get(i, indexSign);
|
||||||
|
if ($defined(currentTopic) && !$defined(e)) {
|
||||||
|
var entryOrder = this._indexToOrder(i * indexSign);
|
||||||
|
e = this.lookupEntryByOrder(entryOrder);
|
||||||
|
}
|
||||||
|
|
||||||
topic.setPosition(topicPosition);
|
// Move the topic to the next entry ...
|
||||||
}
|
var topic = null;
|
||||||
|
if ($defined(e)) {
|
||||||
|
topic = e.getTopic();
|
||||||
|
if ($defined(currentTopic)) {
|
||||||
|
e.setTopic(currentTopic);
|
||||||
}
|
}
|
||||||
|
this.update(e);
|
||||||
}
|
}
|
||||||
},
|
currentTopic = topic;
|
||||||
|
i++;
|
||||||
lookupEntryByPosition:function(pos) {
|
|
||||||
$assert($defined(pos), 'position can not be null');
|
|
||||||
var entries = this._entries;
|
|
||||||
var zeroEntry = entries.get(0);
|
|
||||||
if (zeroEntry.isCoordinateIn(pos.y)) {
|
|
||||||
return zeroEntry;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Is Upper or lower ?
|
|
||||||
var sign = -1;
|
|
||||||
if (pos.y >= zeroEntry.getUpperLimit()) {
|
|
||||||
sign = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var i = 1;
|
|
||||||
var tempEntry = this.createBoardEntry();
|
|
||||||
var currentEntry = zeroEntry;
|
|
||||||
while (true) {
|
|
||||||
// Move to the next entry ...
|
|
||||||
var index = i * sign;
|
|
||||||
var entry = entries.get(index);
|
|
||||||
if ($defined(entry)) {
|
|
||||||
currentEntry = entry;
|
|
||||||
} else {
|
|
||||||
// Calculate boundaries...
|
|
||||||
var lowerLimit, upperLimit;
|
|
||||||
if (sign > 0) {
|
|
||||||
lowerLimit = currentEntry.getUpperLimit();
|
|
||||||
upperLimit = lowerLimit + this._defaultWidth;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
upperLimit = currentEntry.getLowerLimit();
|
|
||||||
lowerLimit = upperLimit - this._defaultWidth;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update current entry.
|
|
||||||
currentEntry = tempEntry;
|
|
||||||
currentEntry.setLowerLimit(lowerLimit);
|
|
||||||
currentEntry.setUpperLimit(upperLimit);
|
|
||||||
|
|
||||||
var order = this._indexToOrder(index);
|
|
||||||
currentEntry.setOrder(order);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Have I found the item?
|
|
||||||
if (currentEntry.isCoordinateIn(pos.y)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return currentEntry;
|
|
||||||
},
|
|
||||||
|
|
||||||
update:function(entry) {
|
|
||||||
$assert(entry, 'Entry can not be null');
|
|
||||||
var order = entry.getOrder();
|
|
||||||
var index = this._orderToIndex(order);
|
|
||||||
|
|
||||||
this._entries.set(index, entry);
|
|
||||||
|
|
||||||
},
|
|
||||||
freeEntry:function(entry) {
|
|
||||||
var order = entry.getOrder();
|
|
||||||
var entries = this._entries;
|
|
||||||
|
|
||||||
var index = this._orderToIndex(order);
|
|
||||||
var indexSign = Math.sign(index);
|
|
||||||
|
|
||||||
var currentTopic = entry.getTopic();
|
|
||||||
var i = Math.abs(index) + 1;
|
|
||||||
while (currentTopic) {
|
|
||||||
var e = entries.get(i, indexSign);
|
|
||||||
if ($defined(currentTopic) && !$defined(e)) {
|
|
||||||
var entryOrder = this._indexToOrder(i * indexSign);
|
|
||||||
e = this.lookupEntryByOrder(entryOrder);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Move the topic to the next entry ...
|
|
||||||
var topic = null;
|
|
||||||
if ($defined(e)) {
|
|
||||||
topic = e.getTopic();
|
|
||||||
if ($defined(currentTopic)) {
|
|
||||||
e.setTopic(currentTopic);
|
|
||||||
}
|
|
||||||
this.update(e);
|
|
||||||
}
|
|
||||||
currentTopic = topic;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the entry topic ...
|
|
||||||
entry.setTopic(null);
|
|
||||||
},
|
|
||||||
|
|
||||||
_orderToIndex:function(order) {
|
|
||||||
var index = Math.round(order / 2);
|
|
||||||
return ((order % 2) == 0) ? index : -index;
|
|
||||||
},
|
|
||||||
|
|
||||||
_indexToOrder:function(index) {
|
|
||||||
var order = Math.abs(index) * 2;
|
|
||||||
return (index >= 0) ? order : order - 1;
|
|
||||||
},
|
|
||||||
|
|
||||||
inspect:function() {
|
|
||||||
return this._entries.inspect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
// Clear the entry topic ...
|
||||||
|
entry.setTopic(null);
|
||||||
|
},
|
||||||
|
|
||||||
|
_orderToIndex:function(order) {
|
||||||
|
var index = Math.round(order / 2);
|
||||||
|
return ((order % 2) == 0) ? index : -index;
|
||||||
|
},
|
||||||
|
|
||||||
|
_indexToOrder:function(index) {
|
||||||
|
var order = Math.abs(index) * 2;
|
||||||
|
return (index >= 0) ? order : order - 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
inspect:function() {
|
||||||
|
return this._entries.inspect();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
@ -150,8 +150,7 @@ mindplot.Workspace = new Class({
|
|||||||
var screenManager = this._screenManager;
|
var screenManager = this._screenManager;
|
||||||
this._dragging = true;
|
this._dragging = true;
|
||||||
var mWorkspace = this;
|
var mWorkspace = this;
|
||||||
var mouseDownListener = function(event)
|
var mouseDownListener = function(event) {
|
||||||
{
|
|
||||||
if (!$defined(workspace.mouseMoveListener)) {
|
if (!$defined(workspace.mouseMoveListener)) {
|
||||||
if (mWorkspace.isWorkspaceEventsEnabled()) {
|
if (mWorkspace.isWorkspaceEventsEnabled()) {
|
||||||
mWorkspace.enableWorkspaceEvents(false);
|
mWorkspace.enableWorkspaceEvents(false);
|
||||||
|
@ -1,45 +1,45 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
mindplot.XMLMindmapSerializerFactory = {};
|
mindplot.XMLMindmapSerializerFactory = {};
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializerFactory.getSerializerFromMindmap = function(mindmap){
|
mindplot.XMLMindmapSerializerFactory.getSerializerFromMindmap = function(mindmap) {
|
||||||
return mindplot.XMLMindmapSerializerFactory.getSerializer(mindmap.getVersion());
|
return mindplot.XMLMindmapSerializerFactory.getSerializer(mindmap.getVersion());
|
||||||
};
|
};
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializerFactory.getSerializerFromDocument = function(domDocument){
|
mindplot.XMLMindmapSerializerFactory.getSerializerFromDocument = function(domDocument) {
|
||||||
var rootElem = domDocument.documentElement;
|
var rootElem = domDocument.documentElement;
|
||||||
return mindplot.XMLMindmapSerializerFactory.getSerializer(rootElem.getAttribute("version"))
|
return mindplot.XMLMindmapSerializerFactory.getSerializer(rootElem.getAttribute("version"))
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializerFactory.getSerializer = function(version){
|
mindplot.XMLMindmapSerializerFactory.getSerializer = function(version) {
|
||||||
if(!$defined(version)){
|
if (!$defined(version)) {
|
||||||
version = mindplot.ModelCodeName.BETA;
|
version = mindplot.ModelCodeName.BETA;
|
||||||
}
|
}
|
||||||
var codeNames = mindplot.XMLMindmapSerializerFactory._codeNames;
|
var codeNames = mindplot.XMLMindmapSerializerFactory._codeNames;
|
||||||
var found = false;
|
var found = false;
|
||||||
var serializer = null;
|
var serializer = null;
|
||||||
for(var i=0; i<codeNames.length; i++){
|
for (var i = 0; i < codeNames.length; i++) {
|
||||||
if(!found){
|
if (!found) {
|
||||||
found = codeNames[i].codeName==version;
|
found = codeNames[i].codeName == version;
|
||||||
if(found)
|
if (found)
|
||||||
serializer = new (codeNames[i].serializer)();
|
serializer = new (codeNames[i].serializer)();
|
||||||
} else{
|
} else {
|
||||||
var migrator = codeNames[i].migrator;
|
var migrator = codeNames[i].migrator;
|
||||||
serializer = new migrator(serializer);
|
serializer = new migrator(serializer);
|
||||||
}
|
}
|
||||||
@ -49,15 +49,16 @@ mindplot.XMLMindmapSerializerFactory.getSerializer = function(version){
|
|||||||
};
|
};
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializerFactory._codeNames =
|
mindplot.XMLMindmapSerializerFactory._codeNames =
|
||||||
[{
|
[
|
||||||
codeName:mindplot.ModelCodeName.BETA,
|
{
|
||||||
serializer: mindplot.XMLMindmapSerializer_Beta,
|
codeName:mindplot.ModelCodeName.BETA,
|
||||||
migrator:function(){//todo:error
|
serializer: mindplot.XMLMindmapSerializer_Beta,
|
||||||
}
|
migrator:function() {//todo:error
|
||||||
},
|
}
|
||||||
{
|
},
|
||||||
codeName:mindplot.ModelCodeName.PELA,
|
{
|
||||||
serializer:mindplot.XMLMindmapSerializer_Pela,
|
codeName:mindplot.ModelCodeName.PELA,
|
||||||
migrator:mindplot.Beta2PelaMigrator
|
serializer:mindplot.XMLMindmapSerializer_Pela,
|
||||||
}
|
migrator:mindplot.Beta2PelaMigrator
|
||||||
];
|
}
|
||||||
|
];
|
@ -1,319 +1,284 @@
|
|||||||
/* Copyright [2011] [wisemapping]
|
/* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
mindplot.XMLMindmapSerializer_Beta = function()
|
mindplot.XMLMindmapSerializer_Beta = new Class({
|
||||||
{
|
|
||||||
|
|
||||||
};
|
toXML : function(mindmap) {
|
||||||
|
$assert(mindmap, "Can not save a null mindmap");
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype.toXML = function(mindmap)
|
var document = core.Utils.createDocument();
|
||||||
{
|
|
||||||
$assert(mindmap, "Can not save a null mindmap");
|
|
||||||
|
|
||||||
var document = core.Utils.createDocument();
|
// Store map attributes ...
|
||||||
|
var mapElem = document.createElement("map");
|
||||||
// Store map attributes ...
|
var name = mindmap.getId();
|
||||||
var mapElem = document.createElement("map");
|
if ($defined(name)) {
|
||||||
var name = mindmap.getId();
|
mapElem.setAttribute('name', name);
|
||||||
if ($defined(name))
|
|
||||||
{
|
|
||||||
mapElem.setAttribute('name', name);
|
|
||||||
}
|
|
||||||
document.appendChild(mapElem);
|
|
||||||
|
|
||||||
// Create branches ...
|
|
||||||
var topics = mindmap.getBranches();
|
|
||||||
for (var i = 0; i < topics.length; i++)
|
|
||||||
{
|
|
||||||
var topic = topics[i];
|
|
||||||
var topicDom = this._topicToXML(document, topic);
|
|
||||||
mapElem.appendChild(topicDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
return document;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._topicToXML = function(document, topic)
|
|
||||||
{
|
|
||||||
var parentTopic = document.createElement("topic");
|
|
||||||
|
|
||||||
// Set topic attributes...
|
|
||||||
if (topic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE)
|
|
||||||
{
|
|
||||||
parentTopic.setAttribute("central", true);
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
var parent = topic.getParent();
|
|
||||||
if (parent == null || parent.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE)
|
|
||||||
{
|
|
||||||
var pos = topic.getPosition();
|
|
||||||
parentTopic.setAttribute("position", pos.x + ',' + pos.y);
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
var order = topic.getOrder();
|
|
||||||
parentTopic.setAttribute("order", order);
|
|
||||||
}
|
}
|
||||||
}
|
document.appendChild(mapElem);
|
||||||
|
|
||||||
var text = topic.getText();
|
// Create branches ...
|
||||||
if ($defined(text)) {
|
var topics = mindmap.getBranches();
|
||||||
parentTopic.setAttribute('text', text);
|
for (var i = 0; i < topics.length; i++) {
|
||||||
}
|
var topic = topics[i];
|
||||||
|
var topicDom = this._topicToXML(document, topic);
|
||||||
var shape = topic.getShapeType();
|
mapElem.appendChild(topicDom);
|
||||||
if ($defined(shape)) {
|
|
||||||
parentTopic.setAttribute('shape', shape);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(topic.areChildrenShrinked())
|
|
||||||
{
|
|
||||||
parentTopic.setAttribute('shrink',true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Font properties ...
|
|
||||||
var font = "";
|
|
||||||
|
|
||||||
var fontFamily = topic.getFontFamily();
|
|
||||||
font += (fontFamily ? fontFamily : '') + ';';
|
|
||||||
|
|
||||||
var fontSize = topic.getFontSize();
|
|
||||||
font += (fontSize ? fontSize : '') + ';';
|
|
||||||
|
|
||||||
var fontColor = topic.getFontColor();
|
|
||||||
font += (fontColor ? fontColor : '') + ';';
|
|
||||||
|
|
||||||
var fontWeight = topic.getFontWeight();
|
|
||||||
font += (fontWeight ? fontWeight : '') + ';';
|
|
||||||
|
|
||||||
var fontStyle = topic.getFontStyle();
|
|
||||||
font += (fontStyle ? fontStyle : '') + ';';
|
|
||||||
|
|
||||||
if ($defined(fontFamily) || $defined(fontSize) || $defined(fontColor)
|
|
||||||
|| $defined(fontWeight )|| $defined(fontStyle))
|
|
||||||
{
|
|
||||||
parentTopic.setAttribute('fontStyle', font);
|
|
||||||
}
|
|
||||||
|
|
||||||
var bgColor = topic.getBackgroundColor();
|
|
||||||
if ($defined(bgColor)) {
|
|
||||||
parentTopic.setAttribute('bgColor', bgColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var brColor = topic.getBorderColor();
|
|
||||||
if ($defined(brColor)) {
|
|
||||||
parentTopic.setAttribute('brColor', brColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
//ICONS
|
|
||||||
var icons = topic.getIcons();
|
|
||||||
for (var i = 0; i < icons.length; i++)
|
|
||||||
{
|
|
||||||
var icon = icons[i];
|
|
||||||
var iconDom = this._iconToXML(document, icon);
|
|
||||||
parentTopic.appendChild(iconDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
//LINKS
|
|
||||||
var links = topic.getLinks();
|
|
||||||
for (var i = 0; i < links.length; i++)
|
|
||||||
{
|
|
||||||
var link = links[i];
|
|
||||||
var linkDom = this._linkToXML(document, link);
|
|
||||||
parentTopic.appendChild(linkDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
var notes = topic.getNotes();
|
|
||||||
for (var i = 0; i < notes.length; i++)
|
|
||||||
{
|
|
||||||
var note = notes[i];
|
|
||||||
var noteDom = this._noteToXML(document, note);
|
|
||||||
parentTopic.appendChild(noteDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
//CHILDREN TOPICS
|
|
||||||
var childTopics = topic.getChildren();
|
|
||||||
for (var i = 0; i < childTopics.length; i++)
|
|
||||||
{
|
|
||||||
var childTopic = childTopics[i];
|
|
||||||
var childDom = this._topicToXML(document, childTopic);
|
|
||||||
parentTopic.appendChild(childDom);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return parentTopic;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._iconToXML = function(document, icon)
|
|
||||||
{
|
|
||||||
var iconDom = document.createElement("icon");
|
|
||||||
iconDom.setAttribute('id', icon.getIconType());
|
|
||||||
return iconDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._linkToXML = function(document, link)
|
|
||||||
{
|
|
||||||
var linkDom = document.createElement("link");
|
|
||||||
linkDom.setAttribute('url', link.getUrl());
|
|
||||||
return linkDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._noteToXML = function(document, note)
|
|
||||||
{
|
|
||||||
var noteDom = document.createElement("note");
|
|
||||||
noteDom.setAttribute('text', note.getText());
|
|
||||||
return noteDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype.loadFromDom = function(dom)
|
|
||||||
{
|
|
||||||
$assert(dom, "Dom can not be null");
|
|
||||||
var rootElem = dom.documentElement;
|
|
||||||
|
|
||||||
// Is a wisemap?.
|
|
||||||
$assert(rootElem.tagName == mindplot.XMLMindmapSerializer_Beta.MAP_ROOT_NODE, "This seem not to be a map document.");
|
|
||||||
|
|
||||||
// Start the loading process ...
|
|
||||||
var mindmap = new mindplot.Mindmap();
|
|
||||||
|
|
||||||
var children = rootElem.childNodes;
|
|
||||||
for (var i = 0; i < children.length; i++)
|
|
||||||
{
|
|
||||||
var child = children[i];
|
|
||||||
if (child.nodeType == 1)
|
|
||||||
{
|
|
||||||
var topic = this._deserializeNode(child, mindmap);
|
|
||||||
mindmap.addBranch(topic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return mindmap;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._deserializeNode = function(domElem, mindmap)
|
|
||||||
{
|
|
||||||
var type = (domElem.getAttribute('central') != null) ? mindplot.NodeModel.CENTRAL_TOPIC_TYPE : mindplot.NodeModel.MAIN_TOPIC_TYPE;
|
|
||||||
var topic = mindmap.createNode(type);
|
|
||||||
|
|
||||||
// Load attributes...
|
|
||||||
var text = domElem.getAttribute('text');
|
|
||||||
if ($defined(text)) {
|
|
||||||
topic.setText(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
var order = domElem.getAttribute('order');
|
|
||||||
if ($defined(order)) {
|
|
||||||
topic.setOrder(order);
|
|
||||||
}
|
|
||||||
|
|
||||||
var shape = domElem.getAttribute('shape');
|
|
||||||
if ($defined(shape)) {
|
|
||||||
topic.setShapeType(shape);
|
|
||||||
}
|
|
||||||
|
|
||||||
var isShrink = domElem.getAttribute('shrink');
|
|
||||||
if($defined(isShrink))
|
|
||||||
{
|
|
||||||
topic.setChildrenShrinked(isShrink);
|
|
||||||
}
|
|
||||||
|
|
||||||
var fontStyle = domElem.getAttribute('fontStyle');
|
|
||||||
if ($defined(fontStyle)) {
|
|
||||||
var font = fontStyle.split(';');
|
|
||||||
|
|
||||||
if (font[0])
|
|
||||||
{
|
|
||||||
topic.setFontFamily(font[0]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (font[1])
|
return document;
|
||||||
{
|
},
|
||||||
topic.setFontSize(font[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font[2])
|
_topicToXML : function(document, topic) {
|
||||||
{
|
var parentTopic = document.createElement("topic");
|
||||||
topic.setFontColor(font[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font[3])
|
// Set topic attributes...
|
||||||
{
|
if (topic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE) {
|
||||||
topic.setFontWeight(font[3]);
|
parentTopic.setAttribute("central", true);
|
||||||
}
|
} else {
|
||||||
|
var parent = topic.getParent();
|
||||||
if (font[4])
|
if (parent == null || parent.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE) {
|
||||||
{
|
var pos = topic.getPosition();
|
||||||
topic.setFontStyle(font[4]);
|
parentTopic.setAttribute("position", pos.x + ',' + pos.y);
|
||||||
}
|
} else {
|
||||||
}
|
var order = topic.getOrder();
|
||||||
|
parentTopic.setAttribute("order", order);
|
||||||
var bgColor = domElem.getAttribute('bgColor');
|
|
||||||
if ($defined(bgColor)) {
|
|
||||||
topic.setBackgroundColor(bgColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var borderColor = domElem.getAttribute('brColor');
|
|
||||||
if ($defined(borderColor)) {
|
|
||||||
topic.setBorderColor(borderColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var position = domElem.getAttribute('position');
|
|
||||||
if ($defined(position)) {
|
|
||||||
var pos = position.split(',');
|
|
||||||
topic.setPosition(pos[0], pos[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Creating icons and children nodes
|
|
||||||
var children = domElem.childNodes;
|
|
||||||
for (var i = 0; i < children.length; i++)
|
|
||||||
{
|
|
||||||
var child = children[i];
|
|
||||||
if (child.nodeType == 1)
|
|
||||||
{
|
|
||||||
$assert(child.tagName == "topic" || child.tagName == "icon" || child.tagName == "link" || child.tagName == "note", 'Illegal node type:' + child.tagName);
|
|
||||||
if (child.tagName == "topic") {
|
|
||||||
var childTopic = this._deserializeNode(child, mindmap);
|
|
||||||
childTopic.connectTo(topic);
|
|
||||||
} else if(child.tagName == "icon") {
|
|
||||||
var icon = this._deserializeIcon(child, topic);
|
|
||||||
topic.addIcon(icon);
|
|
||||||
} else if(child.tagName == "link") {
|
|
||||||
var link = this._deserializeLink(child, topic);
|
|
||||||
topic.addLink(link);
|
|
||||||
} else if(child.tagName == "note") {
|
|
||||||
var note = this._deserializeNote(child, topic);
|
|
||||||
topic.addNote(note);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
;
|
|
||||||
return topic;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._deserializeIcon = function(domElem, topic)
|
var text = topic.getText();
|
||||||
{
|
if ($defined(text)) {
|
||||||
return topic.createIcon(domElem.getAttribute("id"));
|
parentTopic.setAttribute('text', text);
|
||||||
};
|
}
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._deserializeLink = function(domElem, topic)
|
var shape = topic.getShapeType();
|
||||||
{
|
if ($defined(shape)) {
|
||||||
return topic.createLink(domElem.getAttribute("url"));
|
parentTopic.setAttribute('shape', shape);
|
||||||
};
|
}
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.prototype._deserializeNote = function(domElem, topic)
|
if (topic.areChildrenShrinked()) {
|
||||||
{
|
parentTopic.setAttribute('shrink', true);
|
||||||
return topic.createNote(domElem.getAttribute("text"));
|
}
|
||||||
};
|
|
||||||
|
// Font properties ...
|
||||||
|
var font = "";
|
||||||
|
|
||||||
|
var fontFamily = topic.getFontFamily();
|
||||||
|
font += (fontFamily ? fontFamily : '') + ';';
|
||||||
|
|
||||||
|
var fontSize = topic.getFontSize();
|
||||||
|
font += (fontSize ? fontSize : '') + ';';
|
||||||
|
|
||||||
|
var fontColor = topic.getFontColor();
|
||||||
|
font += (fontColor ? fontColor : '') + ';';
|
||||||
|
|
||||||
|
var fontWeight = topic.getFontWeight();
|
||||||
|
font += (fontWeight ? fontWeight : '') + ';';
|
||||||
|
|
||||||
|
var fontStyle = topic.getFontStyle();
|
||||||
|
font += (fontStyle ? fontStyle : '') + ';';
|
||||||
|
|
||||||
|
if ($defined(fontFamily) || $defined(fontSize) || $defined(fontColor)
|
||||||
|
|| $defined(fontWeight) || $defined(fontStyle)) {
|
||||||
|
parentTopic.setAttribute('fontStyle', font);
|
||||||
|
}
|
||||||
|
|
||||||
|
var bgColor = topic.getBackgroundColor();
|
||||||
|
if ($defined(bgColor)) {
|
||||||
|
parentTopic.setAttribute('bgColor', bgColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
var brColor = topic.getBorderColor();
|
||||||
|
if ($defined(brColor)) {
|
||||||
|
parentTopic.setAttribute('brColor', brColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ICONS
|
||||||
|
var icons = topic.getIcons();
|
||||||
|
for (var i = 0; i < icons.length; i++) {
|
||||||
|
var icon = icons[i];
|
||||||
|
var iconDom = this._iconToXML(document, icon);
|
||||||
|
parentTopic.appendChild(iconDom);
|
||||||
|
}
|
||||||
|
|
||||||
|
//LINKS
|
||||||
|
var links = topic.getLinks();
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
var link = links[i];
|
||||||
|
var linkDom = this._linkToXML(document, link);
|
||||||
|
parentTopic.appendChild(linkDom);
|
||||||
|
}
|
||||||
|
|
||||||
|
var notes = topic.getNotes();
|
||||||
|
for (var i = 0; i < notes.length; i++) {
|
||||||
|
var note = notes[i];
|
||||||
|
var noteDom = this._noteToXML(document, note);
|
||||||
|
parentTopic.appendChild(noteDom);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CHILDREN TOPICS
|
||||||
|
var childTopics = topic.getChildren();
|
||||||
|
for (var i = 0; i < childTopics.length; i++) {
|
||||||
|
var childTopic = childTopics[i];
|
||||||
|
var childDom = this._topicToXML(document, childTopic);
|
||||||
|
parentTopic.appendChild(childDom);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return parentTopic;
|
||||||
|
},
|
||||||
|
|
||||||
|
_iconToXML : function(document, icon) {
|
||||||
|
var iconDom = document.createElement("icon");
|
||||||
|
iconDom.setAttribute('id', icon.getIconType());
|
||||||
|
return iconDom;
|
||||||
|
},
|
||||||
|
|
||||||
|
_linkToXML : function(document, link) {
|
||||||
|
var linkDom = document.createElement("link");
|
||||||
|
linkDom.setAttribute('url', link.getUrl());
|
||||||
|
return linkDom;
|
||||||
|
},
|
||||||
|
|
||||||
|
_noteToXML : function(document, note) {
|
||||||
|
var noteDom = document.createElement("note");
|
||||||
|
noteDom.setAttribute('text', note.getText());
|
||||||
|
return noteDom;
|
||||||
|
},
|
||||||
|
|
||||||
|
loadFromDom : function(dom) {
|
||||||
|
$assert(dom, "Dom can not be null");
|
||||||
|
var rootElem = dom.documentElement;
|
||||||
|
|
||||||
|
// Is a wisemap?.
|
||||||
|
$assert(rootElem.tagName == mindplot.XMLMindmapSerializer_Beta.MAP_ROOT_NODE, "This seem not to be a map document.");
|
||||||
|
|
||||||
|
// Start the loading process ...
|
||||||
|
var mindmap = new mindplot.Mindmap();
|
||||||
|
|
||||||
|
var children = rootElem.childNodes;
|
||||||
|
for (var i = 0; i < children.length; i++) {
|
||||||
|
var child = children[i];
|
||||||
|
if (child.nodeType == 1) {
|
||||||
|
var topic = this._deserializeNode(child, mindmap);
|
||||||
|
mindmap.addBranch(topic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mindmap;
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeNode : function(domElem, mindmap) {
|
||||||
|
var type = (domElem.getAttribute('central') != null) ? mindplot.NodeModel.CENTRAL_TOPIC_TYPE : mindplot.NodeModel.MAIN_TOPIC_TYPE;
|
||||||
|
var topic = mindmap.createNode(type);
|
||||||
|
|
||||||
|
// Load attributes...
|
||||||
|
var text = domElem.getAttribute('text');
|
||||||
|
if ($defined(text)) {
|
||||||
|
topic.setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
var order = domElem.getAttribute('order');
|
||||||
|
if ($defined(order)) {
|
||||||
|
topic.setOrder(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
var shape = domElem.getAttribute('shape');
|
||||||
|
if ($defined(shape)) {
|
||||||
|
topic.setShapeType(shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
var isShrink = domElem.getAttribute('shrink');
|
||||||
|
if ($defined(isShrink)) {
|
||||||
|
topic.setChildrenShrinked(isShrink);
|
||||||
|
}
|
||||||
|
|
||||||
|
var fontStyle = domElem.getAttribute('fontStyle');
|
||||||
|
if ($defined(fontStyle)) {
|
||||||
|
var font = fontStyle.split(';');
|
||||||
|
|
||||||
|
if (font[0]) {
|
||||||
|
topic.setFontFamily(font[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[1]) {
|
||||||
|
topic.setFontSize(font[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[2]) {
|
||||||
|
topic.setFontColor(font[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[3]) {
|
||||||
|
topic.setFontWeight(font[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[4]) {
|
||||||
|
topic.setFontStyle(font[4]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var bgColor = domElem.getAttribute('bgColor');
|
||||||
|
if ($defined(bgColor)) {
|
||||||
|
topic.setBackgroundColor(bgColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
var borderColor = domElem.getAttribute('brColor');
|
||||||
|
if ($defined(borderColor)) {
|
||||||
|
topic.setBorderColor(borderColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
var position = domElem.getAttribute('position');
|
||||||
|
if ($defined(position)) {
|
||||||
|
var pos = position.split(',');
|
||||||
|
topic.setPosition(pos[0], pos[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Creating icons and children nodes
|
||||||
|
var children = domElem.childNodes;
|
||||||
|
for (var i = 0; i < children.length; i++) {
|
||||||
|
var child = children[i];
|
||||||
|
if (child.nodeType == 1) {
|
||||||
|
$assert(child.tagName == "topic" || child.tagName == "icon" || child.tagName == "link" || child.tagName == "note", 'Illegal node type:' + child.tagName);
|
||||||
|
if (child.tagName == "topic") {
|
||||||
|
var childTopic = this._deserializeNode(child, mindmap);
|
||||||
|
childTopic.connectTo(topic);
|
||||||
|
} else if (child.tagName == "icon") {
|
||||||
|
var icon = this._deserializeIcon(child, topic);
|
||||||
|
topic.addIcon(icon);
|
||||||
|
} else if (child.tagName == "link") {
|
||||||
|
var link = this._deserializeLink(child, topic);
|
||||||
|
topic.addLink(link);
|
||||||
|
} else if (child.tagName == "note") {
|
||||||
|
var note = this._deserializeNote(child, topic);
|
||||||
|
topic.addNote(note);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return topic;
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeIcon : function(domElem, topic) {
|
||||||
|
return topic.createIcon(domElem.getAttribute("id"));
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeLink : function(domElem, topic) {
|
||||||
|
return topic.createLink(domElem.getAttribute("url"));
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeNote : function(domElem, topic) {
|
||||||
|
return topic.createNote(domElem.getAttribute("text"));
|
||||||
|
}});
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Beta.MAP_ROOT_NODE = 'map';
|
mindplot.XMLMindmapSerializer_Beta.MAP_ROOT_NODE = 'map';
|
@ -1,81 +1,71 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela = function()
|
mindplot.XMLMindmapSerializer_Pela = new Class({
|
||||||
{
|
|
||||||
|
|
||||||
};
|
toXML : function(mindmap) {
|
||||||
|
$assert(mindmap, "Can not save a null mindmap");
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype.toXML = function(mindmap)
|
var document = core.Utils.createDocument();
|
||||||
{
|
|
||||||
$assert(mindmap, "Can not save a null mindmap");
|
|
||||||
|
|
||||||
var document = core.Utils.createDocument();
|
// Store map attributes ...
|
||||||
|
var mapElem = document.createElement("map");
|
||||||
|
var name = mindmap.getId();
|
||||||
|
if ($defined(name)) {
|
||||||
|
mapElem.setAttribute('name', name);
|
||||||
|
}
|
||||||
|
var version = mindmap.getVersion();
|
||||||
|
if ($defined(version)) {
|
||||||
|
mapElem.setAttribute('version', version);
|
||||||
|
}
|
||||||
|
|
||||||
// Store map attributes ...
|
document.appendChild(mapElem);
|
||||||
var mapElem = document.createElement("map");
|
|
||||||
var name = mindmap.getId();
|
|
||||||
if ($defined(name))
|
|
||||||
{
|
|
||||||
mapElem.setAttribute('name', name);
|
|
||||||
}
|
|
||||||
var version = mindmap.getVersion();
|
|
||||||
if ($defined(version))
|
|
||||||
{
|
|
||||||
mapElem.setAttribute('version', version);
|
|
||||||
}
|
|
||||||
|
|
||||||
document.appendChild(mapElem);
|
// Create branches ...
|
||||||
|
var topics = mindmap.getBranches();
|
||||||
|
for (var i = 0; i < topics.length; i++) {
|
||||||
|
var topic = topics[i];
|
||||||
|
var topicDom = this._topicToXML(document, topic);
|
||||||
|
mapElem.appendChild(topicDom);
|
||||||
|
}
|
||||||
|
|
||||||
// Create branches ...
|
// Create Relationships
|
||||||
var topics = mindmap.getBranches();
|
var relationships = mindmap.getRelationships();
|
||||||
for (var i = 0; i < topics.length; i++)
|
if (relationships.length > 0) {
|
||||||
{
|
|
||||||
var topic = topics[i];
|
|
||||||
var topicDom = this._topicToXML(document, topic);
|
|
||||||
mapElem.appendChild(topicDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create Relationships
|
|
||||||
var relationships = mindmap.getRelationships();
|
|
||||||
if(relationships.length>0){
|
|
||||||
// var relationshipDom=document.createElement("relationships");
|
// var relationshipDom=document.createElement("relationships");
|
||||||
// mapElem.appendChild(relationshipDom);
|
// mapElem.appendChild(relationshipDom);
|
||||||
for (var j = 0; j<relationships.length; j++){
|
for (var j = 0; j < relationships.length; j++) {
|
||||||
var relationDom = this._relationshipToXML(document, relationships[j]);
|
var relationDom = this._relationshipToXML(document, relationships[j]);
|
||||||
mapElem.appendChild(relationDom);
|
mapElem.appendChild(relationDom);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return document;
|
return document;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._topicToXML = function(document, topic)
|
_topicToXML : function(document, topic) {
|
||||||
{
|
var parentTopic = document.createElement("topic");
|
||||||
var parentTopic = document.createElement("topic");
|
|
||||||
|
|
||||||
// Set topic attributes...
|
// Set topic attributes...
|
||||||
if (topic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE)
|
if (topic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE) {
|
||||||
{
|
parentTopic.setAttribute("central", true);
|
||||||
parentTopic.setAttribute("central", true);
|
} else {
|
||||||
} else
|
var parent = topic.getParent();
|
||||||
{
|
|
||||||
var parent = topic.getParent();
|
|
||||||
// if (parent == null || parent.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE)
|
// if (parent == null || parent.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE)
|
||||||
// {
|
// {
|
||||||
var pos = topic.getPosition();
|
var pos = topic.getPosition();
|
||||||
@ -85,330 +75,306 @@ mindplot.XMLMindmapSerializer_Pela.prototype._topicToXML = function(document, to
|
|||||||
var order = topic.getOrder();
|
var order = topic.getOrder();
|
||||||
parentTopic.setAttribute("order", order);
|
parentTopic.setAttribute("order", order);
|
||||||
// }
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
var text = topic.getText();
|
|
||||||
if ($defined(text)) {
|
|
||||||
parentTopic.setAttribute('text', text);
|
|
||||||
}
|
|
||||||
|
|
||||||
var shape = topic.getShapeType();
|
|
||||||
if ($defined(shape)) {
|
|
||||||
parentTopic.setAttribute('shape', shape);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(topic.areChildrenShrinked())
|
|
||||||
{
|
|
||||||
parentTopic.setAttribute('shrink',true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Font properties ...
|
|
||||||
var id = topic.getId();
|
|
||||||
parentTopic.setAttribute('id',id);
|
|
||||||
|
|
||||||
var font = "";
|
|
||||||
|
|
||||||
var fontFamily = topic.getFontFamily();
|
|
||||||
font += (fontFamily ? fontFamily : '') + ';';
|
|
||||||
|
|
||||||
var fontSize = topic.getFontSize();
|
|
||||||
font += (fontSize ? fontSize : '') + ';';
|
|
||||||
|
|
||||||
var fontColor = topic.getFontColor();
|
|
||||||
font += (fontColor ? fontColor : '') + ';';
|
|
||||||
|
|
||||||
var fontWeight = topic.getFontWeight();
|
|
||||||
font += (fontWeight ? fontWeight : '') + ';';
|
|
||||||
|
|
||||||
var fontStyle = topic.getFontStyle();
|
|
||||||
font += (fontStyle ? fontStyle : '') + ';';
|
|
||||||
|
|
||||||
if ($defined(fontFamily) || $defined(fontSize) || $defined(fontColor)
|
|
||||||
|| $defined(fontWeight) || $defined(fontStyle))
|
|
||||||
{
|
|
||||||
parentTopic.setAttribute('fontStyle', font);
|
|
||||||
}
|
|
||||||
|
|
||||||
var bgColor = topic.getBackgroundColor();
|
|
||||||
if ($defined(bgColor)) {
|
|
||||||
parentTopic.setAttribute('bgColor', bgColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var brColor = topic.getBorderColor();
|
|
||||||
if ($defined(brColor)) {
|
|
||||||
parentTopic.setAttribute('brColor', brColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
//ICONS
|
|
||||||
var icons = topic.getIcons();
|
|
||||||
for (var i = 0; i < icons.length; i++)
|
|
||||||
{
|
|
||||||
var icon = icons[i];
|
|
||||||
var iconDom = this._iconToXML(document, icon);
|
|
||||||
parentTopic.appendChild(iconDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
//LINKS
|
|
||||||
var links = topic.getLinks();
|
|
||||||
for (var i = 0; i < links.length; i++)
|
|
||||||
{
|
|
||||||
var link = links[i];
|
|
||||||
var linkDom = this._linkToXML(document, link);
|
|
||||||
parentTopic.appendChild(linkDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
var notes = topic.getNotes();
|
|
||||||
for (var i = 0; i < notes.length; i++)
|
|
||||||
{
|
|
||||||
var note = notes[i];
|
|
||||||
var noteDom = this._noteToXML(document, note);
|
|
||||||
parentTopic.appendChild(noteDom);
|
|
||||||
}
|
|
||||||
|
|
||||||
//CHILDREN TOPICS
|
|
||||||
var childTopics = topic.getChildren();
|
|
||||||
for (var i = 0; i < childTopics.length; i++)
|
|
||||||
{
|
|
||||||
var childTopic = childTopics[i];
|
|
||||||
var childDom = this._topicToXML(document, childTopic);
|
|
||||||
parentTopic.appendChild(childDom);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return parentTopic;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._iconToXML = function(document, icon)
|
|
||||||
{
|
|
||||||
var iconDom = document.createElement("icon");
|
|
||||||
iconDom.setAttribute('id', icon.getIconType());
|
|
||||||
return iconDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._linkToXML = function(document, link)
|
|
||||||
{
|
|
||||||
var linkDom = document.createElement("link");
|
|
||||||
linkDom.setAttribute('url', link.getUrl());
|
|
||||||
return linkDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._noteToXML = function(document, note)
|
|
||||||
{
|
|
||||||
var noteDom = document.createElement("note");
|
|
||||||
noteDom.setAttribute('text', note.getText());
|
|
||||||
return noteDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._relationshipToXML = function(document,relationship){
|
|
||||||
var relationDom = document.createElement("relationship");
|
|
||||||
relationDom.setAttribute("srcTopicId",relationship.getFromNode());
|
|
||||||
relationDom.setAttribute("destTopicId",relationship.getToNode());
|
|
||||||
var lineType = relationship.getLineType();
|
|
||||||
relationDom.setAttribute("lineType",lineType);
|
|
||||||
if(lineType==mindplot.ConnectionLine.CURVED || lineType==mindplot.ConnectionLine.SIMPLE_CURVED){
|
|
||||||
if($defined(relationship.getSrcCtrlPoint())){
|
|
||||||
var srcPoint = relationship.getSrcCtrlPoint();
|
|
||||||
relationDom.setAttribute("srcCtrlPoint",srcPoint.x+","+srcPoint.y);
|
|
||||||
}
|
}
|
||||||
if($defined(relationship.getDestCtrlPoint())){
|
|
||||||
var destPoint = relationship.getDestCtrlPoint();
|
var text = topic.getText();
|
||||||
relationDom.setAttribute("destCtrlPoint",destPoint.x+","+destPoint.y);
|
if ($defined(text)) {
|
||||||
|
parentTopic.setAttribute('text', text);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
relationDom.setAttribute("endArrow",relationship.getEndArrow());
|
|
||||||
relationDom.setAttribute("startArrow",relationship.getStartArrow());
|
|
||||||
return relationDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype.loadFromDom = function(dom)
|
var shape = topic.getShapeType();
|
||||||
{
|
if ($defined(shape)) {
|
||||||
$assert(dom, "Dom can not be null");
|
parentTopic.setAttribute('shape', shape);
|
||||||
var rootElem = dom.documentElement;
|
}
|
||||||
|
|
||||||
// Is a wisemap?.
|
if (topic.areChildrenShrinked()) {
|
||||||
$assert(rootElem.tagName == mindplot.XMLMindmapSerializer_Pela.MAP_ROOT_NODE, "This seem not to be a map document.");
|
parentTopic.setAttribute('shrink', true);
|
||||||
|
}
|
||||||
|
|
||||||
this._idsMap = new Hash();
|
// Font properties ...
|
||||||
// Start the loading process ...
|
var id = topic.getId();
|
||||||
var mindmap = new mindplot.Mindmap();
|
parentTopic.setAttribute('id', id);
|
||||||
|
|
||||||
var version = rootElem.getAttribute("version");
|
var font = "";
|
||||||
mindmap.setVersion(version);
|
|
||||||
|
|
||||||
var children = rootElem.childNodes;
|
var fontFamily = topic.getFontFamily();
|
||||||
for (var i = 0; i < children.length; i++)
|
font += (fontFamily ? fontFamily : '') + ';';
|
||||||
{
|
|
||||||
var child = children[i];
|
var fontSize = topic.getFontSize();
|
||||||
if (child.nodeType == 1)
|
font += (fontSize ? fontSize : '') + ';';
|
||||||
{
|
|
||||||
switch(child.tagName){
|
var fontColor = topic.getFontColor();
|
||||||
case "topic":
|
font += (fontColor ? fontColor : '') + ';';
|
||||||
var topic = this._deserializeNode(child, mindmap);
|
|
||||||
mindmap.addBranch(topic);
|
var fontWeight = topic.getFontWeight();
|
||||||
break;
|
font += (fontWeight ? fontWeight : '') + ';';
|
||||||
case "relationship":
|
|
||||||
var relationship = this._deserializeRelationship(child,mindmap);
|
var fontStyle = topic.getFontStyle();
|
||||||
if(relationship!=null)
|
font += (fontStyle ? fontStyle : '') + ';';
|
||||||
mindmap.addRelationship(relationship);
|
|
||||||
break;
|
if ($defined(fontFamily) || $defined(fontSize) || $defined(fontColor)
|
||||||
|
|| $defined(fontWeight) || $defined(fontStyle)) {
|
||||||
|
parentTopic.setAttribute('fontStyle', font);
|
||||||
|
}
|
||||||
|
|
||||||
|
var bgColor = topic.getBackgroundColor();
|
||||||
|
if ($defined(bgColor)) {
|
||||||
|
parentTopic.setAttribute('bgColor', bgColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
var brColor = topic.getBorderColor();
|
||||||
|
if ($defined(brColor)) {
|
||||||
|
parentTopic.setAttribute('brColor', brColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
//ICONS
|
||||||
|
var icons = topic.getIcons();
|
||||||
|
for (var i = 0; i < icons.length; i++) {
|
||||||
|
var icon = icons[i];
|
||||||
|
var iconDom = this._iconToXML(document, icon);
|
||||||
|
parentTopic.appendChild(iconDom);
|
||||||
|
}
|
||||||
|
|
||||||
|
//LINKS
|
||||||
|
var links = topic.getLinks();
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
var link = links[i];
|
||||||
|
var linkDom = this._linkToXML(document, link);
|
||||||
|
parentTopic.appendChild(linkDom);
|
||||||
|
}
|
||||||
|
|
||||||
|
var notes = topic.getNotes();
|
||||||
|
for (var i = 0; i < notes.length; i++) {
|
||||||
|
var note = notes[i];
|
||||||
|
var noteDom = this._noteToXML(document, note);
|
||||||
|
parentTopic.appendChild(noteDom);
|
||||||
|
}
|
||||||
|
|
||||||
|
//CHILDREN TOPICS
|
||||||
|
var childTopics = topic.getChildren();
|
||||||
|
for (var i = 0; i < childTopics.length; i++) {
|
||||||
|
var childTopic = childTopics[i];
|
||||||
|
var childDom = this._topicToXML(document, childTopic);
|
||||||
|
parentTopic.appendChild(childDom);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return parentTopic;
|
||||||
|
},
|
||||||
|
|
||||||
|
_iconToXML : function(document, icon) {
|
||||||
|
var iconDom = document.createElement("icon");
|
||||||
|
iconDom.setAttribute('id', icon.getIconType());
|
||||||
|
return iconDom;
|
||||||
|
},
|
||||||
|
|
||||||
|
_linkToXML : function(document, link) {
|
||||||
|
var linkDom = document.createElement("link");
|
||||||
|
linkDom.setAttribute('url', link.getUrl());
|
||||||
|
return linkDom;
|
||||||
|
},
|
||||||
|
|
||||||
|
_noteToXML : function(document, note) {
|
||||||
|
var noteDom = document.createElement("note");
|
||||||
|
noteDom.setAttribute('text', note.getText());
|
||||||
|
return noteDom;
|
||||||
|
},
|
||||||
|
|
||||||
|
_relationshipToXML : function(document, relationship) {
|
||||||
|
var relationDom = document.createElement("relationship");
|
||||||
|
relationDom.setAttribute("srcTopicId", relationship.getFromNode());
|
||||||
|
relationDom.setAttribute("destTopicId", relationship.getToNode());
|
||||||
|
var lineType = relationship.getLineType();
|
||||||
|
relationDom.setAttribute("lineType", lineType);
|
||||||
|
if (lineType == mindplot.ConnectionLine.CURVED || lineType == mindplot.ConnectionLine.SIMPLE_CURVED) {
|
||||||
|
if ($defined(relationship.getSrcCtrlPoint())) {
|
||||||
|
var srcPoint = relationship.getSrcCtrlPoint();
|
||||||
|
relationDom.setAttribute("srcCtrlPoint", srcPoint.x + "," + srcPoint.y);
|
||||||
|
}
|
||||||
|
if ($defined(relationship.getDestCtrlPoint())) {
|
||||||
|
var destPoint = relationship.getDestCtrlPoint();
|
||||||
|
relationDom.setAttribute("destCtrlPoint", destPoint.x + "," + destPoint.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
relationDom.setAttribute("endArrow", relationship.getEndArrow());
|
||||||
this._idsMap=null;
|
relationDom.setAttribute("startArrow", relationship.getStartArrow());
|
||||||
return mindmap;
|
return relationDom;
|
||||||
};
|
},
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._deserializeNode = function(domElem, mindmap)
|
loadFromDom : function(dom) {
|
||||||
{
|
$assert(dom, "Dom can not be null");
|
||||||
var type = (domElem.getAttribute('central') != null) ? mindplot.NodeModel.CENTRAL_TOPIC_TYPE : mindplot.NodeModel.MAIN_TOPIC_TYPE;
|
var rootElem = dom.documentElement;
|
||||||
// Load attributes...
|
|
||||||
var id = domElem.getAttribute('id');
|
|
||||||
if($defined(id)) {
|
|
||||||
id=parseInt(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this._idsMap.has(id)){
|
// Is a wisemap?.
|
||||||
id=null;
|
$assert(rootElem.tagName == mindplot.XMLMindmapSerializer_Pela.MAP_ROOT_NODE, "This seem not to be a map document.");
|
||||||
}else{
|
|
||||||
this._idsMap.set(id,domElem);
|
|
||||||
}
|
|
||||||
|
|
||||||
var topic = mindmap.createNode(type, id);
|
this._idsMap = new Hash();
|
||||||
|
// Start the loading process ...
|
||||||
|
var mindmap = new mindplot.Mindmap();
|
||||||
|
|
||||||
var text = domElem.getAttribute('text');
|
var version = rootElem.getAttribute("version");
|
||||||
if ($defined(text)) {
|
mindmap.setVersion(version);
|
||||||
topic.setText(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
var order = domElem.getAttribute('order');
|
var children = rootElem.childNodes;
|
||||||
if ($defined(order)) {
|
for (var i = 0; i < children.length; i++) {
|
||||||
topic.setOrder(parseInt(order));
|
var child = children[i];
|
||||||
}
|
if (child.nodeType == 1) {
|
||||||
|
switch (child.tagName) {
|
||||||
var shape = domElem.getAttribute('shape');
|
case "topic":
|
||||||
if ($defined(shape)) {
|
var topic = this._deserializeNode(child, mindmap);
|
||||||
topic.setShapeType(shape);
|
mindmap.addBranch(topic);
|
||||||
}
|
break;
|
||||||
|
case "relationship":
|
||||||
var isShrink = domElem.getAttribute('shrink');
|
var relationship = this._deserializeRelationship(child, mindmap);
|
||||||
if($defined(isShrink))
|
if (relationship != null)
|
||||||
{
|
mindmap.addRelationship(relationship);
|
||||||
topic.setChildrenShrinked(isShrink);
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var fontStyle = domElem.getAttribute('fontStyle');
|
|
||||||
if ($defined(fontStyle)) {
|
|
||||||
var font = fontStyle.split(';');
|
|
||||||
|
|
||||||
if (font[0])
|
|
||||||
{
|
|
||||||
topic.setFontFamily(font[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font[1])
|
|
||||||
{
|
|
||||||
topic.setFontSize(font[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font[2])
|
|
||||||
{
|
|
||||||
topic.setFontColor(font[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font[3])
|
|
||||||
{
|
|
||||||
topic.setFontWeight(font[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font[4])
|
|
||||||
{
|
|
||||||
topic.setFontStyle(font[4]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var bgColor = domElem.getAttribute('bgColor');
|
|
||||||
if ($defined(bgColor)) {
|
|
||||||
topic.setBackgroundColor(bgColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var borderColor = domElem.getAttribute('brColor');
|
|
||||||
if ($defined(borderColor)) {
|
|
||||||
topic.setBorderColor(borderColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var position = domElem.getAttribute('position');
|
|
||||||
if ($defined(position)) {
|
|
||||||
var pos = position.split(',');
|
|
||||||
topic.setPosition(pos[0], pos[1]);
|
|
||||||
topic.setFinalPosition(pos[0], pos[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Creating icons and children nodes
|
|
||||||
var children = domElem.childNodes;
|
|
||||||
for (var i = 0; i < children.length; i++)
|
|
||||||
{
|
|
||||||
var child = children[i];
|
|
||||||
if (child.nodeType == 1)
|
|
||||||
{
|
|
||||||
$assert(child.tagName == "topic" || child.tagName == "icon" || child.tagName == "link" || child.tagName == "note", 'Illegal node type:' + child.tagName);
|
|
||||||
if (child.tagName == "topic") {
|
|
||||||
var childTopic = this._deserializeNode(child, mindmap);
|
|
||||||
childTopic.connectTo(topic);
|
|
||||||
} else if(child.tagName == "icon") {
|
|
||||||
var icon = this._deserializeIcon(child, topic);
|
|
||||||
topic.addIcon(icon);
|
|
||||||
} else if(child.tagName == "link") {
|
|
||||||
var link = this._deserializeLink(child, topic);
|
|
||||||
topic.addLink(link);
|
|
||||||
} else if(child.tagName == "note") {
|
|
||||||
var note = this._deserializeNote(child, topic);
|
|
||||||
topic.addNote(note);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
this._idsMap = null;
|
||||||
;
|
return mindmap;
|
||||||
return topic;
|
},
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._deserializeIcon = function(domElem, topic)
|
_deserializeNode : function(domElem, mindmap) {
|
||||||
{
|
var type = (domElem.getAttribute('central') != null) ? mindplot.NodeModel.CENTRAL_TOPIC_TYPE : mindplot.NodeModel.MAIN_TOPIC_TYPE;
|
||||||
return topic.createIcon(domElem.getAttribute("id"));
|
// Load attributes...
|
||||||
};
|
var id = domElem.getAttribute('id');
|
||||||
|
if ($defined(id)) {
|
||||||
|
id = parseInt(id);
|
||||||
|
}
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._deserializeLink = function(domElem, topic)
|
if (this._idsMap.has(id)) {
|
||||||
{
|
id = null;
|
||||||
return topic.createLink(domElem.getAttribute("url"));
|
} else {
|
||||||
};
|
this._idsMap.set(id, domElem);
|
||||||
|
}
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._deserializeNote = function(domElem, topic)
|
var topic = mindmap.createNode(type, id);
|
||||||
{
|
|
||||||
return topic.createNote(domElem.getAttribute("text"));
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.prototype._deserializeRelationship = function(domElement, mindmap)
|
var text = domElem.getAttribute('text');
|
||||||
{
|
if ($defined(text)) {
|
||||||
var srcId = domElement.getAttribute("srcTopicId");
|
topic.setText(text);
|
||||||
var destId = domElement.getAttribute("destTopicId");
|
}
|
||||||
var lineType = domElement.getAttribute("lineType");
|
|
||||||
var srcCtrlPoint = domElement.getAttribute("srcCtrlPoint");
|
var order = domElem.getAttribute('order');
|
||||||
var destCtrlPoint = domElement.getAttribute("destCtrlPoint");
|
if ($defined(order)) {
|
||||||
var endArrow = domElement.getAttribute("endArrow");
|
topic.setOrder(parseInt(order));
|
||||||
var startArrow = domElement.getAttribute("startArrow");
|
}
|
||||||
//If for some reason a relationship lines has source and dest nodes the same, don't import it.
|
|
||||||
if(srcId==destId){
|
var shape = domElem.getAttribute('shape');
|
||||||
return null;
|
if ($defined(shape)) {
|
||||||
|
topic.setShapeType(shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
var isShrink = domElem.getAttribute('shrink');
|
||||||
|
if ($defined(isShrink)) {
|
||||||
|
topic.setChildrenShrinked(isShrink);
|
||||||
|
}
|
||||||
|
|
||||||
|
var fontStyle = domElem.getAttribute('fontStyle');
|
||||||
|
if ($defined(fontStyle)) {
|
||||||
|
var font = fontStyle.split(';');
|
||||||
|
|
||||||
|
if (font[0]) {
|
||||||
|
topic.setFontFamily(font[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[1]) {
|
||||||
|
topic.setFontSize(font[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[2]) {
|
||||||
|
topic.setFontColor(font[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[3]) {
|
||||||
|
topic.setFontWeight(font[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font[4]) {
|
||||||
|
topic.setFontStyle(font[4]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var bgColor = domElem.getAttribute('bgColor');
|
||||||
|
if ($defined(bgColor)) {
|
||||||
|
topic.setBackgroundColor(bgColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
var borderColor = domElem.getAttribute('brColor');
|
||||||
|
if ($defined(borderColor)) {
|
||||||
|
topic.setBorderColor(borderColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
var position = domElem.getAttribute('position');
|
||||||
|
if ($defined(position)) {
|
||||||
|
var pos = position.split(',');
|
||||||
|
topic.setPosition(pos[0], pos[1]);
|
||||||
|
topic.setFinalPosition(pos[0], pos[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Creating icons and children nodes
|
||||||
|
var children = domElem.childNodes;
|
||||||
|
for (var i = 0; i < children.length; i++) {
|
||||||
|
var child = children[i];
|
||||||
|
if (child.nodeType == 1) {
|
||||||
|
$assert(child.tagName == "topic" || child.tagName == "icon" || child.tagName == "link" || child.tagName == "note", 'Illegal node type:' + child.tagName);
|
||||||
|
if (child.tagName == "topic") {
|
||||||
|
var childTopic = this._deserializeNode(child, mindmap);
|
||||||
|
childTopic.connectTo(topic);
|
||||||
|
} else if (child.tagName == "icon") {
|
||||||
|
var icon = this._deserializeIcon(child, topic);
|
||||||
|
topic.addIcon(icon);
|
||||||
|
} else if (child.tagName == "link") {
|
||||||
|
var link = this._deserializeLink(child, topic);
|
||||||
|
topic.addLink(link);
|
||||||
|
} else if (child.tagName == "note") {
|
||||||
|
var note = this._deserializeNote(child, topic);
|
||||||
|
topic.addNote(note);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
;
|
||||||
|
return topic;
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeIcon : function(domElem, topic) {
|
||||||
|
return topic.createIcon(domElem.getAttribute("id"));
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeLink : function(domElem, topic) {
|
||||||
|
return topic.createLink(domElem.getAttribute("url"));
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeNote : function(domElem, topic) {
|
||||||
|
return topic.createNote(domElem.getAttribute("text"));
|
||||||
|
},
|
||||||
|
|
||||||
|
_deserializeRelationship : function(domElement, mindmap) {
|
||||||
|
var srcId = domElement.getAttribute("srcTopicId");
|
||||||
|
var destId = domElement.getAttribute("destTopicId");
|
||||||
|
var lineType = domElement.getAttribute("lineType");
|
||||||
|
var srcCtrlPoint = domElement.getAttribute("srcCtrlPoint");
|
||||||
|
var destCtrlPoint = domElement.getAttribute("destCtrlPoint");
|
||||||
|
var endArrow = domElement.getAttribute("endArrow");
|
||||||
|
var startArrow = domElement.getAttribute("startArrow");
|
||||||
|
//If for some reason a relationship lines has source and dest nodes the same, don't import it.
|
||||||
|
if (srcId == destId) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var model = mindmap.createRelationship(srcId, destId);
|
||||||
|
model.setLineType(lineType);
|
||||||
|
if ($defined(srcCtrlPoint) && srcCtrlPoint != "") {
|
||||||
|
model.setSrcCtrlPoint(core.Point.fromString(srcCtrlPoint));
|
||||||
|
}
|
||||||
|
if ($defined(destCtrlPoint) && destCtrlPoint != "") {
|
||||||
|
model.setDestCtrlPoint(core.Point.fromString(destCtrlPoint));
|
||||||
|
}
|
||||||
|
model.setEndArrow(endArrow == "true");
|
||||||
|
model.setStartArrow(startArrow == "true");
|
||||||
|
return model;
|
||||||
}
|
}
|
||||||
var model = mindmap.createRelationship(srcId, destId);
|
});
|
||||||
model.setLineType(lineType);
|
|
||||||
if($defined(srcCtrlPoint) && srcCtrlPoint!=""){
|
|
||||||
model.setSrcCtrlPoint(core.Point.fromString(srcCtrlPoint));
|
|
||||||
}
|
|
||||||
if($defined(destCtrlPoint) && destCtrlPoint!=""){
|
|
||||||
model.setDestCtrlPoint(core.Point.fromString(destCtrlPoint));
|
|
||||||
}
|
|
||||||
model.setEndArrow(endArrow=="true");
|
|
||||||
model.setStartArrow(startArrow=="true");
|
|
||||||
return model;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.XMLMindmapSerializer_Pela.MAP_ROOT_NODE = 'map';
|
mindplot.XMLMindmapSerializer_Pela.MAP_ROOT_NODE = 'map';
|
@ -39,7 +39,7 @@ mindplot.util.Shape =
|
|||||||
{
|
{
|
||||||
$assert(rectCenterPoint, 'rectCenterPoint can not be null');
|
$assert(rectCenterPoint, 'rectCenterPoint can not be null');
|
||||||
$assert(rectSize, 'rectSize can not be null');
|
$assert(rectSize, 'rectSize can not be null');
|
||||||
$assert($defined(isAtRight), 'isRight can not be null');
|
$assert(isAtRight, 'isRight can not be null');
|
||||||
|
|
||||||
// Node is placed at the right ?
|
// Node is placed at the right ?
|
||||||
var result = new core.Point();
|
var result = new core.Point();
|
||||||
|
Loading…
Reference in New Issue
Block a user