vitro/webapp/web/src/widget/SvgWidget.js

92 lines
2.4 KiB
JavaScript

/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.require("dojo.widget.DomWidget");
dojo.provide("dojo.widget.SvgWidget");
dojo.provide("dojo.widget.SVGWidget"); // back compat
dojo.require("dojo.dom");
// SVGWidget is a mixin ONLY
dojo.widget.SvgWidget = function(args){
// mix in the parent type
// dojo.widget.DomWidget.call(this);
}
dojo.inherits(dojo.widget.SvgWidget, dojo.widget.DomWidget);
dojo.lang.extend(dojo.widget.SvgWidget, {
getContainerHeight: function(){
// NOTE: container height must be returned as the INNER height
dojo.unimplemented("dojo.widget.SvgWidget.getContainerHeight");
},
getContainerWidth: function(){
// return this.parent.domNode.offsetWidth;
dojo.unimplemented("dojo.widget.SvgWidget.getContainerWidth");
},
setNativeHeight: function(height){
// var ch = this.getContainerHeight();
dojo.unimplemented("dojo.widget.SVGWidget.setNativeHeight");
},
createNodesFromText: function(txt, wrap){
return dojo.dom.createNodesFromText(txt, wrap);
}
});
dojo.widget.SVGWidget = dojo.widget.SvgWidget;
try{
(function(){
var tf = function(){
// FIXME: fill this in!!!
var rw = new function(){
dojo.widget.SvgWidget.call(this);
this.buildRendering = function(){ return; }
this.destroyRendering = function(){ return; }
this.postInitialize = function(){ return; }
this.cleanUp = function(){ return; }
this.widgetType = "SVGRootWidget";
this.domNode = document.documentElement;
}
var wm = dojo.widget.manager;
wm.root = rw;
wm.add(rw);
// extend the widgetManager with a getWidgetFromNode method
wm.getWidgetFromNode = function(node){
var filter = function(x){
if(x.domNode == node){
return true;
}
}
var widgets = [];
while((node)&&(widgets.length < 1)){
widgets = this.getWidgetsByFilter(filter);
node = node.parentNode;
}
if(widgets.length > 0){
return widgets[0];
}else{
return null;
}
}
wm.getWidgetFromEvent = function(domEvt){
return this.getWidgetFromNode(domEvt.target);
}
wm.getWidgetFromPrimitive = wm.getWidgetFromNode;
}
// make sure we get called when the time is right
dojo.event.connect(dojo.hostenv, "loaded", tf);
})();
}catch(e){ alert(e); }