The WebOffice 10 R3 Script API enables developers to control specific WebOffice 10 R3 functionality using Javascript method calls. Built in help for dynamically loading the Script API is available.
Use the method client.loadScriptAPI() for explicitly loading the WebOffice 10 R3 Script API.
Before using methods of the Script API, the following code lines should be executed in the component using the WebOffice 10 R3 Script API:
if( !parent.scriptAPI ){
parent.client.loadScriptAPI();
}
After that the Script API is available via object parent.scriptAPI.
Prerequisites are that the "parent" is WebOffice 10 R3 and that script access to this "parent" object is granted.
Note: Detailed Documentation of the functions and their paramaters which are listed below can be found in the Java Script source file itself which is located in the WebOffice 10 R3 application directory: <web application>\client_workspace\JSXAPPS\weboffice\js\scriptAPI.js or in <web application>\pub\custom_tools\scriptAPI.txt.
Currently implemented functions for the WebOffice 10 R3 Script API:
Map, map views and layers
•scriptAPI.mapByCenterpointScale( fCenterX, fCenterY, iScale )
Request a new map by center point and scale
•scriptAPI.mapByExtent( fMinX, fMinY, fMaxX, fMaxY )
Request a new map by extent values
•scriptAPI.setMapView (sViewId )
Switch to a predefined map view
•scriptAPI.getMapLayers( sIdType, callbackFct )
Get the layers of the current visible client map and their visibility state
•scriptAPI.setTocNodeVisibility( sNodeId, bVisible )
Set the visibility of a TOC node (mapservice, grouplayer, layer)
•scriptAPI.getActiveRepmodel()
Get information about the active repmodel
Tool selection
•scriptAPI.getActiveTool()
Get the currently activated tool
•scriptAPI.getActiveCustomTool()
Get the currently activated custom tool
•scriptAPI.getCustomTool(sToolId)
Get a custom tool
GUI operations
•scriptAPI.addGUIModule( sName, sUrl, iState, sTitle, bCanBeClosed, iWidth, iHeight, sHtmlDivId, unload_callback, bCanBeDocked )
Add a new GUI module to the WebOffice 10 R3 GUI
•scriptAPI.getGUIModule( oWindow )
Get the WebOffice 10 R3 GUI module for a nested iFrame
•scriptAPI.getGUIModuleByName(sGUIModuleName)
Get the WebOffice 10 R3 GUI module by its name
•scriptAPI.unhideGUIModule( oWindow )
Bring a GUI module into user view, independent of type and current state of the GUI module
•scriptAPI.removeGUIModule( module )
Remove the added GUI Module of name module
•scriptAPI.setDockingState( iState ) or scriptAPI.setToolFormDockingState( iState )
Set the state of the tool form to undocked/docked
•scriptAPI.setGUIModuleDockingStateByName( sGUIModuleName, iState )
Set the state of a GUI module to undocked/docked
•scriptAPI.setGUIModuleDockingStateByIFrame( oIFrame, iState )
Set the state of a GUI module to undocked/docked
•scriptAPI.setGUIModuleStateByIFrame( oIFrame, sState )
Set the state of a GUI module of type floating minimized/maximized
•scriptAPI.setToolFormSize( iWidth, iHeight )
Set the size of the tool form container, if it is in floating state and not docked to any quadrant of the WebOffice 10 R3 GUI
•scriptAPI.setGUIModuleSizeByName( sGUIModuleName, iWidth, iHeight )
Set the size of a GUI module by name, if it is in floating state and not docked to any quadrant of the WebOffice 10 R3 GUI
•scriptAPI.setGUIModuleSizeByIFrame( oIFrame, iWidth, iHeight )
Set the size of a GUI module by passing the window of the iFrame, if it is in floating state and not docked to any quadrant of the WebOffice 10 R3 GUI
•scriptAPI.snapToolFormToMap( bTop, bRight, bBottom, bLeft )
Snap the tool form to the map size
•scriptAPI.snapGUIModuleToMapByIFrame( oIFrame, bTop, bRight, bBottom, bLeft )
Snap any WebOffice 10 R3 GUI module to the map
•scriptAPI.lockGUI( bLockGUI, sInfoText, sImagePath, iWidth, iHeight )
Lock the WebOffice 10 R3 GUI, no user interactions are possible until lock is released
•scriptAPI.printByCenterpointScale( fCenterX, fCenterY, iScale, sPrintTemplateId, sPrintFormat, bHighResolution, fPrintRotation, oDynFields, sDocumentName, bNoDocumentDisplay, sRepmodelId, aMultiPrintIdx, iPageOverlap )
Print a map by center point and scale
•scriptAPI.printByExtent( fMinX, fMinY, fMaxX, fMaxY, sPrintTemplateId, sPrintFormat, bHighResolution, fPrintRotation, oDynFields, sDocumentName, bNoDocumentDisplay, sRepmodelId )
Print a map by extent
Attributive queries:
•scriptAPI.queryAttributive( sQueryname, sKeyname, sKeyvalue, iMode )
Show result grid and selected features on the map, update map by zooming to result features extent
•scriptAPI.zoomToAttributive( sQueryname, sKeyname, sKeyvalue )
No result grid, show selected features on the map, update map by zooming to result features extent
•scriptAPI.featureZoomAttributive( sQueryname, sKeyname, sKeyvalue )
No result grid, no feature selection on the map, update map by zooming to result features extent
•scriptAPI.featurePanAttributive( sQueryname, sKeyname, sKeyvalue )
No result grid, no feature selection on the map, update map by panning to result features extent
•scriptAPI.displayResultAttributive( sQueryname, sKeyname, sKeyvalue )
Show result grid, no feature selection on the map, no map update
•scriptAPI.locateFeaturesAttributive( sQueryname, sKeyname, sKeyvalue )
No result grid, no feature selection on the map, no map update, show feature position in the current map extent by displaying an image for a few seconds
•scriptAPI.queryAttributiveInternal( sQueryname, sKeyname, sKeyvalue )
No results display, no map update; the features get internally selected, so upon a next map request the selection is displayed on the map
•scriptAPI.selectAttributive( sQueryname, sKeyname, sKeyvalue )
No results grid display, updates map with the current map extent
•scriptAPI.clearSelection( bMapSelectionOnly )
Clear current selection
•scriptAPI.zoomToSelected( objectIds )
Zoom to selected features
•scriptAPI.panToSelected( objectIds )
Pan to selected features
Filter
•scriptAPI.filterAttributive( sExtCallLayerId, aKeyname, aKeyvalue )
Perform attributive filtering
•scriptAPI.resetFilterAttributive( sExtCallLayerId )
Reset attributive filtering
Snap
•scriptAPI.getSnapProfiles( callbackfct )
Get the configured snap profiles
•scriptAPI.getSnap(sSnapProfileId, callbackfct)
Get the snap vertices of the current map extent and the passed snap profile
WebOffice ePaper
•scriptAPI.generateEPaper( aObjectIds, sEPaperId, sEPaperFormat, sEPaperName, oDynFields, iDpiCount, bSuppressCopyright, bNoDocumentDisplay)
Generate a WebOffice ePaper report for a single feature or a set of features
Note: See also chapter Generate a Weboffice ePaper report via Script API for detailed information about possibilities and restrictions when generating WebOffice ePaper reports by using the WebOffice 10 R3 Script API.
Other
•scriptAPI.userMessage( sMessage, bAlert, bIsNote )
Show a user notification
•scriptAPI.Env()
Return a javascript object holding basic properties of the WebOffice 10 R3 environment
•scriptAPI.log( sLogMessage )
Log to the clientside WebOffice 10 R3 logmonitor
•scriptAPI.mapInfo()
Return basic information object about the map
•scriptAPI.setScriptHookin( sEventId, oMethod )
Register a javascript method in the clientside script hookin
Sketch Custom Tools provide an interface for client side drawing with construction. Tools of this type have a few methods described as follows:
•customtool.draw.setContentHeight( iHeight );
Set height for the content of the custom tool
•customtool.draw.setSubmitCallback( callback );
Set a javascript function that gets called when the user clicks the commit button in the drawing form
•customtool.draw.startDraw( sType, aVertexArray );
Start drawing functionality
•customtool.draw.showDrawForm();
Show the drawing form
•customtool.draw.hideDrawForm();
Hide the drawing form
•customtool.draw.state();
Get the current state of drawing
Note: For detailed information about the configuration of custom tools also see chapter Web Integration - Custom Tool 1 - 4 and 19 - 24.