/* Copyright (c) 2006-2008, ePages GmbH All Rights Reserved. */ dojo.provide("epages.cartridges.de_epages.design.widget.Switchcontentpreview"); dojo.require("epages.widget.LocalizedWidget"); dojo.require("epages.widget.Menu"); dojo.require('epages.lang.hash'); dojo.require('epages.format'); dojo.declare( "epages.cartridges.de_epages.design.widget.Switchcontentpreview", [epages.widget.LocalizedWidget], { /** * public properties */ /** * private properties */ _previews : null, _menuWidget : null, _lastPreview : null, /** * widget properties */ templatePath : dojo.moduleUrl('epages.cartridges.de_epages.design.widget','templates/Switchcontentpreview.html'), translationName : dojo.moduleUrl('epages.cartridges.de_epages.design.widget','templates/translation'), postCreate : function() { this.inherited("postCreate", arguments); this._menuWidget= new epages.widget.Menu(); this._previews = $H({}); }, switchPreview: function(id) { var newPreview = this._previews.get(id); var lastPreviewNode = (this._lastPreview) ? this._lastPreview.previewNode : undefined; var lastToolsNode = (this._lastPreview) ? $(this._lastPreview.toolsNodeId) : undefined; var toolsNode = $(newPreview.toolsNodeId); if(this._lastPreview == null || lastPreviewNode != newPreview.previewNode) { // preview node if(lastPreviewNode){ lastPreviewNode.style.display = "none"; } var formatted_label = epages.format.slice(newPreview.label, 15); this.previewLabelNode.innerHTML=formatted_label; if(newPreview.label !== formatted_label){ this.previewLabelNode.title = newPreview.label; }else{ this.previewLabelNode.title = ""; } this.previewSelectorNode.style.backgroundImage = 'url('+newPreview.imageUrl+')'; newPreview.previewNode.style.display=""; // tools node if(lastToolsNode){ lastToolsNode.style.display="none"; } if(toolsNode){ toolsNode.style.display=""; } this._lastPreview = newPreview; dojo.publish("switchcontentpreview/switchPreview", [id]); } }, addPreview: function(id, opt) { var parentWidget=this; var entry= new dijit.MenuItem({ label: opt.label, iconClass: '', onClick: function() { parentWidget.switchPreview(id); dijit.popup.close(parentWidget._menuWidget); } }); entry.iconNode.style.background = 'url('+document.location.protocol + '//' + document.location.hostname + '/' + opt.imageUrl+') no-repeat top left'; this._menuWidget.addChild(entry); this._previews.set(id, opt); }, showPreviewMenu: function() { // summary: show menu // open the popup to the side of the current menu item dijit.popup.open({ parent:this.domNode, orient: {'BL':'TL', 'BR':'TR', 'TL':'BL', 'TR':'BR'}, popup:this._menuWidget, around: this.domNode }); }, _onBlur: function () { dijit.popup.close(this._menuWidget); } } );