Working on a HTML version of the editor
This commit is contained in:
687
wise-doc/src/main/webapp/js/editor.js
Normal file
687
wise-doc/src/main/webapp/js/editor.js
Normal file
@@ -0,0 +1,687 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
function afterCoreLoading()
|
||||
{
|
||||
|
||||
// Uncomment for debug ...
|
||||
$import("../js/mindplot.svg.js");
|
||||
|
||||
// $import("../js/mindplot.svg-min.js");
|
||||
|
||||
};
|
||||
afterCoreLoading();
|
||||
|
||||
|
||||
|
||||
/*Extend mootools known keys*/
|
||||
ExtendedKeys = {
|
||||
'insert': 45,
|
||||
'f2':113,
|
||||
'ctrl-enter':17
|
||||
};
|
||||
|
||||
$extend(Event.keys, ExtendedKeys);
|
||||
|
||||
var designer = null;
|
||||
/* JavaScript tabs changer */
|
||||
|
||||
// CSS helper functions
|
||||
CSS = {
|
||||
// Adds a class to an element.
|
||||
AddClass: function (e, c) {
|
||||
if (!e.className.match(new RegExp("\\b" + c + "\\b", "i")))
|
||||
e.className += (e.className ? " " : "") + c;
|
||||
},
|
||||
|
||||
// Removes a class from an element.
|
||||
RemoveClass: function (e, c) {
|
||||
e.className = e.className.replace(new RegExp(" \\b" + c + "\\b|\\b" + c + "\\b ?", "gi"), "");
|
||||
}
|
||||
};
|
||||
|
||||
// Functions for handling tabs.
|
||||
Tabs = {
|
||||
// Changes to the tab with the specified ID.
|
||||
GoTo: function (contentId, skipReplace) {
|
||||
// This variable will be true if a tab for the specified
|
||||
// content ID was found.
|
||||
var foundTab = false;
|
||||
|
||||
// Get the TOC element.
|
||||
var toc = $("toc");
|
||||
if (toc) {
|
||||
var lis = toc.getElementsByTagName("li");
|
||||
for (var j = 0; j < lis.length; j++) {
|
||||
var li = lis[j];
|
||||
|
||||
// Give the current tab link the class "current" and
|
||||
// remove the class from any other TOC links.
|
||||
var anchors = li.getElementsByTagName("a");
|
||||
var anchors = li.getElementsByTagName("a");
|
||||
for (var k = 0; k < anchors.length; k++) {
|
||||
if (anchors[k].hash == "#" + contentId) {
|
||||
CSS.AddClass(li, "current");
|
||||
foundTab = true;
|
||||
break;
|
||||
} else {
|
||||
CSS.RemoveClass(li, "current");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Show the content with the specified ID.
|
||||
var divsToHide = [];
|
||||
var divs = document.getElementsByTagName("div");
|
||||
for (var i = 0; i < divs.length; i++) {
|
||||
var div = divs[i];
|
||||
|
||||
if (div.className.match(/\btabContent\b/i)) {
|
||||
if (div.id == "_" + contentId)
|
||||
div.style.display = "block";
|
||||
else
|
||||
{
|
||||
divsToHide.push(div);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Hide the other content boxes.
|
||||
for (var i = 0; i < divsToHide.length; i++)
|
||||
divsToHide[i].style.display = "none";
|
||||
|
||||
// Change the address bar.
|
||||
if (!skipReplace) window.location.replace("#" + contentId);
|
||||
},
|
||||
|
||||
OnClickHandler: function (e) {
|
||||
// Stop the event (to stop it from scrolling or
|
||||
// making an entry in the history).
|
||||
if (!e) e = window.event;
|
||||
if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
|
||||
|
||||
// Get the name of the anchor of the link that was clicked.
|
||||
Tabs.GoTo(this.hash.substring(1));
|
||||
},
|
||||
|
||||
Init: function () {
|
||||
if (!document.getElementsByTagName)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Attach an onclick event to all the anchor links on the page.
|
||||
var anchors = document.getElementsByTagName("a");
|
||||
for (var i = 0; i < anchors.length; i++) {
|
||||
var a = anchors[i];
|
||||
if (a.hash) {
|
||||
a.onclick = Tabs.OnClickHandler;
|
||||
}
|
||||
}
|
||||
|
||||
var contentId;
|
||||
if (window.location.hash)
|
||||
contentId = window.location.hash.substring(1);
|
||||
|
||||
var divs = document.getElementsByTagName("div");
|
||||
for (var i = 0; i < divs.length; i++) {
|
||||
var div = divs[i];
|
||||
|
||||
if (div.className.match(/\btabContent\b/i)) {
|
||||
if (!contentId) contentId = div.id;
|
||||
div.id = "_" + div.id;
|
||||
}
|
||||
}
|
||||
|
||||
if (contentId)
|
||||
Tabs.GoTo(contentId, true);
|
||||
}
|
||||
};
|
||||
|
||||
if (document.createStyleSheet) {
|
||||
var style = document.createStyleSheet();
|
||||
style.addRule("div.tabContent", "display: none;");
|
||||
style.addRule("div" + contentId, "display: block;");
|
||||
} else {
|
||||
var head = document.getElementsByTagName("head")[0];
|
||||
if (head) {
|
||||
var style = document.createElement("style");
|
||||
style.setAttribute("type", "text/css");
|
||||
style.appendChild(document.createTextNode("div.tabContent { display: none; }"));
|
||||
style.appendChild(document.createTextNode("div" + contentId + " { display: block; }"));
|
||||
head.appendChild(style);
|
||||
}
|
||||
}
|
||||
|
||||
// Hook up the OnLoad event to the tab initialization function.
|
||||
Tabs.Init();
|
||||
|
||||
// Hide the content while waiting for the onload event to trigger.
|
||||
var contentId = window.location.hash || "#Introduction";
|
||||
|
||||
var iconPanel = null;
|
||||
|
||||
function afterMindpotLibraryLoading()
|
||||
{
|
||||
buildMindmapDesigner();
|
||||
|
||||
if ($('helpButton') != null)
|
||||
{
|
||||
var helpPanel = new Panel({panelButton:$('helpButton'), backgroundColor:'black'});
|
||||
helpPanel.setContent(Help.buildHelp(helpPanel));
|
||||
}
|
||||
|
||||
if ($('helpButtonFirstSteps') != null)
|
||||
{
|
||||
var firstStepsPanel = $('helpButtonFirstSteps')
|
||||
firstStepsPanel.addEvent('click', function(event) {
|
||||
var firstStepWindow = window.open("firststeps.htm", "WiseMapping", "width=100px, height=100px");
|
||||
firstStepWindow.focus();
|
||||
firstStepWindow.moveTo(0, 0);
|
||||
firstStepWindow.resizeTo(screen.availWidth, screen.availHeight);
|
||||
});
|
||||
}
|
||||
|
||||
if ($('helpButtonKeyboard') != null)
|
||||
{
|
||||
var keyboardPanel = $('helpButtonKeyboard')
|
||||
keyboardPanel.addEvent('click', function(event) {
|
||||
MOOdalBox.open('keyboard.htm', 'KeyBoard Shortcuts', '500px 400px', false)
|
||||
});
|
||||
}
|
||||
|
||||
var iconChooser = buildIconChooser();
|
||||
iconPanel = new IconPanel({button:$('topicIcon'), onStart:cleanScreenEvent, content:iconChooser});
|
||||
// Register Events ...
|
||||
$(document).addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
|
||||
$("ffoxWorkarroundInput").addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
|
||||
//
|
||||
$('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("change", 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) {
|
||||
var topics = designer.getSelectedNodes();
|
||||
designer.deleteCurrentNode();
|
||||
});
|
||||
var context = this;
|
||||
var colorPicker1 = new MooRainbow('topicColor', {
|
||||
id: 'topicColor',
|
||||
imgPath: '../images/',
|
||||
startColor: [255, 255, 255],
|
||||
onInit: function(color) {
|
||||
cleanScreenEvent.bind(context).attempt();
|
||||
setCurrentColorPicker.attempt(colorPicker1, context);
|
||||
},
|
||||
onChange: function(color) {
|
||||
designer.setBackColor2SelectedNode(color.hex);
|
||||
},
|
||||
onComplete: function(color) {
|
||||
removeCurrentColorPicker.attempt(colorPicker1, context);
|
||||
}
|
||||
});
|
||||
var colorPicker2 = new MooRainbow('topicBorder', {
|
||||
id: 'topicBorder',
|
||||
imgPath: '../images/',
|
||||
startColor: [255, 255, 255],
|
||||
onInit: function(color) {
|
||||
cleanScreenEvent.bind(context).attempt();
|
||||
setCurrentColorPicker.attempt(colorPicker2, context);
|
||||
},
|
||||
onChange: function(color) {
|
||||
designer.setBorderColor2SelectedNode(color.hex);
|
||||
},
|
||||
onComplete: function(color) {
|
||||
removeCurrentColorPicker.attempt(colorPicker2, context);
|
||||
}
|
||||
});
|
||||
$('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();
|
||||
});
|
||||
|
||||
var colorPicker3 = new MooRainbow('fontColor', {
|
||||
id: 'fontColor',
|
||||
imgPath: '../images/',
|
||||
startColor: [255, 255, 255],
|
||||
onInit: function(color) {
|
||||
cleanScreenEvent.bind(context).attempt();
|
||||
setCurrentColorPicker.attempt(colorPicker3, context);
|
||||
},
|
||||
onChange: function(color) {
|
||||
designer.setFontColor2SelectedNode(color.hex);
|
||||
},
|
||||
onComplete: function(color) {
|
||||
removeCurrentColorPicker.attempt(colorPicker3, context);
|
||||
}
|
||||
});
|
||||
|
||||
// Save event handler ....
|
||||
var saveButton = $('saveButton');
|
||||
saveButton.addEvent('click', function(event) {
|
||||
|
||||
if (!isTryMode)
|
||||
{
|
||||
saveButton.setStyle('cursor', 'wait');
|
||||
var saveFunc = function()
|
||||
{
|
||||
designer.save(function()
|
||||
{
|
||||
var monitor = core.Monitor.getInstance();
|
||||
monitor.logMessage('Save completed successfully');
|
||||
saveButton.setStyle('cursor', 'pointer');
|
||||
}, true);
|
||||
}
|
||||
saveFunc.delay(1);
|
||||
} else
|
||||
{
|
||||
new Windoo.Confirm('This option is not enabled in try mode. You must by signed in order to execute this action.<br/> to create an account click <a href="userRegistration.htm">here</a>',
|
||||
{
|
||||
'window': {theme:Windoo.Themes.wise,
|
||||
title:''
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var discardButton = $('discardButton');
|
||||
discardButton.addEvent('click', function(event) {
|
||||
|
||||
if (!isTryMode)
|
||||
{
|
||||
displayLoading();
|
||||
window.document.location = "mymaps.htm";
|
||||
} else
|
||||
{
|
||||
displayLoading();
|
||||
window.document.location = "home.htm";
|
||||
}
|
||||
});
|
||||
|
||||
if (isTryMode)
|
||||
{
|
||||
$('tagIt').addEvent('click', function(event)
|
||||
{
|
||||
new Windoo.Confirm('This option is not enabled in try mode. You must by signed in order to execute this action.',
|
||||
{
|
||||
'window': {theme:Windoo.Themes.wise,
|
||||
title:''
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('shareIt').addEvent('click', function(event)
|
||||
{
|
||||
new Windoo.Confirm('This option is not enabled in try mode. You must by signed in order to execute this action.',
|
||||
{
|
||||
'window': {theme:Windoo.Themes.wise,
|
||||
title:''
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('publishIt').addEvent('click', function(event)
|
||||
{
|
||||
new Windoo.Confirm('This option is not enabled in try mode. You must by signed in order to execute this action.',
|
||||
{
|
||||
'window': {theme:Windoo.Themes.wise,
|
||||
title:''
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('history').addEvent('click', function(event)
|
||||
{
|
||||
new Windoo.Confirm('This option is not enabled in try mode. You must by signed in order to execute this action.',
|
||||
{
|
||||
'window': {theme:Windoo.Themes.wise,
|
||||
title:''
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Autosave ...
|
||||
if (!isTryMode)
|
||||
{
|
||||
var autosave = function() {
|
||||
|
||||
if (designer.needsSave())
|
||||
{
|
||||
designer.save(function()
|
||||
{
|
||||
var monitor = core.Monitor.getInstance();
|
||||
}, false);
|
||||
}
|
||||
};
|
||||
autosave.periodical(30000);
|
||||
|
||||
// To prevent the user from leaving the page with changes ...
|
||||
window.onbeforeunload = function confirmExit()
|
||||
{
|
||||
if (designer.needsSave())
|
||||
{
|
||||
designer.save(null, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Build panels ...
|
||||
fontFamilyPanel();
|
||||
shapeTypePanel();
|
||||
fontSizePanel();
|
||||
|
||||
// If not problem has occured, I close the dialod ...
|
||||
var closeDialog = function(){
|
||||
|
||||
if(!window.hasUnexpectedErrors)
|
||||
{
|
||||
waitDialog.deactivate();
|
||||
}
|
||||
}.delay(500);
|
||||
}
|
||||
|
||||
function buildIconChooser() {
|
||||
var content = new Element('div').setStyles({width:253,height:200,padding:5});
|
||||
var count = 0;
|
||||
for (var i = 0; i < mindplot.ImageIcon.prototype.ICON_FAMILIES.length; i = i + 1)
|
||||
{
|
||||
var familyIcons = mindplot.ImageIcon.prototype.ICON_FAMILIES[i].icons;
|
||||
for (var j = 0; j < familyIcons.length; j = j + 1)
|
||||
{
|
||||
// Separate icons by line ...
|
||||
var familyContent;
|
||||
if ((count % 12) == 0)
|
||||
{
|
||||
familyContent = new Element('div').inject(content);
|
||||
}
|
||||
|
||||
|
||||
var iconId = familyIcons[j];
|
||||
var img = new Element('img').setStyles({width:16,height:16,padding:"0px 2px"}).inject(familyContent);
|
||||
img.id = iconId;
|
||||
img.src = mindplot.ImageIcon.prototype._getImageUrl(iconId);
|
||||
img.addEvent('click', function(event, id) {
|
||||
designer.addImage2SelectedNode(this.id);
|
||||
}.bindWithEvent(img));
|
||||
count = count + 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
function setCurrentColorPicker(colorPicker)
|
||||
{
|
||||
this.currentColorPicker = colorPicker;
|
||||
}
|
||||
|
||||
function removeCurrentColorPicker(colorPicker)
|
||||
{
|
||||
$clear(this.currentColorPicker);
|
||||
}
|
||||
|
||||
function buildMindmapDesigner()
|
||||
{
|
||||
|
||||
// Initialize message logger ...
|
||||
var monitor = new core.Monitor($('msgLoggerContainer'), $('msgLogger'));
|
||||
core.Monitor.setInstance(monitor);
|
||||
|
||||
var container = $('mindplot');
|
||||
|
||||
// Initialize Editor ...
|
||||
|
||||
var screenWidth = window.getWidth();
|
||||
var screenHeight = window.getHeight();
|
||||
|
||||
// Positionate node ...
|
||||
// header - footer
|
||||
screenHeight = screenHeight - 90 - 61;
|
||||
|
||||
// body margin ...
|
||||
editorProperties.width = screenWidth;
|
||||
editorProperties.height = screenHeight;
|
||||
|
||||
designer = new mindplot.MindmapDesigner(editorProperties, container);
|
||||
designer.loadFromXML(mapId, mapXml);
|
||||
|
||||
// If a node has focus, focus can be move to another node using the keys.
|
||||
designer._cleanScreen = cleanScreenEvent.bind(this);
|
||||
|
||||
|
||||
// Save map on load ....
|
||||
if (editorProperties.saveOnLoad)
|
||||
{
|
||||
var saveOnLoad = function() {
|
||||
designer.save(function() {
|
||||
}, false);
|
||||
}.delay(1000)
|
||||
}
|
||||
|
||||
}
|
||||
;
|
||||
|
||||
function createColorPalette(container, onSelectFunction, event)
|
||||
{
|
||||
cleanScreenEvent();
|
||||
_colorPalette = new core.ColorPicker();
|
||||
_colorPalette.onSelect = function(color) {
|
||||
onSelectFunction.call(this, color);
|
||||
cleanScreenEvent();
|
||||
};
|
||||
|
||||
// dojo.event.kwConnect({srcObj: this._colorPalette,srcFunc:"onColorSelect",targetObj:this._colorPalette, targetFunc:"onSelect", once:true});
|
||||
var mouseCoords = core.Utils.getMousePosition(event);
|
||||
var colorPaletteElement = $("colorPalette");
|
||||
colorPaletteElement.setStyle('left', (mouseCoords.x - 80) + "px");
|
||||
colorPaletteElement.setStyle('display', "block");
|
||||
}
|
||||
;
|
||||
|
||||
function cleanScreenEvent()
|
||||
{
|
||||
if (this.currentColorPicker)
|
||||
{
|
||||
this.currentColorPicker.hide();
|
||||
}
|
||||
$("fontFamilyPanel").setStyle('display', "none");
|
||||
$("fontSizePanel").setStyle('display', "none");
|
||||
$("topicShapePanel").setStyle('display', "none");
|
||||
iconPanel.close();
|
||||
}
|
||||
|
||||
function fontFamilyPanel()
|
||||
{
|
||||
var supportedFonts = ['times','arial','tahoma','verdana'];
|
||||
var updateFunction = function(value)
|
||||
{
|
||||
value = value.charAt(0).toUpperCase() + value.substring(1, value.length);
|
||||
designer.setFont2SelectedNode(value);
|
||||
};
|
||||
|
||||
var onFocusValue = function(selectedNode)
|
||||
{
|
||||
return selectedNode.getFontFamily();
|
||||
};
|
||||
|
||||
buildPanel('fontFamily', 'fontFamilyPanel', supportedFonts, updateFunction, onFocusValue);
|
||||
}
|
||||
|
||||
function shapeTypePanel()
|
||||
{
|
||||
var shapeTypePanel = ['rectagle','rounded_rectagle','line','elipse'];
|
||||
var updateFunction = function(value)
|
||||
{
|
||||
designer.setShape2SelectedNode(value.replace('_',' '));
|
||||
};
|
||||
|
||||
var onFocusValue = function(selectedNode)
|
||||
{
|
||||
|
||||
return selectedNode.getShapeType().replace(' ','_');
|
||||
};
|
||||
|
||||
buildPanel('topicShape', 'topicShapePanel', shapeTypePanel, updateFunction, onFocusValue);
|
||||
}
|
||||
|
||||
function fontSizePanel()
|
||||
{
|
||||
var shapeTypePanel = ['small','normal','large','huge'];
|
||||
var map = {small:'6',normal:'8',large:'10',huge:'15'};
|
||||
var updateFunction = function(value)
|
||||
{
|
||||
var nodes = designer.getSelectedNodes();
|
||||
var value = map[value];
|
||||
designer.setFontSize2SelectedNode(value);
|
||||
};
|
||||
|
||||
var onFocusValue = function(selectedNode)
|
||||
{
|
||||
var fontSize = selectedNode.getFontSize();
|
||||
var result = "";
|
||||
if (fontSize <= 6)
|
||||
{
|
||||
result = 'small';
|
||||
} else if (fontSize <= 8)
|
||||
{
|
||||
result = 'normal';
|
||||
} else if (fontSize <= 10)
|
||||
{
|
||||
result = 'large';
|
||||
} else if (fontSize >= 15)
|
||||
{
|
||||
result = 'huge';
|
||||
}
|
||||
return result;
|
||||
};
|
||||
buildPanel('fontSize', 'fontSizePanel', shapeTypePanel, updateFunction, onFocusValue);
|
||||
}
|
||||
|
||||
function buildPanel(buttonElemId, elemLinksContainer, elemLinkIds, updateFunction, onFocusValue)
|
||||
{
|
||||
// Font family event handling ....
|
||||
$(buttonElemId).addEvent('click', function(event)
|
||||
{
|
||||
var container = $(elemLinksContainer);
|
||||
var isRendered = container.getStyle('display') == 'block';
|
||||
cleanScreenEvent();
|
||||
|
||||
// Restore default css.
|
||||
for (var i = 0; i < elemLinkIds.length; i++)
|
||||
{
|
||||
var elementId = elemLinkIds[i];
|
||||
$(elementId).className = 'toolbarPanelLink';
|
||||
}
|
||||
|
||||
// Select current element ...
|
||||
var nodes = designer.getSelectedNodes();
|
||||
var lenght = nodes.length;
|
||||
if (lenght == 1)
|
||||
{
|
||||
var selectedNode = nodes[0];
|
||||
var selectedElementId = onFocusValue(selectedNode);
|
||||
selectedElementId = selectedElementId.toLowerCase();
|
||||
var selectedElement = $(selectedElementId);
|
||||
selectedElement.className = 'toolbarPanelLinkSelectedLink';
|
||||
}
|
||||
|
||||
container.setStyle('display', 'block');
|
||||
|
||||
var mouseCoords = core.Utils.getMousePosition(event);
|
||||
if (!isRendered)
|
||||
{
|
||||
container.setStyle('left', (mouseCoords.x - 10) + "px");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var fontOnClick = function(event)
|
||||
{
|
||||
var value = this.getAttribute('id');
|
||||
updateFunction(value);
|
||||
cleanScreenEvent();
|
||||
};
|
||||
|
||||
// Register event listeners on elements ...
|
||||
for (var i = 0; i < elemLinkIds.length; i++)
|
||||
{
|
||||
var elementId = elemLinkIds[i];
|
||||
$(elementId).addEvent('click', fontOnClick.bind($(elementId)));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user