From d2f9749d61614049a515f0b7796fd1f92169ca9e Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Fri, 21 Sep 2012 09:22:41 -0300 Subject: [PATCH] - Refactor node properties to topics. --- mindplot/pom.xml | 1 + mindplot/src/main/javascript/CentralTopic.js | 31 ----- mindplot/src/main/javascript/MainTopic.js | 73 ---------- mindplot/src/main/javascript/Topic.js | 28 ++-- mindplot/src/main/javascript/TopicStyle.js | 132 +++++++++++++++++++ 5 files changed, 145 insertions(+), 120 deletions(-) create mode 100644 mindplot/src/main/javascript/TopicStyle.js diff --git a/mindplot/pom.xml b/mindplot/pom.xml index 53144cd4..99273e1c 100644 --- a/mindplot/pom.xml +++ b/mindplot/pom.xml @@ -140,6 +140,7 @@ Workspace.js ShrinkConnector.js DesignerKeyboard.js + TopicStyle.js NodeGraph.js Topic.js CentralTopic.js diff --git a/mindplot/src/main/javascript/CentralTopic.js b/mindplot/src/main/javascript/CentralTopic.js index e08458c2..f2fba1bf 100644 --- a/mindplot/src/main/javascript/CentralTopic.js +++ b/mindplot/src/main/javascript/CentralTopic.js @@ -36,20 +36,11 @@ mindplot.CentralTopic = new Class({ return this.getPosition(); }, - _getInnerPadding:function () { - return 11; - }, - setCursor:function (type) { type = (type == 'move') ? 'default' : type; this.parent(type); }, - _defaultShapeType:function () { - return mindplot.model.TopicShape.ROUNDED_RECT; - }, - - updateTopicShape:function () { }, @@ -61,28 +52,6 @@ mindplot.CentralTopic = new Class({ this.setPosition(zeroPoint); }, - _defaultText:function () { - return $msg('CENTRAL_TOPIC'); - }, - - _defaultBackgroundColor:function () { - return "rgb(80,157,192)"; - }, - - _defaultBorderColor:function () { - return "rgb(57,113,177)"; - }, - - _defaultFontStyle:function () { - return { - font:"Verdana", - size:10, - style:"normal", - weight:"bold", - color:"#ffffff" - }; - }, - getShrinkConnector:function () { return null; }, diff --git a/mindplot/src/main/javascript/MainTopic.js b/mindplot/src/main/javascript/MainTopic.js index 87401ebd..e1bb2a7c 100644 --- a/mindplot/src/main/javascript/MainTopic.js +++ b/mindplot/src/main/javascript/MainTopic.js @@ -55,11 +55,6 @@ mindplot.MainTopic = new Class({ return group; }, - - _defaultShapeType:function () { - return mindplot.model.TopicShape.LINE; - }, - updateTopicShape:function (targetTopic, workspace) { // Change figure based on the connected topic ... var model = this.getModel(); @@ -163,74 +158,6 @@ mindplot.MainTopic = new Class({ result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight, true); } return result; - }, - - _getInnerPadding:function () { - var result; - var parent = this.getModel().getParent(); - if (parent && !parent.isCentralTopic()) { - result = 3; - } - else { - result = 4; - } - return result; - }, - - _defaultText:function () { - var targetTopic = this.getOutgoingConnectedTopic(); - var result = ""; - if ($defined(targetTopic)) { - if (targetTopic.isCentralTopic()) { - result = $msg('MAIN_TOPIC'); - } else { - result = $msg('SUB_TOPIC'); - } - } else { - result = $msg('ISOLATED_TOPIC'); - } - return result; - }, - - _defaultFontStyle:function () { - var targetTopic = this.getOutgoingConnectedTopic(); - var result; - if ($defined(targetTopic)) { - if (targetTopic.isCentralTopic()) { - result = { - font:"Arial", - size:8, - style:"normal", - weight:"normal", - color:"rgb(82,92,97)" - }; - } else { - result = { - font:"Arial", - size:6, - style:"normal", - weight:"normal", - color:"rgb(82,92,97)" - }; - } - } else { - result = { - font:"Verdana", - size:8, - style:"normal", - weight:"normal", - color:"rgb(82,92,97)" - }; - } - return result; - }, - - _defaultBackgroundColor:function () { - return "rgb(224,229,239)"; - }, - - _defaultBorderColor:function () { - return 'rgb(2,59,185)'; } }); \ No newline at end of file diff --git a/mindplot/src/main/javascript/Topic.js b/mindplot/src/main/javascript/Topic.js index e47ab269..d8d8d992 100644 --- a/mindplot/src/main/javascript/Topic.js +++ b/mindplot/src/main/javascript/Topic.js @@ -107,7 +107,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getShapeType(); if (!$defined(result)) { - result = this._defaultShapeType(); + result = mindplot.TopicStyle.defaultShapeType(this); } return result; }, @@ -259,7 +259,7 @@ mindplot.Topic = new Class({ _buildIconGroup:function () { var textHeight = this.getTextShape().getFontHeight(); var result = new mindplot.IconGroup(this.getId(), textHeight); - var padding = this._getInnerPadding(); + var padding = mindplot.TopicStyle.getInnerPadding(this); result.setPosition(padding, padding); // Load topic features ... @@ -350,10 +350,6 @@ mindplot.Topic = new Class({ return result; }, - _getInnerPadding:function () { - throw "this must be implemented"; - }, - setFontFamily:function (value, updateModel) { var textShape = this.getTextShape(); textShape.setFontFamily(value); @@ -401,7 +397,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getFontWeight(); if (!$defined(result)) { - var font = this._defaultFontStyle(); + var font = mindplot.TopicStyle.defaultFontStyle(this); result = font.weight; } return result; @@ -411,7 +407,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getFontFamily(); if (!$defined(result)) { - var font = this._defaultFontStyle(); + var font = mindplot.TopicStyle.defaultFontStyle(this); result = font.font; } return result; @@ -421,7 +417,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getFontColor(); if (!$defined(result)) { - var font = this._defaultFontStyle(); + var font = mindplot.TopicStyle.defaultFontStyle(this); result = font.color; } return result; @@ -431,7 +427,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getFontStyle(); if (!$defined(result)) { - var font = this._defaultFontStyle(); + var font = mindplot.TopicStyle.defaultFontStyle(this); result = font.style; } return result; @@ -441,7 +437,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getFontSize(); if (!$defined(result)) { - var font = this._defaultFontStyle(); + var font = mindplot.TopicStyle.defaultFontStyle(this); result = font.size; } return result; @@ -458,7 +454,7 @@ mindplot.Topic = new Class({ _setText:function (text, updateModel) { var textShape = this.getTextShape(); - textShape.setText(text == null ? this._defaultText() : text); + textShape.setText(text == null ? mindplot.TopicStyle.defaultText(this) : text); if ($defined(updateModel) && updateModel) { var model = this.getModel(); @@ -480,7 +476,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getText(); if (!$defined(result)) { - result = this._defaultText(); + result = mindplot.TopicStyle.defaultText(this); } return result; }, @@ -508,7 +504,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getBackgroundColor(); if (!$defined(result)) { - result = this._defaultBackgroundColor(); + result = mindplot.TopicStyle.defaultBackgroundColor(this); } return result; }, @@ -536,7 +532,7 @@ mindplot.Topic = new Class({ var model = this.getModel(); var result = model.getBorderColor(); if (!$defined(result)) { - result = this._defaultBorderColor(); + result = mindplot.TopicStyle.defaultBorderColor(this); } return result; }, @@ -1154,7 +1150,7 @@ mindplot.Topic = new Class({ var textHeight = textShape.getHeight(); textHeight = textHeight != 0 ? textHeight : 20; - var topicPadding = this._getInnerPadding(); + var topicPadding = mindplot.TopicStyle.getInnerPadding(this); // Adjust the icon size to the size of the text ... var iconGroup = this.getOrBuildIconGroup(); diff --git a/mindplot/src/main/javascript/TopicStyle.js b/mindplot/src/main/javascript/TopicStyle.js new file mode 100644 index 00000000..43bb7b8f --- /dev/null +++ b/mindplot/src/main/javascript/TopicStyle.js @@ -0,0 +1,132 @@ +/* + * Copyright [2011] [wisemapping] + * + * Licensed under WiseMapping Public License, Version 1.0 (the "License"). + * It is basically the Apache License, Version 2.0 (the "License") plus the + * "powered by wisemapping" text requirement on every single page; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the license at + * + * http://www.wisemapping.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +mindplot.TopicStyle = new Class({ + Static:{ + _getStyles:function (topic) { + $assert(topic, "topic can not be null"); + + var result; + if (topic.isCentralTopic()) { + result = mindplot.TopicStyle.STYLES.CENTRAL_TOPIC; + } else { + var targetTopic = topic.getOutgoingConnectedTopic(); + if ($defined(targetTopic)) { + if (targetTopic.isCentralTopic()) { + result = mindplot.TopicStyle.STYLES.MAIN_TOPIC; + } else { + result = mindplot.TopicStyle.STYLES.SUB_TOPIC; + } + } else { + result = mindplot.TopicStyle.STYLES.ISOLATED_TOPIC; + } + } + return result; + }, + + defaultText:function (topic) { + var msgKey = this._getStyles(topic).msgKey; + return $msg(msgKey); + }, + + defaultFontStyle:function (topic) { + return this._getStyles(topic).fontStyle; + }, + + defaultBackgroundColor:function (topic) { + return this._getStyles(topic).backgroundColor; + }, + + defaultBorderColor:function (topic) { + return this._getStyles(topic).borderColor; + }, + + getInnerPadding:function (topic) { + return this._getStyles(topic).innerPadding; + }, + + defaultShapeType:function (topic) { + return this._getStyles(topic).shapeType; + } + + } +}); + +mindplot.TopicStyle.STYLES = +{ + CENTRAL_TOPIC:{ + borderColor:'rgb(57,113,177)', + backgroundColor:'rgb(80,157,192)', + fontStyle:{ + font:"Verdana", + size:10, + style:"normal", + weight:"bold", + color:"#ffffff" + }, + msgKey:'CENTRAL_TOPIC', + innerPadding:11, + shapeType:mindplot.model.TopicShape.ROUNDED_RECT + }, + + MAIN_TOPIC:{ + borderColor:'rgb(2,59,185)', + backgroundColor:'rgb(224,229,239)', + fontStyle:{ + font:"Arial", + size:8, + style:"normal", + weight:"normal", + color:"rgb(82,92,97)" + }, + msgKey:'MAIN_TOPIC', + innerPadding:3, + shapeType:mindplot.model.TopicShape.LINE + + }, + + SUB_TOPIC:{ + borderColor:'rgb(2,59,185)', + backgroundColor:'rgb(224,229,239)', + fontStyle:{ + font:"Arial", + size:6, + style:"normal", + weight:"normal", + color:"rgb(82,92,97)" + }, + msgKey:'SUB_TOPIC', + innerPadding:3, + shapeType:mindplot.model.TopicShape.LINE + }, + + ISOLATED_TOPIC:{ + borderColor:'rgb(2,59,185)', + backgroundColor:'rgb(224,229,239)', + fontStyle:{ + font:"Verdana", + size:8, + style:"normal", + weight:"normal", + color:"rgb(82,92,97)" + }, + msgKey:'ISOLATED_TOPIC', + innerPadding:4, + shapeType:mindplot.model.TopicShape.LINE + } +}; +