You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.4 KiB
84 lines
3.4 KiB
// Copyright (c) Business Objects 2010. All rights reserved.
|
|
// CrystalReports DHTML Viewer SDK
|
|
// Version: Internal (Unsupported)
|
|
// ###################################################################################
|
|
// CRViewer object contains utilities that allow interaction with the CrystalReports DHTML viewer.
|
|
// CRViewer has the following properties and methods defined.
|
|
// CRViewer.getViewer()
|
|
// returns an CRViewer.Viewer object that represents the DHTML viewer on the current page. Use this object to interact with the DHTML viewer.
|
|
// CRViewer.getViewer().addEventListener (event type, listener function)
|
|
// Registers a listener function with the given event type. The listener function should return true if the event was handled and normal viewer processing should not occur.
|
|
// CRViewer.getViewer().removeEventListener (event type, listener function)
|
|
// Removes the listener for the given event type.
|
|
// CRViewer.Events
|
|
// returns an Array of event types that can be handled using event listeners
|
|
// CRViewer.Events.HyperlinkClicked
|
|
// An event that will be fired when a hyperlink is clicked. Note this event will only occur if the viewer is configured to render hyperlinks using javascript.
|
|
// Arguments to listeners of these events will be as follows: { url : 'url string', target : 'target for the link'}
|
|
// ###################################################################################
|
|
|
|
if (typeof (CRViewer) == "undefined") {
|
|
CRViewer = {
|
|
|
|
getViewer : function (/* optional */ viewerName) {
|
|
return this._getViewer(viewerName);
|
|
},
|
|
|
|
Events : {
|
|
HyperlinkClicked : "hyperlinkClicked"
|
|
},
|
|
|
|
_viewersMap : [],
|
|
_getViewer : function (viewerName) {
|
|
var map = this._viewersMap;
|
|
if (viewerName) {
|
|
for (var i = 0, len = map.length; i < len; i++) {
|
|
if (map[i].id == viewerName) {
|
|
return map[i];
|
|
}
|
|
}
|
|
} else if (map.length > 0) {
|
|
return map[0];
|
|
}
|
|
|
|
return this._createViewer(viewerName);
|
|
},
|
|
|
|
_getRealViewer : function (viewerName)
|
|
{
|
|
if (viewerName) {
|
|
return getWidgetFromID(viewerName);
|
|
} else {
|
|
if (_widgets) {
|
|
for (var i = 0, len = _widgets.length; i < len; i++) {
|
|
if (_widgets[i].widgetType == "Viewer") {
|
|
return _widgets[i];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
_createViewer : function (viewerName)
|
|
{
|
|
var realViewer = this._getRealViewer(viewerName);
|
|
|
|
if (realViewer && realViewer.widgetType == "Viewer") {
|
|
var o = {};
|
|
o.id = realViewer.id;
|
|
o.realViewer = realViewer;
|
|
|
|
o.addEventListener = function (event, listener) {
|
|
this.realViewer.addViewerEventListener(event, listener);
|
|
}
|
|
|
|
o.removeEventListener = function (event, listener) {
|
|
this.realViewer.removeViewerEventListener(event, listener);
|
|
}
|
|
|
|
this._viewersMap[this._viewersMap.length] = o;
|
|
return o;
|
|
}
|
|
}
|
|
};
|
|
} |