wisemapping-open-source/mindplot/src/main/javascript/widget/Menu.js

225 lines
7.0 KiB
JavaScript
Raw Normal View History

2011-08-07 23:59:20 +02:00
/*
* 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.widget.Menu = new Class({
initialize : function(designer) {
this._designer = designer;
this._toolbarElems = [];
this._colorPickers = [];
var fontFamilyModel = {
getValue: function() {
var nodes = designer.getSelectedNodes();
var length = nodes.length;
if (length == 1) {
return nodes[0].getFontFamily();
}
},
setValue: function(value) {
designer.setFont2SelectedNode(value);
}
};
var fontFamilyPanel = new mindplot.widget.FontFamilyPanel("fontFamily", fontFamilyModel);
2011-08-08 14:20:32 +02:00
fontFamilyPanel.addEvent('show', function() {
this.clear()
}.bind(this));
2011-08-07 23:59:20 +02:00
this._toolbarElems.push(fontFamilyPanel);
var fontSizeModel = {
getValue: function() {
var nodes = designer.getSelectedNodes();
var length = nodes.length;
if (length == 1) {
return nodes[0].getFontSize();
}
},
setValue: function(value) {
designer.setFontSize2SelectedNode(value);
}
};
var fontSizePanel = new mindplot.widget.FontSizePanel("fontSize", fontSizeModel);
2011-08-08 14:20:32 +02:00
fontSizePanel.addEvent('show', function() {
this.clear()
}.bind(this));
2011-08-07 23:59:20 +02:00
this._toolbarElems.push(fontSizePanel);
var topicShapeModel = {
getValue: function() {
var nodes = designer.getSelectedNodes();
var length = nodes.length;
if (length == 1) {
return nodes[0].getShapeType();
}
},
setValue: function(value) {
designer.setShape2SelectedNode(value);
}
};
var topicShapePanel = new mindplot.widget.TopicShapePanel("topicShape", topicShapeModel);
2011-08-08 14:20:32 +02:00
topicShapePanel.addEvent('show', function() {
this.clear()
}.bind(this));
2011-08-07 23:59:20 +02:00
this._toolbarElems.push(topicShapePanel);
// Create icon panel dialog ...
var topicIconModel = {
getValue: function() {
return null;
},
setValue: function(value) {
designer.addIconType2SelectedNode(value);
}
};
var iconPanel = new mindplot.widget.IconPanel('topicIcon', topicIconModel);
2011-08-08 14:20:32 +02:00
iconPanel.addEvent('show', function() {
this.clear()
}.bind(this));
2011-08-07 23:59:20 +02:00
this._toolbarElems.push(iconPanel);
2011-08-08 14:20:32 +02:00
var colorPickerOptions = {
2011-08-07 23:59:20 +02:00
id: 'topicColor',
imgPath: '../images/',
startColor: [255, 255, 255],
onInit: function() {
this.clear();
}.bind(this),
onChange: function(color) {
designer.setBackColor2SelectedNode(color.hex);
},
onComplete: function() {
this.clear();
}.bind(this)
2011-08-08 14:20:32 +02:00
};
var topicColorPicker = new MooRainbow('topicColor', colorPickerOptions);
2011-08-07 23:59:20 +02:00
this._colorPickers.push(topicColorPicker);
var borderColorPicker = new MooRainbow('topicBorder', {
id: 'topicBorder',
imgPath: '../images/',
startColor: [255, 255, 255],
onInit: function() {
this.clear();
}.bind(this),
onChange: function(color) {
designer.setBorderColor2SelectedNode(color.hex);
},
onComplete: function() {
this.clear();
}.bind(this)
});
this._colorPickers.push(borderColorPicker);
var fontColorPicker = new MooRainbow('fontColor', {
id: 'fontColor',
imgPath: '../images/',
startColor: [255, 255, 255],
onInit: function() {
this.clear();
}.bind(this),
onChange: function(color) {
designer.setFontColor2SelectedNode(color.hex);
},
onComplete: function() {
this.clear();
}.bind(this)
});
this._colorPickers.push(fontColorPicker);
2011-08-08 14:20:32 +02:00
// Register Events ...
$('zoomIn').addEvent('click', function(event) {
designer.zoomIn();
});
$('zoomOut').addEvent('click', function(event) {
designer.zoomOut();
});
$('undoEdition').addEvent('click', function(event) {
designer.undo();
});
$('redoEdition').addEvent('click', function(event) {
designer.redo();
});
designer.addEventListener("modelUpdate", function(event) {
if (event.undoSteps > 0) {
$("undoEdition").setStyle("background-image", "url(../images/file_undo.png)");
} else {
$("undoEdition").setStyle("background-image", "url(../images/file_undo_dis.png)");
}
if (event.redoSteps > 0) {
$("redoEdition").setStyle("background-image", "url(../images/file_redo.png)");
} else {
$("redoEdition").setStyle("background-image", "url(../images/file_redo_dis.png)");
}
});
$('addTopic').addEvent('click', function(event) {
designer.createSiblingForSelectedNode();
});
$('deleteTopic').addEvent('click', function(event) {
designer.deleteCurrentNode();
});
$('topicLink').addEvent('click', function(event) {
designer.addLink2SelectedNode();
});
$('topicRelation').addEvent('click', function(event) {
designer.addRelationShip2SelectedNode(event);
});
$('topicNote').addEvent('click', function(event) {
designer.addNote2SelectedNode();
});
$('fontBold').addEvent('click', function(event) {
designer.setWeight2SelectedNode();
});
$('fontItalic').addEvent('click', function(event) {
designer.setStyle2SelectedNode();
});
2011-08-07 23:59:20 +02:00
},
clear : function() {
this._toolbarElems.forEach(function(elem) {
elem.hide();
});
this._colorPickers.forEach(function(elem) {
$clear(elem);
elem.hide();
});
}
});