Fix multple node selection in toolbar.

This commit is contained in:
Paulo Veiga 2011-08-09 09:03:46 -03:00
parent 6843323d2f
commit fb5f22aaac
6 changed files with 61 additions and 111 deletions

View File

@ -49,7 +49,6 @@
<output>${basedir}/target/classes/core.js</output>
<includes>
<include>${basedir}/target/tmp/header-min.js</include>
<include>${basedir}/target/tmp/ColorPicker-min.js</include>
<include>${basedir}/target/tmp/Functions-min.js</include>
<include>${basedir}/target/tmp/log4js-min.js</include>
<include>${basedir}/target/tmp/Monitor-min.js</include>

View File

@ -1,94 +0,0 @@
/*
* 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.
*/
core.ColorPicker = function()
{
this.palette = "7x10";
this._palettes = {"7x10": [["fff", "fcc", "fc9", "ff9", "ffc", "9f9", "9ff", "cff", "ccf", "fcf"],
["ccc", "f66", "f96", "ff6", "ff3", "6f9", "3ff", "6ff", "99f", "f9f"],
["c0c0c0", "f00", "f90", "fc6", "ff0", "3f3", "6cc", "3cf", "66c", "c6c"],
["999", "c00", "f60", "fc3", "fc0", "3c0", "0cc", "36f", "63f", "c3c"],
["666", "900", "c60", "c93", "990", "090", "399", "33f", "60c", "939"],
["333", "600", "930", "963", "660", "060", "366", "009", "339", "636"],
["000", "300", "630", "633", "330", "030", "033", "006", "309", "303"]],
"3x4": [["ffffff"/*white*/, "00ff00"/*lime*/, "008000"/*green*/, "0000ff"/*blue*/],
["c0c0c0"/*silver*/, "ffff00"/*yellow*/, "ff00ff"/*fuchsia*/, "000080"/*navy*/],
["808080"/*gray*/, "ff0000"/*red*/, "800080"/*purple*/, "000000"/*black*/]]
//["00ffff"/*aqua*/, "808000"/*olive*/, "800000"/*maroon*/, "008080"/*teal*/]];
};
};
core.ColorPicker.buildRendering = function ()
{
this.domNode = document.createElement("table");
// dojo.html.disableSelection(this.domNode);
// dojo.event.connect(this.domNode, "onmousedown", function (e) {
// e.preventDefault();
// });
with (this.domNode) { // set the table's properties
cellPadding = "0";
cellSpacing = "1";
border = "1";
style.backgroundColor = "white";
}
var colors = this._palettes[this.palette];
for (var i = 0; i < colors.length; i++) {
var tr = this.domNode.insertRow(-1);
for (var j = 0; j < colors[i].length; j++) {
if (colors[i][j].length == 3) {
colors[i][j] = colors[i][j].replace(/(.)(.)(.)/, "$1$1$2$2$3$3");
}
var td = tr.insertCell(-1);
with (td.style) {
backgroundColor = "#" + colors[i][j];
border = "1px solid gray";
width = height = "15px";
fontSize = "1px";
}
td.color = "#" + colors[i][j];
td.onmouseover = function (e) {
this.style.borderColor = "white";
};
td.onmouseout = function (e) {
this.style.borderColor = "gray";
};
// dojo.event.connect(td, "onmousedown", this, "onClick");
td.innerHTML = "&nbsp;";
}
}
};
core.ColorPicker.onClick = function(/*Event*/ e)
{
this.onColorSelect(e.currentTarget.color);
e.currentTarget.style.borderColor = "gray";
};
core.ColorPicker.onColorSelect = function(color)
{
// summary:
// Callback when a color is selected.
// color: String
// Hex value corresponding to color.
};

View File

@ -101,7 +101,7 @@ mindplot.widget.ColorPalettePanel = new Class({
},
show : function() {
if (!this.isVisible()) {
if (!this.isVisible()) {
this.parent();
var panelElem = this._getPanelElem();
@ -115,9 +115,10 @@ mindplot.widget.ColorPalettePanel = new Class({
// Mark the cell as selected ...
var colorCells = panelElem.getElements('div[class=palette-colorswatch]');
var model = this.getModel();
var modelValue = model.getValue();
colorCells.forEach(function(elem) {
var color = elem.getStyle("background-color");
if (model.getValue() == color) {
if (modelValue == color) {
elem.parentNode.className = 'palette-cell palette-cell-selected';
}
});

View File

@ -43,9 +43,16 @@ mindplot.widget.Menu = new Class({
var fontFamilyModel = {
getValue: function() {
var nodes = designer.getSelectedNodes();
if (nodes.length == 1) {
return nodes[0].getFontFamily();
var result = null;
for (var i=0; i < nodes.length; i++) {
var fontFamily = nodes[i].getFontFamily();
if (result != null && result != fontFamily) {
result = null;
break;
}
result = fontFamily;
}
return result;
},
setValue: function(value) {
@ -58,9 +65,16 @@ mindplot.widget.Menu = new Class({
var fontSizeModel = {
getValue: function() {
var nodes = designer.getSelectedNodes();
if (nodes.length == 1) {
return nodes[0].getFontSize();
var result = null;
for (var i=0; i < nodes.length; i++) {
var fontSize = nodes[i].getFontSize();
if (result != null && result != fontSize) {
result = null;
break;
}
result = fontSize;
}
return result;
},
setValue: function(value) {
designer.setFontSize2SelectedNode(value);
@ -71,9 +85,16 @@ mindplot.widget.Menu = new Class({
var topicShapeModel = {
getValue: function() {
var nodes = designer.getSelectedNodes();
if (nodes.length == 1) {
return nodes[0].getShapeType();
var result = null;
for (var i=0; i < nodes.length; i++) {
var shapeType = nodes[i].getShapeType();
if (result != null && result != shapeType) {
result = null;
break;
}
result = shapeType;
}
return result;
},
setValue: function(value) {
designer.setShape2SelectedNode(value);
@ -97,10 +118,16 @@ mindplot.widget.Menu = new Class({
{
getValue : function() {
var nodes = designer.getSelectedNodes();
if (nodes.length == 1) {
return nodes[0].getBackgroundColor();
var result = null;
for (var i=0; i < nodes.length; i++) {
var color = nodes[i].getBackgroundColor();
if (result != null && result != color) {
result = null;
break;
}
result = color;
}
return null;
return result;
},
setValue : function (hex) {
designer.setBackColor2SelectedNode(hex);
@ -113,9 +140,16 @@ mindplot.widget.Menu = new Class({
{
getValue : function() {
var nodes = designer.getSelectedNodes();
if (nodes.length == 1) {
return nodes[0].getBorderColor();
var result = null;
for (var i=0; i < nodes.length; i++) {
var color = nodes[i].getBorderColor();
if (result != null && result != color) {
result = null;
break;
}
result = color;
}
return result;
},
setValue : function (hex) {
designer.setBorderColor2SelectedNode(hex);
@ -127,10 +161,17 @@ mindplot.widget.Menu = new Class({
var fontColorModel =
{
getValue : function() {
var result = null;
var nodes = designer.getSelectedNodes();
if (nodes.length == 1) {
return nodes[0].getFontColor();
for (var i=0; i < nodes.length; i++) {
var color = nodes[i].getFontColor();
if (result != null && result != color) {
result = null;
break;
}
result = color;
}
return result;
},
setValue : function (hex) {
designer.setFontColor2SelectedNode(hex);

4
wise-doc/bugs.txt Normal file
View File

@ -0,0 +1,4 @@
- Select and unselect de un nodo.
- metaKey for mac
- Si todos los nodos tienen las mismas propiedades, las opciones deberian aparecer marcadas.
- Ver de que algunos de los colores de las paleta sean los utilizados.

View File

@ -20,7 +20,6 @@
<!--<script type='text/javascript' src='../js/windoo.js'></script>-->
<!--<script type='text/javascript' src='../js/wiseEditorLibrary.js'></script>-->
<script type='text/javascript' src='../../../../../wise-webapp/src/main/webapp/js/mooRainbow.js'></script>
<script type='text/javascript' src='../js/core.js'></script>
<script type="text/javascript">