diff options
Diffstat (limited to 'src/js/mxClient.js')
-rw-r--r-- | src/js/mxClient.js | 643 |
1 files changed, 643 insertions, 0 deletions
diff --git a/src/js/mxClient.js b/src/js/mxClient.js new file mode 100644 index 0000000..a23b5fc --- /dev/null +++ b/src/js/mxClient.js @@ -0,0 +1,643 @@ +/** + * $Id: mxClient.js,v 1.203 2012-07-19 15:19:07 gaudenz Exp $ + * Copyright (c) 2006-2010, JGraph Ltd + */ +var mxClient = +{ + + /** + * Class: mxClient + * + * Bootstrapping mechanism for the mxGraph thin client. The production version + * of this file contains all code required to run the mxGraph thin client, as + * well as global constants to identify the browser and operating system in + * use. You may have to load chrome://global/content/contentAreaUtils.js in + * your page to disable certain security restrictions in Mozilla. + * + * Variable: VERSION + * + * Contains the current version of the mxGraph library. The strings that + * communicate versions of mxGraph use the following format. + * + * versionMajor.versionMinor.buildNumber.revisionNumber + * + * Current version is 1.10.4.1. + */ + VERSION: '1.10.4.1', + + /** + * Variable: IS_IE + * + * True if the current browser is Internet Explorer. + */ + IS_IE: navigator.userAgent.indexOf('MSIE') >= 0, + + /** + * Variable: IS_IE6 + * + * True if the current browser is Internet Explorer 6.x. + */ + IS_IE6: navigator.userAgent.indexOf('MSIE 6') >= 0, + + /** + * Variable: IS_QUIRKS + * + * True if the current browser is Internet Explorer and it is in quirks mode. + */ + IS_QUIRKS: navigator.userAgent.indexOf('MSIE') >= 0 && (document.documentMode == null || document.documentMode == 5), + + /** + * Variable: IS_NS + * + * True if the current browser is Netscape (including Firefox). + */ + IS_NS: navigator.userAgent.indexOf('Mozilla/') >= 0 && + navigator.userAgent.indexOf('MSIE') < 0, + + /** + * Variable: IS_OP + * + * True if the current browser is Opera. + */ + IS_OP: navigator.userAgent.indexOf('Opera/') >= 0, + + /** + * Variable: IS_OT + * + * True if -o-transform is available as a CSS style. This is the case + * for Opera browsers that use Presto/2.5 and later. + */ + IS_OT: navigator.userAgent.indexOf('Presto/2.4.') < 0 && + navigator.userAgent.indexOf('Presto/2.3.') < 0 && + navigator.userAgent.indexOf('Presto/2.2.') < 0 && + navigator.userAgent.indexOf('Presto/2.1.') < 0 && + navigator.userAgent.indexOf('Presto/2.0.') < 0 && + navigator.userAgent.indexOf('Presto/1.') < 0, + + /** + * Variable: IS_SF + * + * True if the current browser is Safari. + */ + IS_SF: navigator.userAgent.indexOf('AppleWebKit/') >= 0 && + navigator.userAgent.indexOf('Chrome/') < 0, + + /** + * Variable: IS_GC + * + * True if the current browser is Google Chrome. + */ + IS_GC: navigator.userAgent.indexOf('Chrome/') >= 0, + + /** + * Variable: IS_MT + * + * True if -moz-transform is available as a CSS style. This is the case + * for all Firefox-based browsers newer than or equal 3, such as Camino, + * Iceweasel, Seamonkey and Iceape. + */ + IS_MT: (navigator.userAgent.indexOf('Firefox/') >= 0 && + navigator.userAgent.indexOf('Firefox/1.') < 0 && + navigator.userAgent.indexOf('Firefox/2.') < 0) || + (navigator.userAgent.indexOf('Iceweasel/') >= 0 && + navigator.userAgent.indexOf('Iceweasel/1.') < 0 && + navigator.userAgent.indexOf('Iceweasel/2.') < 0) || + (navigator.userAgent.indexOf('SeaMonkey/') >= 0 && + navigator.userAgent.indexOf('SeaMonkey/1.') < 0) || + (navigator.userAgent.indexOf('Iceape/') >= 0 && + navigator.userAgent.indexOf('Iceape/1.') < 0), + + /** + * Variable: IS_SVG + * + * True if the browser supports SVG. + */ + IS_SVG: navigator.userAgent.indexOf('Firefox/') >= 0 || // FF and Camino + navigator.userAgent.indexOf('Iceweasel/') >= 0 || // Firefox on Debian + navigator.userAgent.indexOf('Seamonkey/') >= 0 || // Firefox-based + navigator.userAgent.indexOf('Iceape/') >= 0 || // Seamonkey on Debian + navigator.userAgent.indexOf('Galeon/') >= 0 || // Gnome Browser (old) + navigator.userAgent.indexOf('Epiphany/') >= 0 || // Gnome Browser (new) + navigator.userAgent.indexOf('AppleWebKit/') >= 0 || // Safari/Google Chrome + navigator.userAgent.indexOf('Gecko/') >= 0 || // Netscape/Gecko + navigator.userAgent.indexOf('Opera/') >= 0, + + + /** + * Variable: NO_FO + * + * True if foreignObject support is not available. This is the case for + * Opera and older SVG-based browsers. IE does not require this type + * of tag. + */ + NO_FO: navigator.userAgent.indexOf('Firefox/1.') >= 0 || + navigator.userAgent.indexOf('Iceweasel/1.') >= 0 || + navigator.userAgent.indexOf('Firefox/2.') >= 0 || + navigator.userAgent.indexOf('Iceweasel/2.') >= 0 || + navigator.userAgent.indexOf('SeaMonkey/1.') >= 0 || + navigator.userAgent.indexOf('Iceape/1.') >= 0 || + navigator.userAgent.indexOf('Camino/1.') >= 0 || + navigator.userAgent.indexOf('Epiphany/2.') >= 0 || + navigator.userAgent.indexOf('Opera/') >= 0 || + navigator.userAgent.indexOf('MSIE') >= 0 || + navigator.userAgent.indexOf('Mozilla/2.') >= 0, // Safari/Google Chrome + + /** + * Variable: IS_VML + * + * True if the browser supports VML. + */ + IS_VML: navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER', + + /** + * Variable: IS_MAC + * + * True if the client is a Mac. + */ + IS_MAC: navigator.userAgent.toUpperCase().indexOf('MACINTOSH') > 0, + + /** + * Variable: IS_TOUCH + * + * True if this client uses a touch interface (no mouse). Currently this + * detects IPads, IPods, IPhones and Android devices. + */ + IS_TOUCH: navigator.userAgent.toUpperCase().indexOf('IPAD') > 0 || + navigator.userAgent.toUpperCase().indexOf('IPOD') > 0 || + navigator.userAgent.toUpperCase().indexOf('IPHONE') > 0 || + navigator.userAgent.toUpperCase().indexOf('ANDROID') > 0, + + /** + * Variable: IS_LOCAL + * + * True if the documents location does not start with http:// or https://. + */ + IS_LOCAL: document.location.href.indexOf('http://') < 0 && + document.location.href.indexOf('https://') < 0, + + /** + * Function: isBrowserSupported + * + * Returns true if the current browser is supported, that is, if + * <mxClient.IS_VML> or <mxClient.IS_SVG> is true. + * + * Example: + * + * (code) + * if (!mxClient.isBrowserSupported()) + * { + * mxUtils.error('Browser is not supported!', 200, false); + * } + * (end) + */ + isBrowserSupported: function() + { + return mxClient.IS_VML || mxClient.IS_SVG; + }, + + /** + * Function: link + * + * Adds a link node to the head of the document. Use this + * to add a stylesheet to the page as follows: + * + * (code) + * mxClient.link('stylesheet', filename); + * (end) + * + * where filename is the (relative) URL of the stylesheet. The charset + * is hardcoded to ISO-8859-1 and the type is text/css. + * + * Parameters: + * + * rel - String that represents the rel attribute of the link node. + * href - String that represents the href attribute of the link node. + * doc - Optional parent document of the link node. + */ + link: function(rel, href, doc) + { + doc = doc || document; + + // Workaround for Operation Aborted in IE6 if base tag is used in head + if (mxClient.IS_IE6) + { + doc.write('<link rel="'+rel+'" href="'+href+'" charset="ISO-8859-1" type="text/css"/>'); + } + else + { + var link = doc.createElement('link'); + + link.setAttribute('rel', rel); + link.setAttribute('href', href); + link.setAttribute('charset', 'ISO-8859-1'); + link.setAttribute('type', 'text/css'); + + var head = doc.getElementsByTagName('head')[0]; + head.appendChild(link); + } + }, + + /** + * Function: include + * + * Dynamically adds a script node to the document header. + * + * In production environments, the includes are resolved in the mxClient.js + * file to reduce the number of requests required for client startup. This + * function should only be used in development environments, but not in + * production systems. + */ + include: function(src) + { + document.write('<script src="'+src+'"></script>'); + }, + + /** + * Function: dispose + * + * Frees up memory in IE by resolving cyclic dependencies between the DOM + * and the JavaScript objects. This is always invoked in IE when the page + * unloads. + */ + dispose: function() + { + // Cleans all objects where listeners have been added + for (var i = 0; i < mxEvent.objects.length; i++) + { + if (mxEvent.objects[i].mxListenerList != null) + { + mxEvent.removeAllListeners(mxEvent.objects[i]); + } + } + } + +}; + +/** + * Variable: mxLoadResources + * + * Optional global config variable to toggle loading of the two resource files + * in <mxGraph> and <mxEditor>. Default is true. NOTE: This is a global variable, + * not a variable of mxClient. + * + * (code) + * <script type="text/javascript"> + * var mxLoadResources = false; + * </script> + * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script> + * (end) + */ +if (typeof(mxLoadResources) == 'undefined') +{ + mxLoadResources = true; +} + +/** + * Variable: mxLoadStylesheets + * + * Optional global config variable to toggle loading of the CSS files when + * the library is initialized. Default is true. NOTE: This is a global variable, + * not a variable of mxClient. + * + * (code) + * <script type="text/javascript"> + * var mxLoadStylesheets = false; + * </script> + * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script> + * (end) + */ +if (typeof(mxLoadStylesheets) == 'undefined') +{ + mxLoadStylesheets = true; +} + +/** + * Variable: basePath + * + * Basepath for all URLs in the core without trailing slash. Default is '.'. + * Set mxBasePath prior to loading the mxClient library as follows to override + * this setting: + * + * (code) + * <script type="text/javascript"> + * mxBasePath = '/path/to/core/directory'; + * </script> + * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script> + * (end) + * + * When using a relative path, the path is relative to the URL of the page that + * contains the assignment. Trailing slashes are automatically removed. + */ +if (typeof(mxBasePath) != 'undefined' && mxBasePath.length > 0) +{ + // Adds a trailing slash if required + if (mxBasePath.substring(mxBasePath.length - 1) == '/') + { + mxBasePath = mxBasePath.substring(0, mxBasePath.length - 1); + } + + mxClient.basePath = mxBasePath; +} +else +{ + mxClient.basePath = '.'; +} + +/** + * Variable: imageBasePath + * + * Basepath for all images URLs in the core without trailing slash. Default is + * <mxClient.basePath> + '/images'. Set mxImageBasePath prior to loading the + * mxClient library as follows to override this setting: + * + * (code) + * <script type="text/javascript"> + * mxImageBasePath = '/path/to/image/directory'; + * </script> + * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script> + * (end) + * + * When using a relative path, the path is relative to the URL of the page that + * contains the assignment. Trailing slashes are automatically removed. + */ +if (typeof(mxImageBasePath) != 'undefined' && mxImageBasePath.length > 0) +{ + // Adds a trailing slash if required + if (mxImageBasePath.substring(mxImageBasePath.length - 1) == '/') + { + mxImageBasePath = mxImageBasePath.substring(0, mxImageBasePath.length - 1); + } + + mxClient.imageBasePath = mxImageBasePath; +} +else +{ + mxClient.imageBasePath = mxClient.basePath + '/images'; +} + +/** + * Variable: language + * + * Defines the language of the client, eg. en for english, de for german etc. + * The special value 'none' will disable all built-in internationalization and + * resource loading. See <mxResources.getSpecialBundle> for handling identifiers + * with and without a dash. + * + * Set mxLanguage prior to loading the mxClient library as follows to override + * this setting: + * + * (code) + * <script type="text/javascript"> + * mxLanguage = 'en'; + * </script> + * <script type="text/javascript" src="js/mxClient.js"></script> + * (end) + * + * If internationalization is disabled, then the following variables should be + * overridden to reflect the current language of the system. These variables are + * cleared when i18n is disabled. + * <mxEditor.askZoomResource>, <mxEditor.lastSavedResource>, + * <mxEditor.currentFileResource>, <mxEditor.propertiesResource>, + * <mxEditor.tasksResource>, <mxEditor.helpResource>, <mxEditor.outlineResource>, + * <mxElbowEdgeHandler.doubleClickOrientationResource>, <mxUtils.errorResource>, + * <mxUtils.closeResource>, <mxGraphSelectionModel.doneResource>, + * <mxGraphSelectionModel.updatingSelectionResource>, <mxGraphView.doneResource>, + * <mxGraphView.updatingDocumentResource>, <mxCellRenderer.collapseExpandResource>, + * <mxGraph.containsValidationErrorsResource> and + * <mxGraph.alreadyConnectedResource>. + */ +if (typeof(mxLanguage) != 'undefined') +{ + mxClient.language = mxLanguage; +} +else +{ + mxClient.language = (mxClient.IS_IE) ? navigator.userLanguage : navigator.language; +} + +/** + * Variable: defaultLanguage + * + * Defines the default language which is used in the common resource files. Any + * resources for this language will only load the common resource file, but not + * the language-specific resource file. Default is 'en'. + * + * Set mxDefaultLanguage prior to loading the mxClient library as follows to override + * this setting: + * + * (code) + * <script type="text/javascript"> + * mxDefaultLanguage = 'de'; + * </script> + * <script type="text/javascript" src="js/mxClient.js"></script> + * (end) + */ +if (typeof(mxDefaultLanguage) != 'undefined') +{ + mxClient.defaultLanguage = mxDefaultLanguage; +} +else +{ + mxClient.defaultLanguage = 'en'; +} + +// Adds all required stylesheets and namespaces +if (mxLoadStylesheets) +{ + mxClient.link('stylesheet', mxClient.basePath + '/css/common.css'); +} + +/** + * Variable: languages + * + * Defines the optional array of all supported language extensions. The default + * language does not have to be part of this list. See + * <mxResources.isLanguageSupported>. + * + * (code) + * <script type="text/javascript"> + * mxLanguages = ['de', 'it', 'fr']; + * </script> + * <script type="text/javascript" src="js/mxClient.js"></script> + * (end) + * + * This is used to avoid unnecessary requests to language files, ie. if a 404 + * will be returned. + */ +if (typeof(mxLanguages) != 'undefined') +{ + mxClient.languages = mxLanguages; +} + +if (mxClient.IS_IE) +{ + // IE9/10 standards mode uses SVG (VML is broken) + if (document.documentMode >= 9) + { + mxClient.IS_VML = false; + mxClient.IS_SVG = true; + } + else + { + // Enables support for IE8 standards mode. Note that this requires all attributes for VML + // elements to be set using direct notation, ie. node.attr = value. The use of setAttribute + // is not possible. See mxShape.init for more code to handle this specific document mode. + if (document.documentMode == 8) + { + document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML'); + document.namespaces.add('o', 'urn:schemas-microsoft-com:office:office', '#default#VML'); + } + else + { + document.namespaces.add('v', 'urn:schemas-microsoft-com:vml'); + document.namespaces.add('o', 'urn:schemas-microsoft-com:office:office'); + } + + var ss = document.createStyleSheet(); + ss.cssText = 'v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}'; + + if (mxLoadStylesheets) + { + mxClient.link('stylesheet', mxClient.basePath + '/css/explorer.css'); + } + } + + // Cleans up resources when the application terminates + window.attachEvent('onunload', mxClient.dispose); +} + +mxClient.include(mxClient.basePath+'/js/util/mxLog.js'); +mxClient.include(mxClient.basePath+'/js/util/mxObjectIdentity.js'); +mxClient.include(mxClient.basePath+'/js/util/mxDictionary.js'); +mxClient.include(mxClient.basePath+'/js/util/mxResources.js'); +mxClient.include(mxClient.basePath+'/js/util/mxPoint.js'); +mxClient.include(mxClient.basePath+'/js/util/mxRectangle.js'); +mxClient.include(mxClient.basePath+'/js/util/mxEffects.js'); +mxClient.include(mxClient.basePath+'/js/util/mxUtils.js'); +mxClient.include(mxClient.basePath+'/js/util/mxConstants.js'); +mxClient.include(mxClient.basePath+'/js/util/mxEventObject.js'); +mxClient.include(mxClient.basePath+'/js/util/mxMouseEvent.js'); +mxClient.include(mxClient.basePath+'/js/util/mxEventSource.js'); +mxClient.include(mxClient.basePath+'/js/util/mxEvent.js'); +mxClient.include(mxClient.basePath+'/js/util/mxXmlRequest.js'); +mxClient.include(mxClient.basePath+'/js/util/mxClipboard.js'); +mxClient.include(mxClient.basePath+'/js/util/mxWindow.js'); +mxClient.include(mxClient.basePath+'/js/util/mxForm.js'); +mxClient.include(mxClient.basePath+'/js/util/mxImage.js'); +mxClient.include(mxClient.basePath+'/js/util/mxDivResizer.js'); +mxClient.include(mxClient.basePath+'/js/util/mxDragSource.js'); +mxClient.include(mxClient.basePath+'/js/util/mxToolbar.js'); +mxClient.include(mxClient.basePath+'/js/util/mxSession.js'); +mxClient.include(mxClient.basePath+'/js/util/mxUndoableEdit.js'); +mxClient.include(mxClient.basePath+'/js/util/mxUndoManager.js'); +mxClient.include(mxClient.basePath+'/js/util/mxUrlConverter.js'); +mxClient.include(mxClient.basePath+'/js/util/mxPanningManager.js'); +mxClient.include(mxClient.basePath+'/js/util/mxPath.js'); +mxClient.include(mxClient.basePath+'/js/util/mxPopupMenu.js'); +mxClient.include(mxClient.basePath+'/js/util/mxAutoSaveManager.js'); +mxClient.include(mxClient.basePath+'/js/util/mxAnimation.js'); +mxClient.include(mxClient.basePath+'/js/util/mxMorphing.js'); +mxClient.include(mxClient.basePath+'/js/util/mxImageBundle.js'); +mxClient.include(mxClient.basePath+'/js/util/mxImageExport.js'); +mxClient.include(mxClient.basePath+'/js/util/mxXmlCanvas2D.js'); +mxClient.include(mxClient.basePath+'/js/util/mxSvgCanvas2D.js'); +mxClient.include(mxClient.basePath+'/js/util/mxGuide.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxShape.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxStencil.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxStencilRegistry.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxStencilShape.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxMarker.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxActor.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxCloud.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxRectangleShape.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxEllipse.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxDoubleEllipse.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxRhombus.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxPolyline.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxArrow.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxText.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxTriangle.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxHexagon.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxLine.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxImageShape.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxLabel.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxCylinder.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxConnector.js'); +mxClient.include(mxClient.basePath+'/js/shape/mxSwimlane.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxGraphLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxStackLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxPartitionLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxCompactTreeLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxFastOrganicLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxCircleLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxParallelEdgeLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxCompositeLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/mxEdgeLabelLayout.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphAbstractHierarchyCell.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphHierarchyNode.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphHierarchyEdge.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphHierarchyModel.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxMedianHybridCrossingReduction.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxMinimumCycleRemover.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxCoordinateAssignment.js'); +mxClient.include(mxClient.basePath+'/js/layout/hierarchical/mxHierarchicalLayout.js'); +mxClient.include(mxClient.basePath+'/js/model/mxGraphModel.js'); +mxClient.include(mxClient.basePath+'/js/model/mxCell.js'); +mxClient.include(mxClient.basePath+'/js/model/mxGeometry.js'); +mxClient.include(mxClient.basePath+'/js/model/mxCellPath.js'); +mxClient.include(mxClient.basePath+'/js/view/mxPerimeter.js'); +mxClient.include(mxClient.basePath+'/js/view/mxPrintPreview.js'); +mxClient.include(mxClient.basePath+'/js/view/mxStylesheet.js'); +mxClient.include(mxClient.basePath+'/js/view/mxCellState.js'); +mxClient.include(mxClient.basePath+'/js/view/mxGraphSelectionModel.js'); +mxClient.include(mxClient.basePath+'/js/view/mxCellEditor.js'); +mxClient.include(mxClient.basePath+'/js/view/mxCellRenderer.js'); +mxClient.include(mxClient.basePath+'/js/view/mxEdgeStyle.js'); +mxClient.include(mxClient.basePath+'/js/view/mxStyleRegistry.js'); +mxClient.include(mxClient.basePath+'/js/view/mxGraphView.js'); +mxClient.include(mxClient.basePath+'/js/view/mxGraph.js'); +mxClient.include(mxClient.basePath+'/js/view/mxCellOverlay.js'); +mxClient.include(mxClient.basePath+'/js/view/mxOutline.js'); +mxClient.include(mxClient.basePath+'/js/view/mxMultiplicity.js'); +mxClient.include(mxClient.basePath+'/js/view/mxLayoutManager.js'); +mxClient.include(mxClient.basePath+'/js/view/mxSpaceManager.js'); +mxClient.include(mxClient.basePath+'/js/view/mxSwimlaneManager.js'); +mxClient.include(mxClient.basePath+'/js/view/mxTemporaryCellStates.js'); +mxClient.include(mxClient.basePath+'/js/view/mxCellStatePreview.js'); +mxClient.include(mxClient.basePath+'/js/view/mxConnectionConstraint.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxGraphHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxPanningHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxCellMarker.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxSelectionCellsHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxConnectionHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxConstraintHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxRubberband.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxVertexHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxEdgeHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxElbowEdgeHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxEdgeSegmentHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxKeyHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxTooltipHandler.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxCellTracker.js'); +mxClient.include(mxClient.basePath+'/js/handler/mxCellHighlight.js'); +mxClient.include(mxClient.basePath+'/js/editor/mxDefaultKeyHandler.js'); +mxClient.include(mxClient.basePath+'/js/editor/mxDefaultPopupMenu.js'); +mxClient.include(mxClient.basePath+'/js/editor/mxDefaultToolbar.js'); +mxClient.include(mxClient.basePath+'/js/editor/mxEditor.js'); +mxClient.include(mxClient.basePath+'/js/io/mxCodecRegistry.js'); +mxClient.include(mxClient.basePath+'/js/io/mxCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxObjectCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxCellCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxModelCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxRootChangeCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxChildChangeCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxTerminalChangeCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxGenericChangeCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxGraphCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxGraphViewCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxStylesheetCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxDefaultKeyHandlerCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxDefaultToolbarCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxDefaultPopupMenuCodec.js'); +mxClient.include(mxClient.basePath+'/js/io/mxEditorCodec.js'); |